c++程序设计基础课程设计小型图书购销管理系统

上传人:ji****72 文档编号:26404523 上传时间:2017-12-26 格式:DOCX 页数:27 大小:207.32KB
返回 下载 相关 举报
c++程序设计基础课程设计小型图书购销管理系统_第1页
第1页 / 共27页
c++程序设计基础课程设计小型图书购销管理系统_第2页
第2页 / 共27页
c++程序设计基础课程设计小型图书购销管理系统_第3页
第3页 / 共27页
c++程序设计基础课程设计小型图书购销管理系统_第4页
第4页 / 共27页
c++程序设计基础课程设计小型图书购销管理系统_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《c++程序设计基础课程设计小型图书购销管理系统》由会员分享,可在线阅读,更多相关《c++程序设计基础课程设计小型图书购销管理系统(27页珍藏版)》请在金锄头文库上搜索。

1、中南大学本科生课程设计( 实践)任务书、设计报告(c+程序设计基础课程设计)题 目 小型图书购销管理系统学生学号 0909123020学生姓名指导教师汤蕾雨昕学 院 信息科学与工程学院专业班级 电气信息类 1230 班指导老师 向瑶计算机基础教学实验中心2013 年 7 月 5 日小型图书购销管理系统一系统描述本次选择的小型图书购销管理系统主要包括图书资料基本信息、图书库存信息、图书采购信息和图书销售信息的数据处理,要求实现的基本功能有图书基本信息的录入和查询、图书采购、图书销售和利润统计。此次编写的程序是在 vc+环境下的一个基于控制台方式的应用程序,主要包含两个部分,一个是叫 main.h

2、 的头文件,其中包含类的定义、以及各函数声明,另一个则是用于实现主要功能的 main 文件,其中包括各功能函数的定义、菜单函数、以及主函数。在编写程序的过程中,充分考虑到了 c+数据的保护以及封装性的特点,进行模块化、结构化的编程,同时,考虑到实际应用上的需求,在原要求上还添加了文件流的功能,以实现信息的自动读取和保存。程序简洁易读,操作简便,执行效率高。二功能模块结构类:class BookInfo;class PSInfo;class StoreInfo;class Shop;功能实现函数Menu();shop.AddBookInfo();shop.Purchase();shop.Sale

3、();shop.Profit();shop.ListPurInfo(); shop.ListSaleInfo();shop.FindBook();shop.Save();shop.Read();Exit();程序运行框图:利润统计shop.Profit()退出保存信息shop.Exit()shop.Purchase()shop.Sale()shop.ListPurInfo()shop.FindBook()shop.ListSaleInfo()图书采购图书销售图书查询采购查询销售查询shop.AddBookInfo()开始输出菜单和提示信息输入选择新增图书读取信息Shop.Read()结束sho

4、p.Save()三主要模块的算法说明数据处理:考虑到此次的程序为小型图书购销系统,数据存储量相对较小,所以数据的处理是基于数组来实现的。为增强实践生活中的可操作性,首先在类外定义了 MAXNUM_BOOKINFO 和 MAXNUM_PSINFO 的两个宏,可以对这两个宏赋值来改变数组长度扩大数据储存量。类:首先在 main.h 中定义了四个类,来进行基本数据的处理。BookInfo 类:图书编号、书名、作者、出版社、出版日期、定价StoreInfo 类:图书编号、书名、作者、库存数量PSInfo 类:采购单号、图书编号、采购日期、采购数量、单价、采购金额销售单号、图书编号、销售日期、销售数量、

5、单价、销售金额Shop 类:包含所有功能函数,用于管理包括书籍添加、采购、销售、查询、订单、利润等。重载:1.输入输出流重载:考虑到程序中要多次使用输入信息与输出信息,于是对输入输出进行了重载,用 ostream& operator(istream& in,BookInfo& book)来进行图书信息的输入输出,用 ostream& operator(istream& in,PSInfo& info)来进行图书采购和销售信息的输入输出。2.运算符重载:主要包括三个运算的符重载 StoreInfo&StoreInfo:operator+=(const PSInfo& info)用于之后图书采购;

6、 1StoreInfo& StoreInfo:operator-=(const PSInfo& info)用于之后图书销 2售;StoreInfo& StoreInfo:operator=(const BookInfo& info)用于添加信息。 33.文件流重载:为实现数据的存储和录入功能,进行了文件流的重载。用ofstream& operator(ifstream& in,BookInfo& book)进行数据的读入。Shop 类的功能函数:Shop 相当于一个商店,用于管理所有的功能函数,以实现系统的所有基本功能。void AddBookInfo():实现图书信息添加void Purch

7、ase():实现图书采购void Sale():实现图书销售float Profit():实现利润统计void ListPurInfo():实现采购订单查询void ListSaleInfo():实现销售订单查询void FindBook():实现图书查找void Save():实现信息保存void Read():实现信息读入主函数部分:首先进行一个名为 Menu()的函数,以实现进入后的系统页面,然后用switch(select)函数来实现不同功能的选择。其他说明:关于采购和销售日期:在预处理中包含了一个 time 的头文件,根据实际的采购和销售时间有电脑自动生成。关于采购和销售单号:由电脑

8、自动生成,采用循环语句,每次在之前的基础上加 1。关于退出:根据用户使用习惯人性化考虑,加入了 Exit()函数实现退出选项。四运行结果程序进入主界面选择 1 进行图书基本信息的添加选择 2 进行图书采购当采购的书籍未添加基本信息时图书销售当销售数量大于库存量时选择 4 进行图书查询选择 5 查询采购订单选择 6 查询销售订单选择 7 查询总利润选择 0 退出系统五课程设计总结本次课程设计总体来看完成不错,任务要求中的数据处理以及功能要求都能够得到实现,同时还增添了数据的储存和读入功能,但仍有一些部分欠缺不足,统观整个设计过程,现总结如下:初期设想阶段:刚开始的设计程序时的想法是想通过链表来实

9、现的,但后来根据实际情况来看,由于是小型系统,通过数组来实现更为方便,同时宏的使用也更好的解决了实际问题中容量大小的问题。同时根据课设要求来规划类和函数,实现基本构思和结构。编程实践阶段:这个过程是学到东西最多的阶段。许多原来的设想也在实际操作中不断地进行改变和优化。首先考虑到系统中多次需要用到的一些功能,决定采取用重载的方式来简化程序代码,在类的定义上也将原来计划定义的 PurInfo 和SaleInfo 综合为一个 PSInfo,同时考虑到 c+的封装性以及结构化编程,用一个 main.h 包含了所有的类和声明,使主函数部分看起来更为简明。而在后期编译的时候也遇到个许多问题,一些小的关于输

10、入法符合上的错误是可以避免的,还有一些思路语句上的错误则在老师和同学的帮助下得到了解决。后期优化阶段:在后期主要是对程序的优化阶段,使程序更加美观,使用更加方便,同时对一些功能也做出了适当修改,例如将采购销售时间由原来的手动输入改为增加了一个 time 函数,使之能够通过电脑自动获取,还有加入 Exit 函数,使程序更为人性化。当然,也还有一些未解决的问题,例如对于添加书籍时若输入了重复书籍编号,此时程序会记录原来的信息而不能录入新的信息。在这个方面不能不能做到很好的解决。对于程序的一些未能很好解决的问题,我会在今后继续加以完善。最后感谢老师对我此次 c+课程设计的细心指导!参考文献:C+程序

11、设计 谭浩强 清华大学出版社 (2004-06 出版);C+程序设计题解与程序指导 谭浩强 清华大学出版社 (2004-06 出版);C+ Primer 中文版 (美)Stanley B. LippmanBarbara E. Moo JoseLaJoie 著,李师贤 等译 (2006-6-1) ;C+实训;附录:源代码程序#include #include #include #include using namespace std;const int MAXNUM_BOOKINFO=200;const int MAXNUM_PSINFO=100;class BookInfo;class PSI

12、nfo;class PurInfo;class SaleInfo;ostreamistreamostreamistreamofstreamifstreamofstreamifstreamBookInfo* FindBookInfo(const stringclass BookInfofriend class StoreInfo;/图书编号、书名、作者、出版社、出版日期、定价string index;string name;string writer;string press;string date;float price;public:friend StoreInfo* FindStoreIn

13、fo(const stringfriend BookInfo* FindBookInfo(const stringfriend ostreamfriend istreamfriend ofstreamconst stringconst string;class StoreInfofriend class Shop;/图书编号、书名、作者、库存数量string index;string name;string writer;int num;public:StoreInfoStoreInfoStoreInfofriend StoreInfo* FindStoreInfo(const stringf

14、riend BookInfo* FindBookInfo(const string;class PSInfofriend class Shop;friend class StoreInfo;protected:/采购单号、图书编号、采购日期、采购数量、单价、采购金额/销售单号、图书编号、销售日期、销售数量、单价、销售金额string index;string bookid;string date;int num;float price;float sum;public:friend ostreamfriend istreamfriend ofstreamfriend ifstream;clas

15、s ShopBookInfo bookMAXNUM_BOOKINFO;StoreInfo storeinfoMAXNUM_BOOKINFO;PSInfo purinfoMAXNUM_PSINFO;PSInfo saleinfoMAXNUM_PSINFO;int book_num;int storeinfo_num;int purinfo_num;int saleinfo_num;int purid,saleid;public:Shop():book_num(0),storeinfo_num(0),purinfo_num(0),saleinfo_num(0),purid(0),saleid(0)

16、void AddBookInfo();void Purchase();void Sale();float Profit();void ListPurInfo();void ListSaleInfo();void FindBook();void Save();void Read();friend StoreInfo* FindStoreInfo(const stringfriend BookInfo* FindBookInfo(const string;#include main.h#include Shop shop;/-输入输出流重载-ostream& operator(istream& in,BookInfo& book)coutbook.i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号