商品进货管理系统课程设计.doc_第1页
商品进货管理系统课程设计.doc_第2页
商品进货管理系统课程设计.doc_第3页
商品进货管理系统课程设计.doc_第4页
商品进货管理系统课程设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

目录一、需求分析2二、概要设计2三、详细设计4四、调试分析15五、用户手册15六、测试数据.15七、附录20一、需求分析1. 输入功能:输入商品信息如:商品编号、商品名称、商品类别(普通电视机、dvd、带dvd的电视机,带dvd的电视机的售价为普通电视机和dvd单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。2. 记录功能:记录每一次进货信息,对该信息可以进行增加3. 删除功能:能够将输入的商品的某部分信息进行删除操作4. 修改功能:能够将输入的商品的某部分信息进行修改操作5. 查询功能:能够对进货信息中的商品按照供应商以及价格进行查询6. 排序功能:能够对进货信息中的商品按照供应商以及价格进行排序7. 统计功能:并能够对所有进货商品进行价格、数量汇总8. 要求:1) 源文件采用多文件的工程结构;2) 数据存储采用文件形式;3) 采用面向对象方法设计;4) 功能完善,适当的注释;5) 关于文件的内容需要自学;二、概要设计1. 商品类的定义:2class goodspublic:goods();void init(int num,char name20,char type20,float inmoney,float outmoney,int quantity,char gname20);int getnum();float getinmoney();float 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 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); /按编号搜索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,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;int 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.商品库类成员函数的定义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;cout商品名称: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:delgoods() /删除商品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(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+)count=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();return 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;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); sortinmon(); 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 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+) 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.gettag()=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(int 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); cout请输入供应商的名字: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(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 商品信息排序-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(goodsi.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 增加进货信息-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;四、调试分析这次的面向对象程序设计的课程设计的任务,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验。从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。使我们能够将自身知识和能力能在实际中的应用和发挥。五、用户手册 本程序的运行环境为dos操作系统,执行文件为:商品进货管理系统.exe; 进入演示程序后,即显示对话形式的提示操作过程,选择进入增加进货信息时,则将所要输入的信息输入选择进入已进商品信息管理项时,则进入下一步详细操作;选择商品信息删除查询修改排序项后,可按各种信息搜索,选择相应选项即可; 选择退出后,便会退出系统。六、测试数据主界面: 新增商品功能:进入商品管理信息功能:进入商品查询功能:进入商品修改功能:进入商品排序功能:进入商品统计功能:七、附录#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=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销售价格: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;fin.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.init(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;char 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+)count=count+goodsi.getoutmoney()*goodsi.getquantity();return count; int quanstati() /数量统计 int count=0; for(int i=0;i=top;i+)count=count+goodsi.getquantity();return count; /*void sortinmon() /进价排序float good20;goods *g;for(int i=0;i=top;i+)goodi=goodsi.getinmoney();for(int j=0;j=top;j+)coutgoodjendl;coutgoodsj.getinmoney()disp();void sortoutmon() /销售价排序float good20;goods *g;for(int i=0;i=top;i+)goodi=goodsi.getoutmoney();for(int j=0;jdisp(); void sort() char choice; while(choice!=0) cout - 1 按进价排序-endl; cout - 2 按销售价排序-endl; cout - 0 退出 -choice; switch(choice) case 1: system(cls); sortinmon(); break; case 2: system(cls); sortoutmon(); break; case 0: system(cls); break; cout按任意键继续endl; getch(); system(cls); */void intotal() /汇总cout所有商品的进价总和为:inmonstati()endl;cout所有商品的销售价总和为:outmonstati()endl;cout所有商品的数量总和为:quanstati()endl;goods* searchgname(char gname20) /按供应商搜索for(int i=0;i=top;i+) if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1) return &goodsi;return null;void gnamedisp(char gname20) /按供应商显示for(int i=0;i=top;i+)if(!strcmp(goodsi.getgname(),gname)&goodsi.gettag()=1)goodsi.disp();goods* searchinmoney(double inmoney) /按进价搜索for(int i=0;i=top;i+) if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1) return &goodsi;return null;void inmoneydisp(double inmoney)/按进价显示for(int i=0;i=top;i+)if(goodsi.getinmoney()=inmoney&goodsi.gettag()=1)goodsi.disp();goods* searchnum(int num) /按编号搜索for(int i=0;i=top;i+) if(goodsi.getnum()=num&goodsi.gettag()=1) /cout找到的商品号:goodsi.getnum()找到的商品标记:goodsi.gettag()endl; return &goodsi; return null;goods* searchoutmoney(double outmoney) /按销售价搜索for(int i=0;i=top;i+) if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1) return &goodsi;return null;void outmoneydisp(double outmoney)/按进价显示for(int i=0;i=top;i+)if(goodsi.getoutmoney()=outmoney&goodsi.gettag()=1)goodsi.disp

温馨提示

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

评论

0/150

提交评论