模拟超市商品管理系统_第1页
模拟超市商品管理系统_第2页
免费预览已结束,剩余30页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训题目: 超市商品管理系统二、实训目的:(1)掌握 C+ 语言中各种运算符使用方法及理解标识符(变量)的作用域和生存 期概念。(2)掌握重载函数、构造数据类型、指针、引用作为函数参数时的使用方法。(3)掌握 C+ 语言中类、类对象的定义和使用方法。(4)掌握指向数据成员的指针、指向成员函数的指针、成员指针数组和对象数组 的使用方法。(5)掌握虚函数的使用方法。(6)理解与掌握在继承、多继承、重复继承和共享继承等条件下构造函数和析构 函数的调用顺序和初始化符表的使用方法。(7)理解 C+ 语言中模板对实现通用类和通用函数的重要性。(8)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识

2、,理论 联系实际,进一步培养学生综合分析问题,解决问题的能力。(9)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生 素质的最终目的。(10) 利用所学知识,开发小型应用系统,掌握运用 C+语言编写调试应用系统程 序,训练独立开发应用系统,进行数据处理的综合能力。三、 设计概述:建立一个简单的超市商品管理系统,主要实现的功能:商品管理。该商场分为 3 个柜组:食品类,家电类,用品类,第个柜组有经理一名,仓库 管理员一名和售货员若干名。在人事管理方面,该系统可以实现员工住处的增加、删除和查询,当员工所在的柜组和担任的工作发生变化时,可以修改员工的记录。 此外,还要求系统可以计算

3、员工的工资并存档,并且可以查询员工的工资记录。对应 3 个不同柜组,商场销售的商品也分为食品,家电,用品 3 种。在商品管 理方面,要求系统可以实现商品住处的增加、 删除和查询, 要求系统可以检查库存, 即检查库存量是否低于某一设定的值。对于食品,要求根据保质期。四、 设计任务:独立完成超市商品管理系统设计属性服务商品 ID添加商品信息商品名称删除商品信息商品价格检杳库存商品库存量添加商品库存量商品种类保质期备注生产厂家色彩额定电压五、设计要求:(1) 创建类并使用类对象完成相应的任务。(2) 设计中的每一个功能均由类对象来完成。(3) .理解工程的概念和头文件的使用。深入理解封装、继承、和多

4、态这面向对象的编程的特点。(5) .在程序编写的进行存储备份,以免机器故障、或误操作而丢失程序。(6) .在硬盘上建立自己的目录,将程序文件存储到该目录下,即有利于调试文件, 又保证了文件的安全性。六、设计步骤:商品管理功能:Commoditycharnu mberlongIDCharn ameChar type_code float price_out int nu mberchar producer char color char volt int fixday static int count char con fortablestatic int count void ShowMe n

5、u();void ShowMeMe nu();void AddI nfo();void AddNewGoods();void ShowAddMe nu();void AddOrdi naryGood();void AddFoods();void AddElectric();void AddNumber();void SaleGood();void CheckGood();void ShowGoodI nfo();void ExitF un cti on();void BaseDate();Fooddressapplia neeVoid checkquality(char , int)Void

6、checkquality(char , int)Void checkquality(char)食品(1)主界面模块(2)商品管理功能模块显示菜单输入选项至商品管理退出开始-1丨显示菜单1输入选项至添加商品信息售岀商品信息查询商品信息八添加新商品信返回上一级家电日用品添加商品库存量食品、家电、日用品返回七、设计代码:模拟超市商品管理系统#include #include /#include #include #include / 定义商品类class Goodprivate:public: / 输入基本信息*myproducer,char *mynote)strcpy(name, myname)

7、;price=myprice;number=mynumber;ID=myID;voidSetInfo(char*myname,int myID,double myprice,int mynumber,charchar name20;/商品的名称long ID;/商品的序列号double price;/商品价格int number;/商品的库存数量char producer40;/商品的生产厂家char note100; /商品备注 50 字内char *GetNote() return note; /void SetNumber(int Num) number+=Num; /返回商品数量;/

8、由商品中派生出食品类 class Foods:public Goodprivate:int keepday; / 食品的保质期 static int count; / 统计商品种类public:/ 输入特定信息void SetMeInfo(int mykeepday)keepday=mykeepday; count+;int GetKeepDay() return keepday; /strcpy(producer,myproducer);strcpy(note,mynote);char *GetName() return name; /返回商品名称int GetNumber() return

9、 number; /返回商品库存量long GetID() return ID; /返回产品 IDdouble GetPrice() return price; /返回商品价格char *GetProducer() return producer;/返回生产厂商返回备注返回保质期static int GetCount() return count; /返回商品种类/ 显示商品信息void ShowInfo()cout产品 ID:Good:GetID()endl;cout产品名称:Good:GetName()endl;cout产品价格:Good:GetPrice()endl;cout产品库存量:

10、 Good:GetNumber()endl;cout产品生产商: Good:GetProducer()endl;cout产品保质期: GetKeepDay()endl;cout产品备注:GetNote()endl;getch();/ 显示商品主要信息void ShowMainInfo()coutGood:GetID()Good:GetNumber()GetNote()endl;Good:GetName()Good:GetProducer()Good:GetPrice()GetKeepDay()/ 由商品中派生出家电类class Electric:public Goodprivate: char

11、color10;/色彩char volt8; /额定电压cout产品保修日期: GetFixDay()endl;int fixday;/保修期static int count;/统计商品种类public:/ 输入特定信息void SetMeInfo(char *mycolor,char *myvolt,int myfixday)strcpy(color,mycolor);strcpy(volt,myvolt);fixday=myfixday;count+;char *GetColor() return color; /返回颜色char *GetVolt() return volt; /返回额定

12、电压int GetFixDay()return fixday; /返回保修期static int GetCount() return count; /返回商品种类/ 显示商品信息void ShowInfo()cout产品 ID:Good:GetID()endl;cout产品名称: Good:GetName()endl;cout产品价格: Good:GetPrice()endl;cout产品库存量: Good:GetNumber()endl;cout产品生产商: Good:GetProducer()endl;cout产品颜色: GetColor()endl;cout产品额定电压: *GetVol

13、t()endl;cout 产品备注: GetNote()endl;getch();/ 显示商品主要信息void ShowMainInfo()coutGood:GetID()Good:GetName() Good:GetPrice()Good:GetNumber()Good:GetProducer() GetColor()*GetVolt() GetFixDay() GetNote()endl; ;/ 由商品中派生出日常用品类class OrdinaryGood:public Goodprivate:char confortable10; /舒适度static int count; / publ

14、ic:统计商品种类/ 输入特定信息void SetMeInfo(char *myconfortable)strcpy(confortable,myconfortable); count+;char *GetCofTab() return confortable; / static int GetCount() return count; /返回舒适度 返回商品种类/ 显示商品信息 void ShowInfo()cout 产品 ID: Good:GetID()endl;cout 产品名称: Good:GetName()endl;cout 产品价格: Good:GetPrice()endl;cou

15、t 产品库存量: Good:GetNumber()endl;cout 产品生产商: Good:GetProducer()endl;cout 产品舒适度: GetCofTab()endl;cout 产品备注: GetNote()endl; getch();/ 显示商品主要信息void ShowMainInfo()coutGood:GetID()Good:GetName()Good:GetNumber()Good:GetProducer()GetNote()endl;Foods food50; / 声明食品类Electric elct50; / 声明电器类OrdinaryGood ordin50;

16、 / / 初始化各静态量 int Foods:count = 0; int Electric:count =0;int OrdinaryGood:count =0;/ 声明各个函数void ShowMenu();void ShowMeMenu();void AddInfo();void AddNewGoods();void ShowAddMenu();Good:GetPrice()GetCofTab()声明日常用品类void AddOrdinaryGood();void AddFoods();void AddElectric();void AddNumber();void SaleGood()

17、;void CheckGood();void ShowGoodInfo();void ExitFunction();void BaseDate();/ 主函数void main(int argc, char* argv)char x;/ 引入基础数据BaseDate();doShowMenu();/ 显示主菜单 x=getch();switch(x)case 49: / 如果输入“ 1 ”则调用添加商品信息函数AddInfo();break;case 50: / 如果输入“ 2 ”则调用售出商品信息函数if(!(Foods:GetCount()+(Electric:GetCount()+(Or

18、dinaryGood:GetCount()cout 因为仓库中还没有商品,所以您现在还不能使用这个功能。 n 请添加新商 品信息!endl;getch();break;SaleGood();break;case 51: / 如果输入“ 3 ”则调用查询商品信息函数if(!(Foods:GetCount()+(Electric:GetCount()+(OrdinaryGood:GetCount()cout 因为仓库中还没有商品,所以您现在还不能使用这个功能。 n 请添加新商 品信息!endl;getch();break;CheckGood();break;case 52:/如果输入“ 4”或者“

19、 ESC 则提示退出case 27:cout 您确定要离开吗 (Y/N):64 & x81)x=x+32;if(x=13)x=y;break;case 121:default :/ 如果输入其它字符则提示错误信息cout 抱歉,我没有找到你要的选项。 n 按任意键继续 !endl; getch();while(x!=y);ExitFunction();/ 主菜单函数void ShowMenu()system (cls);cout=endl; cout 模拟超市商品管理系统 endl;cout=endl;cout1.添加商品信息 endl;cout2.售出商品信息 endl;cout3.

20、查询商品信息 endl;cout4.离开本程序 endl;cout=endl;cout程序版本: 1.00.00 Bate 1endl;cout CopyRight2007 杨阳 626 编程小组 endl;cout 请选择 1-4endl;/ 添加商品函数void AddInfo()char x;doShowMeMenu();/ 显示添加商品信息菜单x=getch();switch(x)case 49:/如果输入“ 1 ”则调用添加新商品信息函数AddNewGoods();break;case 50:/如果输入“ 2 ”则调用添加商品库存量函数AddNumber();break;case 5

21、1:/如果输入“ 3”或者“ ESC 则提示返回case 27:cout 您确定要返回吗 (Y/N):64 & x81)x=x+32;if(x=13)x=y;break;case 121:default :/ 如果输入其它字符则提示错误信息cout 抱歉,我没有找到你要的选项。 n 按任意键继续 !endl; getch();while(x!=y);void ShowMeMenu()system (cls);cout=endl; cout 模拟超市商品管理系统 endl;cout=endl;cout添加商品信息 endl;cout- endl;cout1.添加新商品信息 endl;co

22、ut2.添加商品库存量 endl;返回上一级菜单 endl;cout3.cout 请选择 1-3endl;void AddNewGoods()char x;doShowAddMenu();/ 显示选择商品类型菜单 x=getch();switch(x)case 49:/ 如果输入“ 1 ”则调用添加食品类函数AddFoods();x=y;break;case 50:/ 如果输入“ 2 ”则调用添加电器类函数AddElectric();x=y;break;case 51:/ 如果输入“ 3 ”则调用添加日用品类函数AddOrdinaryGood();x=y;break;coutendl;case

23、 52:/ 如果输入“ 4”或者“ ESC 则提示返回case 27:cout 您确定要返回吗 (Y/N):64 & x81)x=x+32;if(x=13)x=y;break;case 121:default :/ 如果输入其它字符则提示错误信息cout 抱歉,我没有找到你要的选项。 n 按任意键继续 !endl; getch();while(x!=y);/ 选择商品类型菜单 void ShowAddMenu()system (cls);cout=endl; cout模拟超市商品管理系统 endl;cout=endl;cout选择商品类型 endl;cout- endl;cout1.食

24、品类 endl;cout2.家电产品类 endl;cout3.日用产品类 endl;cout4.返回上一级菜单 endl;cout=endl;cout 请选择 1-3endl;/ 添加食品类函数 void AddFoods()/ 定义常量与变量 static int num; char name20; long id;double price; int number;char producer40; int keepday;char note100;/ 输入商品信息 num=Foods:GetCount(); cout 请输入: endl; coutname; coutid;coutprice

25、;coutnumber;coutproducer;coutkeepday;coutnote;/ 保存商品信息 foodnum.SetInfo(name,id,price,number,producer,note);foodnum.SetMeInfo(keepday);/ 显示商品信息coutendl; foodnum.ShowInfo();/ 添加电器类函数void AddElectric()/ 定义常量与变量static int num;char name20;long id;double price;int number;char producer40;char color10;char

26、volt8;int fixday; char note100;/ 输入商品信息 num=Electric:GetCount(); cout 请输入: endl; coutname; coutid;coutprice;coutnumber;coutproducer;coutcolor;coutvolt;coutfixday;coutnote;/ 保存商品信息 elctnum.SetInfo(name,id,price,number,producer,note);elctnum.SetMeInfo(color,volt,fixday);/ 显示商品信息coutendl;elctnum.ShowIn

27、fo();/ 添加日用品类函数 void AddOrdinaryGood()/ 定义常量与变量 static int num; char name20;long id; double price; int number;char producer40; char confortable10;char note100;/ 输入商品信息 num=OrdinaryGood:GetCount(); cout 请输入: endl; coutname;coutid;coutprice;coutnumber;coutproducer; coutconfortable; coutnote;/保 存 商 品 信

28、 息ordinnum.SetInfo(name,id,price,number,producer,note);ordinnum.SetMeInfo(confortable);/ 显示商品信息 coutendl; ordinnum.ShowInfo();/ 添加商品库存量函数 void AddNumber()/ 定义变量 int i; long MyID; int num;/ 输入商品 ID coutMyID;/ 在食品类中查找商品 ID for(i=0;iFoods:GetCount();i+)if(MyID=foodi.GetID()coutfoodi.GetName() 的现有数量是: f

29、oodi.GetNumber()endl;cout 请输入 foodi.GetName()num;foodi.SetNumber (num);/ 添加数量cout 现在该产品的库存量为: foodi.GetNumber()endl;getch();return;/ 在电器类中查找商品 IDfor(i=0;iElectric:GetCount();i+)if(MyID=elcti.GetID()coutelcti.GetName() 的现有数量是: elcti.GetNumber()endl;cout 请输入 elcti.GetName()num;elcti.SetNumber (num);/

30、添加数量cout 现在该产品的库存量为: elcti.GetNumber()endl;getch();return;/ 在日用品类中查找商品 IDfor(i=0;iOrdinaryGood:GetCount();i+)if(MyID=ordini.GetID()coutordini.GetName() 的现有数量是: ordini.GetNumber()endl;cout 请输入 ordini.GetName()num;ordini.SetNumber (num);/ 添加数量cout 现在该产品的库存量为: ordini.GetNumber()endl;getch();return;/ 未找

31、到商品 ID 则提示错误coutvv抱歉,我们无法提供 ID 是vvMylDvv的商品! n 按任意键返回endl;getch();return;/ 售出商品信息函数void SaleGood()/ 定义变量int i;long MyID;int num;/ 显示所有商品信息ShowGoodInfo();/ 输入商品 ID/ 在电器类中查找商品 IDfor(i=0;iElectric:GetCount();i+)coutMyID;/ 在食品类中查找商品 ID for(i=0;iFoods:GetCount();i+)if(MyID=foodi.GetID()coutfoodi.GetName(

32、)现 有 数 量 : foodi.GetNumber()foodi.GetPrice()endl;coutnum;if(numfoodi.GetNumber()cout 抱歉,我们无法提供足够的数量。 n 按任意键返回 endl; getch();return ;foodi.SetNumber(-num);/ 减去数量cout 消费: num * foodi.GetPrice()元 endl;cout 现在该产品的库存量为: foodi.GetNumber()endl; getch();return;if(MyID=elcti.GetID()单价:coutelcti.GetName()现 有

33、数 量 : elcti.GetNumber()elcti.GetPrice()endl;coutnum;if(numelcti.GetNumber()cout 抱歉,我们无法提供足够的数量。 n 按任意键返回 endl; getch();return;elcti.SetNumber(-num);/ 减去数量cout 消费: num * elcti.GetPrice()元 endl;cout 现在该产品的库存量为: elcti.GetNumber()endl; getch();return;/ 在日用品类中查找商品 ID for(i=0;iOrdinaryGood:GetCount();i+)i

34、f(MyID=ordini.GetID()coutordini.GetName() 现有数量: ordini.GetNumber()ordini.GetPrice()endl;coutnum;if(numordini.GetNumber()cout 抱歉,我们无法提供足够的数量。 n 按任意键返回 endl; getch();return;单价:单价:ordini.SetNumber(-num);/ 减去数量cout 消费: num * ordini.GetPrice()元 endl;cout 现在该产品的库存量为: ordini.GetNumber()endl;getch();return;

35、/ 未找到商品 ID 则提示错误coutvv抱歉,我们无法提供 ID 是vvMylDvv的商品! n 按任意键返回endl;getch();return;/ 查询商品信息函数void CheckGood()/ 定义变量int i;long MyID;cout 食品类: Foods:GetCount() 种 家电类: Electric:GetCount() 种 日用品类:Ordi naryGood:GetCou nt()种e ndl;cout共计(Foods:GetCount()+(Electric:GetCount()+(OrdinaryGood:GetCount() 种e ndl;/ 输入商

36、品 IDcoutMyID;/ 在食品类中查找商品 ID for(i=0;iFoods:GetCount();i+)if(MyID=foodi.GetID()foodi.ShowInfo();return;/ 在电器类中查找商品 IDfor(i=0;iElectric:GetCount();i+)if(MyID=elcti.GetID()elcti.ShowInfo();return;/ 在日用品类中查找商品 ID for(i=0;iOrdinaryGood:GetCount();i+)if(MyID=ordini.GetID()ordini.ShowInfo();return;/ 未找到商品

37、ID 则提示错误coutvv抱歉,我们无法提供 ID 是vvMylDvv的商品! n 按任意键返回endl; getch();return;/ 显示商品列表void ShowGoodInfo()/ 定义变量int i;/ 显示食品类商品cout 产品 ID 产品名称 产品价格 产品库存量 产品生产商 产品保质期 产品备注endl;for(i=0;iFoods:GetCount();i+) foodi.ShowMainInfo();/ 显示电器类商品coutendl;cout 产品 ID 产品名称 产品价格 产品库存量 产品生产商 产品颜色 产品额定电压 产品保修日期 产品备注 endl;for

38、(i=0;iElectric:GetCount();i+) elcti.ShowMainInfo();/ 显示日用品类商品coutendl;cout 产品 ID 产品名称 产品价格 产品库存量 产品生产商 产品舒适度 产品备注endl;for(i=0;iOrdinaryGood:GetCount();i+) ordini.ShowMainInfo();void ExitFunction()cout 感谢您对我们的支持!再见! endl;cout 按任意键退出 endl;getch();void BaseDate()char name20;long id;double price;int num

39、ber;char producer40;int keepday;char color10;char volt8;int fixday;char confortable10;char note100;strcpy(name, 三元牛奶 );id=10010101;price=2;number=200;strcpy(producer, 三元乳业 );keepday=14;strcpy(note, 无);food0.SetInfo(name,id,price,number,producer,note); food0.SetMeInfo(keepday);strcpy(name, 水饺 );id=10

40、010111;price=5;number=1600;strcpy(producer, 湾仔码头 );keepday=60;strcpy(note, 无);food1.SetInfo(name,id,price,number,producer,note); food1.SetMeInfo(keepday);strcpy(name, 方便面 );id=10010121;price=3;number=1200;strcpy(producer, 五谷道场 );keepday=14;strcpy(note, 非油炸食品 );food2.SetInfo(name,id,price,number,producer,note); food2.SetMeInfo(keepday);strcpy(name, 长虹液晶电视 );id=10110101;price=300; number=130;strcpy(producer, 长虹电器 );strcpy(color, 黑色 );strcpy(volt,220V);fixday=90;strcpy(note,56 寸液晶,超薄,刷新率 120Hz,响频 4ms );elct0.SetIn

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论