商品进货管理系统课程设计.doc

上传人:仙人指路1688 文档编号:3819319 上传时间:2023-03-23 格式:DOC 页数:30 大小:248.50KB
返回 下载 相关 举报
商品进货管理系统课程设计.doc_第1页
第1页 / 共30页
商品进货管理系统课程设计.doc_第2页
第2页 / 共30页
商品进货管理系统课程设计.doc_第3页
第3页 / 共30页
商品进货管理系统课程设计.doc_第4页
第4页 / 共30页
商品进货管理系统课程设计.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《商品进货管理系统课程设计.doc》由会员分享,可在线阅读,更多相关《商品进货管理系统课程设计.doc(30页珍藏版)》请在三一办公上搜索。

1、目录一、需求分析2二、概要设计2三、详细设计4四、调试分析15五、用户手册15六、测试数据.15七、附录20一、需求分析1. 输入功能:输入商品信息如:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。2. 记录功能:记录每一次进货信息,对该信息可以进行增加3. 删除功能:能够将输入的商品的某部分信息进行删除操作4. 修改功能:能够将输入的商品的某部分信息进行修改操作5. 查询功能:能够对进货信息中的商品按照供应商以及价格进行查询6. 排序功能:能够对进货信息中的

2、商品按照供应商以及价格进行排序7. 统计功能:并能够对所有进货商品进行价格、数量汇总8. 要求:1) 源文件采用多文件的工程结构;2) 数据存储采用文件形式;3) 采用面向对象方法设计;4) 功能完善,适当的注释;5) 关于文件的内容需要自学;二、概要设计1. 商品类的定义:class Goodspublic:Goods();void init(int Num,char Name20,char Type20,float Inmoney,float Outmoney,int Quantity,char Gname20);int getnum();float getinmoney();float

3、getoutmoney();int getquantity();int gettag();void delgoods();char* getname();char* getgname();void disp();private:int tag;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;2. 商品库类定义:class GoDatapublic:GoData(); /构造函数void addgoods();/新增商品void delgoods(); /删除商品void

4、 modify(); /修改商品信息 float outmonstati(); /销售价统计void sortinmon(); /进价排序void sortoutmon(); /销售价排序 void sort();Goods* searchgname(char Gname20); /按供应商搜索void gnamedisp(char Gname20); /按供应商显示Goods* searchinmoney(double Inmoney); /按进价搜索void inmoneydisp(double Inmoney);/按进价显示Goods* searchnum(int Num); /按编号搜

5、索Goods* searchoutmoney(double Outmoney); /按销售价搜索void outmoneydisp(double Outmoney);/按销售价显示float GoData:inmonstati();void GoData:intotal();void search();void godata(); /商品库维护void disp();GoData(); /析构函数private:int top;Goods goods20; 三、详细设计1. 商品类成员函数的定义:Goods:Goods()void Goods:init(int Num,char Name20,

6、char Type20,float Inmoney,float Outmoney,int Quantity,char Gname20)num=Num;inmoney=Inmoney;outmoney=Outmoney;quantity=Quantity;strcpy(name,Name);strcpy(gname,Gname);strcpy(type,Type);tag=1;int Goods:getnum()return num;float Goods:getinmoney()return inmoney;float Goods:getoutmoney()return outmoney;in

7、t Goods:getquantity()return quantity;int Goods:gettag()return tag;void Goods:delgoods()tag=0;char* Goods:getname()return name;char* Goods:getgname()return gname;void Goods:disp()coutendl商品编号:numendl商品名称:nameendl商品类型:typeendl进货价格:inmoneyendl销售价格:outmoneyendl商品数量:quantityendl供应商家:gnameendl;2.商品库类成员函数的

8、定义GoData:GoData() /构造函数Goods g;top=-1;ifstream fin(goods.txt);while(1)fin.read(char *)&g,sizeof(g);if(!fin)break;top+;goodstop=g;fin.close();void GoData:addgoods()/新增商品int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;Goods *g;cout请输入商品的基本信息:endl;cout商品编号:num;cou

9、t商品名称:name;cout商品类别:type;cout商品的进货价:inmoney;cout商品的销售价:outmoney;cout商品数量:quantity;cout供应商名称:gname;if(searchnum(num)=NULL) top+; goodstop.init(num,name,type,inmoney,outmoney,quantity,gname); g=searchnum(num); system(cls); cout-新增商品成功-disp(); system(pause);elsecout您输入的信息有误请重新输入!endl;void GoData:delgoo

10、ds() /删除商品int num;Goods *g;cout请输入要删除商品的编号:num;g=searchnum(num);if(g=NULL)cout该商品不存在,请重新输入delgoods();cout-删除成功-disp();void GoData:modify() /修改商品信息int oldnum;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;Goods *g;cout请输入需要修改的商品的编号:oldnum;g=searchnum(oldnum);if

11、(g=NULL)cout该商品不存在,请重新输入endl;elsecout请输入商品的新信息:endl;cout商品编号:num;cout商品名称:name;cout商品类别:type;cout商品的进货价:inmoney;cout商品的销售价:outmoney;cout商品数量:quantity;cout供应商名称:gname;g-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float GoData:inmonstati() /进价统计float count=0;for(int i=0;i=top;i+)co

12、unt=count+goodsi.getinmoney()*goodsi.getquantity();return count; float GoData:outmonstati() /销售价统计float count=0;for(int i=0;i=top;i+)count=count+goodsi.getoutmoney()*goodsi.getquantity();return count; int GoData:quanstati() /数量统计 int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();ret

13、urn count; void GoData:sortinmon() /进价排序float good20,t;Goods *g;for(int i=0;i=top;i+)goodi=goodsi.getinmoney(); for(int j=0;j=top-1;j+) for(int i=0;igoodi+1) t=goodi; goodi=goodi+1; goodi+1=t; for(int k=0;kdisp();system(pause);void GoData:sortoutmon() /销售价排序float good20,t;Goods *g;for(int i=0;i=top;

14、i+)goodi=goodsi.getoutmoney();for(int j=0;j=top-1;j+) for(int i=0;igoodi+1) t=goodi; goodi=goodi+1; goodi+1=t; for(int k=0;kdisp();system(pause); void GoData:sort() int choice=1; while(choice!=0) cout - 1 按进价排序-endl; cout - 2 按销售价排序-endl; cout - 0 退出 -choice; switch(choice) case 1: system(cls); sort

15、inmon(); break; case 2: system(cls); sortoutmon(); break; case 0: system(cls); break; cout按任意键继续endl; getch(); system(cls); void GoData:intotal() /汇总cout所有商品的进价总和为:inmonstati()endl;cout所有商品的销售价总和为:outmonstati()endl;cout所有商品的数量总和为:quanstati()endl;Goods* GoData:searchgname(char Gname20) /按供应商搜索for(int

16、 i=0;i=top;i+) if(!strcmp(goodsi.getgname(),Gname)&goodsi.gettag()=1) return &goodsi;return NULL;void GoData:gnamedisp(char Gname20) /按供应商显示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),Gname)&goodsi.gettag()=1)goodsi.disp();Goods* GoData:searchinmoney(double Inmoney) /按进价搜索for(int i=0;i=top;i+)

17、 if(goodsi.getinmoney()=Inmoney&goodsi.gettag()=1) return &goodsi;return NULL;void GoData:inmoneydisp(double Inmoney)/按进价显示for(int i=0;i=top;i+)if(goodsi.getinmoney()=Inmoney&goodsi.gettag()=1)goodsi.disp();Goods* GoData:searchnum(int Num) /按编号搜索for(int i=0;i=top;i+) if(goodsi.getnum()=Num&goodsi.ge

18、ttag()=1) /cout找到的商品号:goodsi.getnum()找到的商品标记:goodsi.gettag()endl; return &goodsi; return NULL;Goods* GoData:searchoutmoney(double Outmoney) /按销售价搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=Outmoney&goodsi.gettag()=1) return &goodsi;return NULL;void GoData:outmoneydisp(double Outmoney)/按进价显示for(i

19、nt i=0;i=top;i+)if(goodsi.getoutmoney()=Outmoney&goodsi.gettag()=1)goodsi.disp();void GoData:search()int choice=1;char gname20;double inmoney;double outmoney;Goods *g;while(choice!=0) cout-1 按供应商查询-endl; cout-2 按进价查询 -endl; cout-3 按销售价查询-endl; cout-0 后退 -choice; switch(choice) case 1: system(cls); c

20、out请输入供应商的名字:gname; g=searchgname(gname); if(g=NULL) cout没有该商家供应的商品!endl; else gnamedisp(gname); break; case 2: system(cls); cout请输入要查询的进价:inmoney; g=searchinmoney(inmoney); if(g=NULL) cout没有该进价的商品!endl; else inmoneydisp(inmoney); break; case 3: system(cls); cout请输入要查询的销售价:outmoney; g=searchoutmoney

21、(outmoney); if(g=NULL) cout没有该销售价的商品!endl; else outmoneydisp(outmoney); break; cout按任意键继续endl; getch(); system(cls); void GoData:godata() /商品库维护int choice=1;/int num;/Goods *g;while(choice!=0) coutendlendl-欢迎进入商品进货管理系统-endlendl; cout-1 删除商品信息-endl; cout-2 商品信息查询-endl; cout-3 修改商品信息-endl; cout-4 商品信息

22、排序-endl; cout-5 商品信息汇总-endl; cout-0 返回 -choice; switch(choice) case 1: system(cls); delgoods(); break; case 2: system(cls); search(); break; case 3: system(cls); modify(); break; case 4: system(cls); sort(); break; case 5: system(cls); intotal(); break; void GoData:disp()for(int i=0;i=top;i+)if(good

23、si.gettag()=1)goodsi.disp();GoData:GoData() /析构函数ofstream fout(goods.txt);for(int i=0;i=top;i+)if(goodsi.gettag()=1)fout.write(char *)&goodsi,sizeof(goodsi);fout.close();3.主函数:/-主函数-int main()GoData godata;/Goods *g;int choice=1;godata.disp();while(choice!=0)coutendlendl-欢迎进入商品进货管理程序-endlendl;cout-1

24、 增加进货信息-endl;cout-2 已进商品信息管理-endl;cout-0 退出 -choice;switch(choice)case 1:system(cls);godata.addgoods();break;case 2:system(cls);godata.godata();break;cout按任意键返回!endl;getch();system(cls);return 0;四、调试分析这次的面向对象程序设计的课程设计的任务,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验。从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼

25、的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们能够将自身知识和能力能在实际中的应用和发挥。五、用户手册 本程序的运行环境为DOS操作系统,执行文件为:商品进货管理系统.exe; 进入演示程序后,即显示对话形式的提示操作过程,选择进入增加进货信息时,则将所要输入的信息输入选择进入已进商品信息管理项时,则进入下一步详细操作;选择商品信息删除查询修改排序项后,可按各种信息搜索,选择相应选项即可; 选择退出后,便会退出系统。六、测试数据主界面: 新增商品功能:进入商品管理信息功能:进入商品查询功能:进入商品修改功能:进入商品排序功能:

26、进入商品统计功能:七、附录#include#include#include#include#include/-商品类-class Goodspublic:Goods()void init(int Num,char Name20,char Type20,float Inmoney,float Outmoney,int Quantity,char Gname20)num=Num;inmoney=Inmoney;outmoney=Outmoney;quantity=Quantity;strcpy(name,Name);strcpy(gname,Gname);strcpy(type,Type);tag

27、=1;int getnum()return num;float getinmoney()return inmoney;float getoutmoney()return outmoney;int getquantity()return quantity;int gettag()return tag;void delgoods()tag=0;char* getname()return name;char* getgname()return gname;void disp()coutendl商品编号:numendl商品名称:nameendl商品类型:typeendl进货价格:inmoneyendl

28、销售价格:outmoneyendl商品数量:quantityendl供应商家:gnameendl;private:int tag;int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;/-商品库类-class GoDatapublic:GoData() /构造函数Goods g;top=-1;ifstream fin(goods.txt);while(1)fin.read(char *)&g,sizeof(g);if(!fin)break;top+;goodstop=g;fi

29、n.close();void addgoods()/新增商品int num;char name20;char type20;float inmoney;float outmoney;int quantity;char gname20;Goods *g;cout请输入商品的基本信息:endl;cout商品编号:num;cout商品名称:name;cout商品类别:type;cout商品的进货价:inmoney;cout商品的销售价:outmoney;cout商品数量:quantity;cout供应商名称:gname;if(searchnum(num)=NULL) top+; goodstop.i

30、nit(num,name,type,inmoney,outmoney,quantity,gname); g=searchnum(num); system(cls); cout-新增商品成功-disp();elsecout您输入的信息有误请重新输入!endl;void delgoods() /删除商品int num;Goods *g;cout请输入要删除商品的编号:num;g=searchnum(num);if(g=NULL)cout该商品不存在,请重新输入delgoods();cout-删除成功-disp();void modify() /修改商品信息int oldnum;int num;ch

31、ar name20;char type20;float inmoney;float outmoney;int quantity;char gname20;Goods *g;cout请输入需要修改的商品的编号:oldnum;g=searchnum(oldnum);if(g=NULL)cout该商品不存在,请重新输入endl;elsecout请输入商品的新信息:endl;cout商品编号:num;cout商品名称:name;cout商品类别:type;cout商品的进货价:inmoney;cout商品的销售价:outmoney;cout商品数量:quantity;cout供应商名称:gname;g-init(num,name,type,inmoney,outmoney,quantity,gname);system(cls);float inmonstati() /进价统计float count=0;for(int i=0;i=top;i+)count=count+goodsi.getinmoney()*goodsi.getquantity();return count; float outmonstati() /销售价统计float count=0;for(int i=0;i=top;i+

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号