版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+课设商品销售管理系统目录一、需求分析2二、概要设计2三、详细设计3四、调试分析9五、用户手册10六、测试数据11七、附录121 一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和 DVD单价之和的80%)、 商品进货价格、商品销售价格、商品数量、供应商名称等。记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。(要求:1.源文件采用多文件的工程结构 2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)
2、二、概要设计1、数据类(class Data )的数据类型定义:class Data/ 数据类(private:intid;/产品编号charname100;/产品名称intcount;/库存数量intsalecount;/已售数量floatiprice;/进价floatoprice ;/售价chargys20;/供应商Public :int getid()char *getname()Int getcount()Int getsalecount()Float getbuy()Float getsale()Char *getgys()Void setid(int n)Void setname(
3、char na)Void setcount(int c)Void setsalecount(int s)Void setbuy(float i)Void setsale(float o)Void setgys(char g)/公有函数/获取id/获取产品名/获取库存量/获取已售量/获取进价/获取售价/获取供应商2 /输入id/产品名/库存量/已售量/进价/售价/供应商;2、class commodity商品类设计:class Commodity/商品类private:Data t50;/数组int n;public:void newFile()void showData(int i) void
4、 showData() void save() int search() void sale() void showSale() inline void menu() 3、本程序结构(1)主函数Void main() menu();/商品数量/添加商品信息/显示商品信息/显本文字信息/写入数据至文件/商品查询/商品销售结算/销售清单/主菜单Commodity com;int c;switch(c)returnBreak;(2)数据类一一实现对数据的输入输出(3)商品类一一系统各项功能的实现。、详细设计(1)数据类class Data/ 数据类(private:intid;/产品编号char n
5、ame100;/ 产品名称intcount;/ 库存数量intsalecount;/ 已售数量float iprice;/进价float oprice;/售价chargys20; 供应商public:int getId()(return id;char *getName()(return name;int getCount()3 return count;)int getSaleCount()(return salecount;)float getBuy()(return iprice;)float getSale()(return oprice;)char *getGys()(return
6、gys;)/void setId(int n)id=n;void setName(char na)strcpy(name,na);)void setCount(int c)(count=c;)void setSaleCount(int s)(salecount=s;)void setBuy(float i)(iprice=i;)void setSale(float o)(oprice=o;4 -/void setGys(char g)(strcpy(gys,g););商品类class Commodity/商品类(private:Data t50;/ 数组int n;/商品数量public:vo
7、id newFile()(intid;char name50;/ 字符数组intcount;float iprice;float oprice;char gys20;if(n<0)n=0;int i;Data temp;for(;n+)(cout<<"商品编号:";cin>>id;if(id=-1)break;tn.setId(id);cout<<"商品名:"; cin>>name;tn.setName(name);cout<<"库存量:"; cin>>co
8、unt;tn.setCount(count);cout<<"进价:";5 cin>>iprice;tn.setBuy(iprice);cout<<"售价:";cin>>oprice;tn.setSale(oprice);cout<<"供应商:";cin>>gys;tn.setGys(gys);tn.setSaleCount(0);/售出此产品 0 个cout<<"若商品添加完毕,请按-1退出添加!"<<endl;for(
9、i=0;i<n;i+)if(ti.getId()>tn.getId()temp=ti;ti=tn;tn=temp;void showData(int i)cout<<ti.getId()<<setw(10)<<ti.getName()<<setw(10)<<ti.getCount()<<setw(10)<<ti.getSaleCount()6 <<setw(8)<<ti.getBuy()<<setw(8)<<ti.getSale()<<se
10、tw(8)<<ti.getGys()<<endl;void showData()cout<<"商品编号"<<setw(8)<<"商品名"<<setw(8)<<"库存量"<<setw(10)<<"已售量"<<setw(10)<<"进价"<<setw(8)<<"售价"6<<setw(8)<<"
11、供应商"<<endl;for(int i=0;i<n;i+)if(ti.getCount()>0 )showData(i);cout<<"产品种类:"<<n<<endl;)void save() / 写入数据至文件(ofstream fout;fout.open("商品销售管理系统.txt");if(!fout)(cout<<"cannot open the file!"<<endl;return ;)fout<<"商品
12、编号"<<""<<"商品名"<<""<<"库存量"<<""<<"进价"<<""<<"售价"<<""<<"供应商"<<""<<"已售量"<<endl;for(int i=0;i<n;i+)(
13、fout<<ti.getId()<<setw(14)<<ti.getName()<<setw(10)<<ti.getCount()<<setw(10)<<ti.getBuy()<<setw(10)<<ti.getSale()<<setw(10)<<ti.getGys()<<setw(10)<<ti.getSaleCount();)cout<<"*Save Success!*"<<endl;fout
14、.close();)int search()(int id;cout<<"id:"cin>>id;int low=0,mid,high=n-1;while(low<=high)(mid=(low+high)/2;if(tmid.getId()=id)return mid;else if(tmid.getId()>id)high=mid-1;Elselow=mid+1;7 )return -1;)(cout<<"产品编号"int temp;temp=search();if(temp=-1)(cout<&
15、lt;"cannot find the commodity!"<<endl;return;if(ttemp.getCount()<=0)(cout<<"此产品已缺!"<<endl;int count;cout<<"输入数量:";cin>>count;float money;cout<<"输入收到金额(元):"输入的是负数或超出cin>>money;if(count<=0 && count>ttemp
16、.getCount()/该产品库存量cout<<"数量输入不正确"<<endl;else if(money<ttemp.getSale()*count)8 cout<<"购物金额不足,还需增加金额 "<<ttemp.getSale()*count-money<<"元"<<endl;else ttemp.setCount(ttemp.getCount()-count);/当前库存减少countttemp.setSaleCount(ttemp.getSaleCo
17、unt()+count);/出售量增加countcout<<"* 名称:"<<ttemp.getName()<<endl<<"* 数量:"<<count<<endl<<"* 单价:"<<ttemp.getSale()<<"元"<<endl8 <<"* 应收:"<<count*ttemp.getSale()<<" 元"<
18、;<endl<<"* 找零:"<<money-count*ttemp.getSale()<<" 元<<endlv v ”*”<<endl;(for(int i=0;i<n;i+)if(ti.getSaleCount()>0 )showData(i);(3)主函数 inline void menu()cout<<" *欢迎使用商品销售管理系统* "<<endl;cout<<"* 主菜单 *<<endl;cout&
19、lt;<"(1)添加<<endl;cout<<"(2)保存<<endl;cout<<"(3)显示<<endl;cout<<"(4)菜单<<endl;cout<<"(5)销售单<<endl;cout<<"(0)退出系统"<<endl;cout<<"*20112012* "<<endl;void main()(menu();Commodity com
20、;int c;for(;)(cout<<" 请选择:"cin>>c;9 switch(c)(case 1:com.newFile();break;case 2:com.save();break;case 3:com.showData();break;case 4:menu();break;case 5:com.sale();break;case 0:cout<<"* 谢谢使用 *cout<<" *!再见!*return;break;"<<endl;"<<endl;
21、四、调试手册(1)、error C2143: syntax error : missing '' before ''行246少了一个分号(2)、error C2562: 'main' : 'void' function returning a value空类型不能有返回值(3)、error C2679: binary '<<' : no operator defined which takes aright-hand operand of type '' (or there is no
22、acceptable conversion)ti.getName 后面少了()五、用户手册1、本程序的运行环境为windows操作系统,执行文件为Ks.exe ;2、进入演示程序后,即显示对话形式的提示操作过程:如:第一项:(1)商品添加功能在选择一栏输入:1即显小冏品编号、冏品名、库存量、进价、售价、供应冏各项冏品信息,依次输入所需添加的数据 。添加商品完毕,按-1退出添加。选择:2 即将商品信息保存。选择:3 显示已保存的商品信息。选择:4 重新回到主菜单。选择:5 进行商品销售结算。同时选择:3显示商品库存和已销售的完 整信息。六、测试数据进入演示程序后,即显示对话形式的提示操作过程:选
23、择:110 请选择退出系统XMlOfMIfMXiMKXKXZ011 -2 01 2 寓 MRKMXMM输入相应提示的商品信息M0112012 * *M-M,Hr请选择 商品编号式函1 商品名二PTU 冷存量=20 进优:26. fel?T:28 00 挂应商:snwing选择:2界面显示数据保存成功 选择:3显示商品信息1请选择绛Success?MiMJtJCJCJCKMNXNJKNMMJCM请选择方商品堀黑商品名库存量己售量进价售价供应商1301PTU2H026日028% sanxin910Q2&UD320256026S0 suoni1003GTU100540065旧0 lenovo
24、产品种类内11选择:4重新回到主菜单选择:5进行商品结算请选择海产品编笈昵2痴云数却18_输人收到金额(元二18眄瞳* *名誉DUD出"鼓重:1日4M单价:26日日元_* *应也26 。元* *4S隼= 153Z配元/为了声明标识符setw()函数/数据类WWW MM M餐请选择之商品编行商品名库存量已售量进价售价供应商1901PTU2092G00260Ssanxinsf1002PUD2210Z弼suoni1803GTU100540065酶lenouo产品种类/S选择:3显示商品信息七、附录程序源代码:#include<iostream.h>#include<fst
25、ream.h>#include<string.h>#include<iomanip.h>#define Mfname 100class Dataprivate:intid;/产品编号char name100;/产品名称intcount;/ 库存数量int salecount;/ 已售数量float iprice;/ 进价float oprice;/ 售价char gys20;/ 供应商public:int getId()return id;char *getName()return name;int getCount()return count;int getSa
26、leCount()return salecount;float getBuy()return iprice; 12 float getSale()return oprice;char *getGys()return gys;/void setId(int n)id=n;void setName(char na)( strcpy(name,na);)void setCount(int c)( count=c;)void setSaleCount(int s)( salecount=s;)void setBuy(float i)( iprice=i;)void setSale(float o)(
27、oprice=o;)/void setGys(char g口)( strcpy(gys,g););class Commodity/ 商品类( private:-13-Data t50;/ 数组int n;/商品数量public:void newFile()(intid;char name50;/ 字符数组intcount;float iprice;float oprice;char gys20;if(n<0)n=0;int i;Data temp;for(;n+)(cout<<"商品编号:";cin>>id;if(id=-1)break;tn.
28、setId(id);cout<<"商品名:";cin>>name;tn.setName(name);cout<<"库存量:";cin>>count;tn.setCount(count);cout<<"进价:";cin>>iprice;tn.setBuy(iprice);cout<<"售价:";cin>>oprice;tn.setSale(oprice);cout<<"供应商:";cin&g
29、t;>gys;tn.setGys(gys);tn.setSaleCount(0);/售出此产品 0 个14 cout<<"若商品添加完毕,请按-1退出添加!"<<endl;for(i=0;i<n;i+)(if(ti.getId()>tn.getId()(temp=ti;ti=tn;tn=temp;void showData(int i)15 cout<<ti.getId()<<setw(10)<<ti.getName()<<setw(10)<<ti.getCount()&l
30、t;<setw(10)<<ti.getSaleCount()<<setw(8)<<ti.getBuy()<<setw(8)<<ti.getSale()<<setw(8)<<ti.getGys()<<endl;void showData() cout<<"商品编号"<<setw(8)<<"商品名"<<setw(8)<<"库存量"<<setw(10)<<&
31、quot;已售量"<<setw(10)<<" 进价"<<setw(8)<<"售价"<<setw(8)<<"供应商"<<endl;for(int i=0;i<n;i+)if(ti.getCount()>0 ) showData(i); cout<<"产品种类:"<<n<<endl;void save() /写入数据至文件ofstream fout;fout.open("
32、;商品销售管理系统.txt");if(!fout)15 cout<<"cannot open the file!"<<endl;return ;fout<<"商品编号"<<""<<"商品名"<<""<<"库存量"<<""<<"进价"<<""<<"售价"<
33、;<""<<"供应商"<<""<<"已售量"<<endl;for(int i=0;i<n;i+)fout<<ti.getId()<<setw(14)<<ti.getName()<<setw(10)<<ti.getCount()<<setw(10)< <ti.getBuy()<<setw(10)<<ti.getSale()<<setw(10
34、)<<ti.getGys()<<setw(10)<<ti.ge tSaleCount();cout<<"*Save Success!*"<<endl;fout.close();int search()(int id;cout<<"id:"cin>>id;int low=0,mid,high=n-1;while(low<=high) (mid=(low+high)/2;if(tmid.getId()=id)return mid;else if(tmid.getId()
35、>id)high=mid-1;elselow=mid+1;return -1;void sale()(cout<<"产品编号"int temp;temp=search();if(temp=-1) (cout<<"cannot find the commodity!"<<endl;return;16if(ttemp.getCount()<=0)( cout<<"此产品已缺!"<<endl;int count;cout<<"输入数量:"
36、;cin>>count;float money;cout<<"输入收到金额(元):"cin>>money;if(count<=0 && count>ttemp.getCount()/输入的是负数或超出该产品库存一 17 一cout<<"数量输入不正确"<<endl;else if(money<ttemp.getSale()*count)cout<<" 购 物金额不足, 还 需增加 金额 "<<ttemp.getSale()*count-money<<" 元"<<endl; else ttemp.setCount(ttemp.getCount()-count);/当前库存减少 countttemp.setSaleCount(ttemp.getSaleCount()+count);/出售量增加countcout<<&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年山西艺术职业学院单招职业倾向性考试题库附答案详解(预热题)
- 2026年广东省梅州市单招职业倾向性考试题库及答案详解(易错题)
- 低血糖患者的护理职业发展
- 全国小学生英语语法基础知识点梳理试卷
- 移动端无障碍设计策略
- 产科护理跨学科合作课件下载
- 金华园艺就业前景
- ECMO患者的呼吸力学监测与护理
- 高中主题班会 在“忍”与“能”的夹缝中闯出自己的名校路教学设计 高一上学期励志主题班会
- 2025-2026学年外研版(2024)七年级英语下册Unit 1知识点教学设计
- 2026年常州工程职业技术学院单招综合素质考试模拟测试卷新版
- 腹膜透析室规范制度
- 《中国养老金精算报告2025-2050》原文
- 宫颈癌根治性放疗指南2026
- 2026年春节后复工复产安全培训试题(附答案)
- 未来五年卫星通信地面站上下变频器行业跨境出海战略分析研究报告
- 2025年西南财经大学天府学院辅导员考试笔试题库附答案
- 通信工程师在电信公司的绩效评定表
- 塞来昔布课件
- 2025年兵团两委考试题及答案
- 党的二十届四中全会学习试题
评论
0/150
提交评论