C++商品销售管理系统1.docx
- 文档编号:11962900
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:23
- 大小:169.60KB
C++商品销售管理系统1.docx
《C++商品销售管理系统1.docx》由会员分享,可在线阅读,更多相关《C++商品销售管理系统1.docx(23页珍藏版)》请在冰豆网上搜索。
C++商品销售管理系统1
课程设计(论文)任务书
软件 学 院 软件工程 专 业 2012-1 班
一、课程设计(论文)题目小型商品销售管理系统
二、课程设计(论文)工作自2013年6月17日起至2013年6月21日止。
三、课程设计(论文)地点:
软件学院创新大楼
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生掌握系统各功能模块的基本工作原理;
(2)掌握C++的基本编程原理和及基本的编程方法;
(3)使学生学会系统调试;
(4)培养学生分析、解决问题的能力;
(5)提高学生的软件文档写作能力。
2.课程设计的任务及要求
1)基本要求:
(1)分析系统各功能模块的工作原理;
(2)至少有查找,排序、插入、删除等功能;
(3)提出系统的设计方案;
(4)对所进行编程、调试、修改。
2)创新要求:
在基本要求达到后,可进行创新设计.
3)课程设计论文编写要求
(1)要按照书稿的规格打印誊写课设论文
(2)论文包括设计目的和要求、设计内容、流程图、程序实现、程序调试、设计小结、参考文献等
(3)毕业论文装订按学校的统一要求完成
4)答辩与评分标准:
(1)完成原理分析:
20分;
(2)完成设计过程:
25分;
(3)完成调试运行结果正确:
40分;
(4)答辩:
15分。
5)参考文献:
(1)谭浩强.《C++程序设计实践指导》清华大学出版社
(2)谭浩强.《C++程序设计》清华大学出版社
(3)http:
//
6)课程设计进度安排
内容天数 地点
总体需求与分析构思及收集资料1 图书馆
各模块的编程实现,调试与修改3 机房
撰写论文与答辩1 图书馆,
学生签名:
2013年6月17日
课程设计(论文)评审意见
(1)完成原理分析(20分):
优( )、良( )、中( )、一般( )、差( );
(2)设计分析 (25分):
优( )、良( )、中( )、一般( )、差( );
(3)完成调试 (20分):
优( )、良( )、中( )、一般( )、差( );
(4)运行结果 (20分):
优( )、良( )、中( )、一般( )、差( );
(5)答辩 (15分):
优( )、良( )、中( )、一般( )、差( );
(6)格式规范性及考勤是否降等级:
是( )、否( )
评阅人签名:
职称:
讲师
2013年6月22日
一:
设计目的和要求
1.设计目的
课程设计的目的是培养应用《C++面向对象程序设计》设计方法及思想解决实际问题的能力,掌握使用面向对象设计语言C++,熟悉面向对象开发平台VisualC++6.0,提高调查研究、查阅技术资料以及编写技术文献的能力。
2.设计要求
用C++编写一系统,实现商品销售管理:
1)商品基本信息的键盘录入,删除,修改,磁盘导入和保存;
2)商品库存信息的键盘录入,删除,修改,磁盘导入和保存;
A)输入一个商品编号,能自动搜索并在屏幕上输出商品的库存信息
B)输入一个商品编号和新增库存,能更新商品的库存信息。
如商品001,输入新增库存4单位,若商品001原来的库存为3单位,则更新其库存为7单位,并保存至磁盘;
3)销售记录的键盘录入和磁盘保存。
要求在输入一条销售记录时,只能手动录入商品编号和销售数量,其他相关信息自动生成后,将完整的(包含商品基本信息,价格,销售数量,销售金额,销售日期,以及库存数量)销售记录和商品库存信息在屏幕上输出,并保存在指定的磁盘文本中,不得覆盖之前的销售记录和库存信息。
4)输入一个销售日期,如201212,能自动计算出2012年12月份的商品总销售额。
二:
设计内容
1.主要类设计
对于整个商品销售管理系统来说,首先,定义个Ware类作为基类:
classWare//基本信息类
{public:
Ware(){num=0;name[0]='N';price=0;}
Ware(intn1,charname1,doubleprice1)
{num=n1;name[0]=name1;price=price1;}
voidinput();
voidoutput();
intnum;
charname[10];
doubleprice;
};
然后我们再定义两个派生类:
Stock类,即商品库存信息类;Sell类,即商品销售信息类;具体实现如下:
classStock:
publicWare//库存类
{
public:
Stock(){number=0;}
Stock(intn):
number(n){};
voidinput();
voidoutput();
intnumber;
};
classSell:
publicWare//销售类
{
public:
Sell(){numb=0;count=0;sale=0;time[0]='N';}
voidinput();
voidoutput();
intsell();
intnumb;
doublecount;
doublesale;
chartime[64];
};
2.其它各函数的主要功能实现
4)函数按功能来分可分为两大类,其一是功能实现类,作用是实现题目要求的各种功能,如商品基本信息的键盘录入,删除,修改,磁盘导入和保存;商品库存信息的键盘录入,删除,修改,磁盘导入和保存等。
intinputware();//输入商品基本信息并且存至文件
intoware();//输出商品基本信息
intcware();//修改Ware数据
intinquire();//查询库存信息
intcstock();//修改库存信息
intsell();//输入商品销售信息
intsalecase();//查看商品销售信息
intsum();//查看特定时段的销售额
intsalesum();//总销售额
voidDelete()//删除函数
另一类是导航菜单类,主要作用是链接程序的各个模块,并且给使用者做部分导航,是使用者更清晰明了的使用本系统。
它们有:
voidwelcome();//欢迎函数,作为主菜单链接以下四个函数
voidWARE();//调用和商品基本信息有关的函数
voidSTOCK();//调用和商品库存有关的函数
voidSALE();//调用和商品销售有关的函数
voidExit();//退出函数
3.主函数main()
主函数main()中用了switch语句,可实现选择个功能,即选择对商品的哪些性质进行操作,1,对商品的基本信息进行操作。
2,对商品的库存进行操作。
3,对商品的销售进行操作。
0为退出程序。
进入程序后,可选择执行的功能;
流程图1中简单介绍了该商品管理系统的主要功能,在后面会对各部分进行分析。
3.以下具体功能具体分析
1).在Ware()函数中,用了switch语句,可实现5个功能,即1.信息输入2.信息查询3.修改信息4.返回菜单0.退出。
2)在Sell()函数中,用了switch语句,可实现6个功能,即1.输入销售信息2.销售信息查询3.查询总销售额4.查询特定时刻的销售额5.返回菜单0.退出。
3)在Stock()函数中,用了switch语句,可实现4个功能,即1.库存信息输入2.库存信息查询3.库存修改信息4.返回菜单0.退出。
4)在Delete()函数中,用了switch语句,可实现5个功能,即1.信息输入2.信息查询3.修改信息4.返回菜单0.退出。
5)Exit()函数作为退出函数。
三.流程图
开始
Welcome()函数
Sell()
3
Ware()
1
Stock()
4
Delete()
4
1
四:
程序实现
1.在主函数中调用了welcome函数,使用了Sleep函数和cout函数使程序更加美观;
intmain()
{inti;
cout<<"********************************"< cout<<"欢迎使用"< cout<<"********************************"< for(i=0;i<20;i++) {cout<<"."; Sleep(120); } welcome(); return0; } 2.Welcome的功能实现如下所示 voidwelcome() { intm; system("cls"); cout<<"*********************************"< cout<<"[1]商品基本信息操作"< cout<<"[2]商品库存操作"< cout<<"[3]销售情况记录"< cout<<"[4]删除商品信息"< cout<<"[0]退出程序"< cout<<"*********************************"< cin>>m; switch(m) { case1: WARE();break; case2: STOCK();break; case3: SALE();break; case4: Delete();break; case0: Exit();break; }; } 在该函数中使用是Switch语句,通过switch()语句可选择各功能,为了使界面更美观,也使用了cout函数作为显示菜单; 3.删除函数,本函数是将文件中保存的商品数据导出至商品类的对象数组中,然后通过商品编号来进行判断,如果符合条件,删除该商品所有数据,并且重新读入文件,覆盖旧数据。 voidDelete() { intnum,i; Stockstock[N]; Wareware[N]; fstreaminstock("stock.dat",ios: : in|ios: : out|ios: : app); fstreaminware("ware.dat",ios: : in|ios: : out|ios: : binary); check(instock); check(inware); for(i=0;i { instock>>stock[i].number; inware.read((char*)&ware[i],sizeof(ware[i])); } cout<<"请输入要删除的商品编号: "; cin>>num; for(i=0;i { if(num==ware[i].num) { ware[i].output(); stock[i].output(); for(intm=i;m {ware[m]=ware[m+1]; stock[m]=stock[m+1]; } break; } } inware.close(); instock.close(); for(i=0;i { fstreaminstock1("stock.dat",ios: : in|ios: : out); instock1.seekp(i*sizeof(stock[i].number),ios: : beg); instock< fstreaminware("ware.dat",ios: : in|ios: : out|ios: : binary); inware.seekp(i*sizeof(ware[i]),ios: : beg); inware.write((char*)&ware[i],sizeof(ware)); } instock.close(); inware.close(); cout<<"返回上一级请按1,退出程序请按0;"; cin>>i; if(i) welcome(); elseExit(); } 4.商品销售函数 通过switch来链接各个功能函数 switch(m) { case1: oware();break; case2: inputware();break; case3: cware();break; case4: welcome(); case0: Exit();break; }; } 5.商品库存函数 switch(m) { case1: inquire();break; case2: cstock();break; case3: welcome(); case0: Exit();break; }; } 6.商品销售函数 switch(m) { case1: sell();break; case2: salecase();break; case3: sum();break; case4: salesum();break; case5: welcome(); case0: Exit();break; }; } 7.退出函数 voidExit() { system("cls"); cout<<"*********************************"< cout<<"谢谢使用"< cout<<"*********************************"< } 8.修改商品基本数据。 首先通过文件操作读取已存的商品数据,然后输入商品编号,然后进行判断,若符合条件,则调用输入函数,使用文件指针,然后对原来的数据进行输出,覆盖旧数据。 intcware() { inti,num; Wareware[N]; fstreaminware("ware.dat",ios: : in|ios: : out|ios: : binary); check(inware); cout<<"修改数据"< for(i=0;i { inware.read((char*)&ware[i],sizeof(ware[i])); if(ware[i].num==0)continue; if(inware.eof())break; } cout<<"num: "; cin>>num; for(i=0;i { if(num==ware[i].num) { ware[i].input(); inware.seekp(i*sizeof(ware[i]),ios: : beg); inware.write((char*)&ware[i],sizeof(ware)); break; } } inware.close(); cout<<"返回上一级请按1,退出程序请按0;"; cin>>i; if(i) WARE(); elseExit(); return0; } 9. Sum是查询某一段时间销售额的函数,首先定义了两个字符串用来存储时间的头尾,然后从文件中读取数据进行判断,如果符合第一个条件,就开始叠加销售额,知道第二个条件满足时,停止循环并且输出销售额。 intsum() {Sellsell; chartime1[64],time2[64]; doubleSale=0; inti=0; fstreaminsell("sell.dat",ios: : in|ios: : out|ios: : app|ios: : binary); check(insell); cout<<"输入时间1: "; cin>>time1; cout<<"输入时间2: "; cin>>time2; do { insell.seekg(0,ios: : cur); insell.read((char*)&sell,sizeof(sell)); if(strcmp(time1,sell.time)==0) { Sale+=sell.sale; } }while(! strcmp(time2,sell.time)==0); cout< insell.close(); cout<<"返回上一级请按1,退出程序请按0;"; cin>>i; if(i) SALE(); elseExit(); return0; } 五.程序调试 六.设计小结 通过编写商品销售管理系统这个程序,感觉到自己有很多方面的不足,在编写过程中不断的求助于同学,不断的查找资料和翻书本,自己真是受益匪浅。 首先,在编程学习中,实践是非常重要的,无论自己在读程序看程序时是多么的明白,但到了电脑面前,才知道在实际操作中有很多问题等着我们去解决。 而且我也意识到学习在很大程度上靠自觉,要自己积极主动的去发现问题和解决问题,遇到不懂得一定要打破沙锅问到底,拿出积极的学习态度! 这样才能巩固我们的基础知识,有利于我们今后的发展,所以以后要多多加强动手操作和编写能力。 其次要多和同学老师交流,因为写程序是有很多技巧和方法的,这是一笔宝贵的经验等着我们去学习,在经常的交流和实践中,才能准确快速的编写出所需要的程序,通过程序进而解决问题。 在这次设计中,我也深刻认识到自己的不足,今后一定要不断的进步,好好锻炼自己的编码能力! 成为一个出色的程序员! 七: 参考文献 [1]谭浩强《C++程序设计实践指导》清华大学出版社 [2]谭浩强《C++程序设计》清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 商品 销售 管理 系统