




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、需求分析3二、程序的主要功能2三、程序运行平台4四、系统总框架图4五、程序类的说明5六、模块分析8七、比较有特色的函数9八、运行结果10九、存在的不足与对策14十、程序源代码14一、需求分析中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可少。每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了巩固我们所学的C+
2、叫言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑等功能。同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。二、程序的主要功能1、添加功能:添加商品信息:有商品代码、商品名称、产地、商品单价、库存量等。2、删除功能:根据商品的名称,在添加的商品中进行删除。3、显示功能:能将已经添加或者进行修改的商品信息进行显示。4、修改功能:根据商品的民称,在添加的商品中进行修改,将这个商品的所有信息都进行修改。5、查找功能:根据商品名称或者编号进行查找,查找功能有两个查
3、找方式,以备不时之需。6.文件保存将添加,修改,删除后的商品信息进行保存。、程序运行平台VC+6.0和DEVC+四、系统总框架图图片1五、程序类的说明本程序定义了两个类Supermarket类classSupermarketpublic:charname20;charNum20;intCnum;/进货总数intMnum;/销售数目intEnum;/剩余库存数目doublePrice;/单价charAdd20;/产地doubleSum;/销售额Supermarket*Next;voidInput()cout<<"tt请输入商品名:"cin>>name;
4、cout<<"tt请输入商品编号:"cin>>Num;cout<<"tt请输入商品进货总数:"cin>>Cnum;cout<<"tt请输入商品销售数目:"cin>>Mnum;cout<<"tt请输入商品剩余库存数目:"cin>>Enum;cout<<"tt请输入商品产地:"cin>>Add;cout<<"tt请输入商品单价:"cin>>
5、;Price;Sum=Mnum*Price;voidReadFile(istream&in)/文件指针cin»name»Num»Cnum»Mnum»Enum»Add»Price»Sum;)voidShow()-cout«"商品名:"«name«endl«"商品编号:"«Num«endl«"进货总数:"vvCnumvvendl«"销售数目:"vvMnu
6、mvvendl«"剩余库存:"«Enum«endl«"产地:"«Add«endl«"单价:"«Price«endl«"销售额:"«Sum«endl«endl;);Supermarketmassage类classSupermarketmassagepublic:Supermarketmassage();-Supermarketmassage();voidShowMenu();voidFin
7、d();voidSave();voidModifyltem();voidRemoveltem();voidSwap(Supermarket*,Supermarket*);voidSort();/voidUnpass();intListCount();/voidAverage();voidDisplayO(for(Supermarket*p=Head->Next;p!=End;p=p->Next)p->Show();cout«"输入任意字符!继续getch();)voidAddltem()(End->lnput();End->Next=newSu
8、permarket;End=End->Next;cout«"添加成功!"«endl;cout«"输入任意字符!继续getch();)private:Supermarket*Head,*End;ifstreamin;ofstreamout;Supermarket*FindItem(char*name)for(Supermarket*p=Head;p->Next!=End;p=p->Next)/一个指针,不成功就返回空if(!strcmp(p->Next->name,name)returnp;returnNU
9、LL;Supermarket*FindNum(char*Num)for(Supermarket*p=Head;p->Next!=End;p=p->Next)/回上一个指针,不成功就返回空if(!strcmp(p->Next->Num,Num)returnp;returnNULL;Supermarket*FindAdd(char*Add)for(Supermarket*p=Head;p->Next!=End;p=p->Next)/回上一个指针,不成就返回空if(!strcmp(p->Next->Add,Add)returnp;returnNULL;
10、匹配成功则返回上匹配成功则返匹配成功则返;六、模块分析模块分析表-1函数功能VoidDisplay()输出模块信息Supermarket()构造函数-Supermarket()析构函数VoidAddItem()增加商品VoidRemoveitem()删除商品VoidModifyitem()修改商品Voidfind()查找商品IntListCount()统计商品Voidsave()基础数据存盘Supermarketmassage构造函数七、比较有特色的函数Supermarket*FindItem(char*name)/按照姓名查找商品for(Supermarket*p=Head;p->Ne
11、xt!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->name,name)returnp;returnNULL;Supermarket*FindNum(char*Num)/按照编号查找for(Supermarket*p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->Num,Num)returnp;returnNULL;Supermarket*FindAdd(char*Add)for(Supermar
12、ket*p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成就返回空if(!strcmp(p->Next->Add,Add)returnp;returnNULL;voidSupermarketmassage:Save()out.open("sort.txt");for(Supermarket*p=Head->Next;p!=End;p=p->Next)out<<"商品名称:"<<p->name<<"tt"<<
13、;"商品编号:"<<p->Num<<"tt"<<"进货总数:"<<p->Cnum<<"tt"<<"销售数目:"<<p->Mnum<<"tt"<<"剩余库存:"<<p->Enum<<"tt"<<"商品产地:"<<p->Add<&l
14、t;"tt"<<"商品单价:"<<p->Price<<"tt"<<"销售额:"<<p->Sum<<'n'out.close();八、运行结果1.运行界面2.增加E:DEVC+-mm.-口商品信息2.显木高品,信息3.查找商品信息4,删除商品信息5,修改商拓信息国.保存文件退出t-=彳二*二成任I!宇功意2030目-西;z,履誉除要产单品品品口智智智w,商商商商商商商KAAAAAAA选我里毡前前”观用主一E主IE诰住请
15、请请清支一1.增加商品信息金TTTTT2 ,显丁.商品J3息3 .查找商品信息.备删除商品信息5.修改商品信息山保存文件只出三APEVC+-X未命名1;内2260日:能蕉2数r;aik-S3.苴地价名.褊进帮刺工单1品口普智四四智QQ.商商港高商商商AA/AAAA11-1:;!_,!,;11,1,L.'iw,4=4!54n:xMxM请请请请清者绿.£14.显示,丁丁丁丁丁丁丁否H,保字义,件退出取Roe1233I=.一BB一K电号勰目声符:£wa).e.番:d!2额品0的不堇口余地亶产单销5人什意字符!堪缓_5.查找EADETC+M舒名1点乂息十汗丁丁 丁工二ttt
16、ttWW5,修改商品信息衣了工口山保存文件退出六7清选择:3算时HHKMH究M翼1控商品的名称查找荻2.转商品编号杳找IfK*MMMMLM:M.X.BIX:M:KHJCXJCJHJCKK翼KMJIMMJC请商昌承 41- 送*目口罟密霍荼地魅、冷爵后数库周力额有:; 2 6 02 2 G 3清谕人要查我的商品的名称,香蕉留人任意字符!姓填4 -=| *9 0 n1 2 3 3闭匚数目存llr:b药库= 1:2额 口甘胆翟(余地曾0 商展瑞产单销l上商品四名强查找兴2展商品编号有找请输入要杳我的商品编号:1节I继续6.删除甫人住意言符!盥授鼻明显F商品信息十3,查或商品信息*亍4.删除商品信息于
17、十写一修改商用信息金。.保存文件退出A*TTT*-择丁丁丁丁tiaB.丁丁丁fi=口沿-=-=1-而7.修改E:DE7C+主晶名工exm廿XTTTTTTT""TF"T"rnT-T*丁丁K显示商品高息3 .查找商品信息4 .删除商品信息5 .修改商品信息机保存文件退出十tt金亍钮功意成任交修-痫品,果3数目存河商息苹二总鳌-S35管nn晶晶品日田用品品,,要商商商商商商商商xaaaa.aaa选一造理强理理押地胄ItrlJs青青青青音音kl11!1VTXT363BU:瞽*工-显小商口口信息3.查找商品信息4.删除商品信息亍3<&00月3338-
18、nr0子蔡自存彼四窑总鳌;.;3蓟品口耗E售余地丁亍商耳%=1年弱清工.修改商品信息。保存文件退出18保存1底后石毛:子吊耳吕警号”王肃与表:升-SEsw.舸京*存:船百名R;可It度目卑菊至阕龚九、存在的不足与对策于设计者水平有限及时间等方面的原因,该系统的功能比较简单,只有基础的功能,增删改查,我还添加了几个在我能力范围之内的应用,比如文件,还有就是统计,这些在我能力之内的内容,这个程序我真的把我所学的知识都用上了,所以还有很多待完善的地方,比如登陆界面的密码,还划分管理员与普通用户,这些都是我欠缺的知识,所以我希望在以后的学习中能学到更多的知识,弥补自己不足。十、程序源代码# inclu
19、de<iostream># include<fstream>/文件的使用# include<string.h># include<conio.h>/用getch();usingnamespacestd;classSupermarket/定义超市类public:charname20;charNum20;intCnum;/进货总数intMnum;/销售数目intEnum;/剩余库存数目doublePrice;/单价charAdd20;/产地doubleSum;/销售额Supermarket*Next;voidlnput()(cout«&qu
20、ot;tt请输入商品名:cin»name;cout«"tt请输入商品编号:cin»Num;cout«"tt请输入商品进货总数:cin»Cnum;cout«"tt请输入商品销售数目:cin»Mnum;cout«"tt请输入商品剩余库存数目:cin»Enum;cout«"tt请输入商品产地:cin»Add;cout«"tt请输入商品单价:"cin»Price;Sum=Mnum*Price;)voidR
21、eadFile(istream&in)/文件指针(cin»name»Num»Cnum»Mnum»Enum»Add»Price»Sum;)voidShow()/显示模块_cout«"商品名:"«name«endl«"商品编号:"«Num«endl«"进货总数:"vvCnumvvendl«"销售数目:"vvMnumvvendl«"剩余
22、库存:"«Enum«endl«"产地:"«Add«endl«"单价:"«Price«endl«"销售额:"«Sum«endl«endl;);classSupermarketmassage/定义超市各功能模块类public:Supermarketmassage();Supermarketmassage();voidShowMenu();/显示模块voidFind();/查找模块voidSave();voidM
23、odifyItem();/修改模块voidRemoveItem();/删除模块intListCount();/voidAverage();/统计模块voidDisplay()/显示for(Supermarket*p=Head->Next;p!=End;p=p->Next)p->Show();cout<<"输入任意字符!继续"getch();voidAddItem()/添加End->Input();End->Next=newSupermarket;End=End->Next;cout<<"添加成功!&quo
24、t;<<endl;cout<<"输入任意字符!继续getch();private:Supermarket*Head,*End;ifstreamin;ofstreamout;Supermarket*FindItem(char*name)/按照姓名查找商品for(Supermarket*p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->name,name)returnp;returnNULL;Supermarket*FindNum(char*Num)
25、/按照编号查找for(Supermarket*p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->Num,Num)returnp;returnNULL;Supermarket*FindAdd(char*Add)for(Supermarket*p=Head;p->Next!=End;p=p->Next)/匹配成功则返指针,不成就返回空if(!strcmp(p->Next->Add,Add)returnp;returnNULL;/;构造函数.Supermarke
26、tmassage:Supermarketmassage()Head=newSupermarket;Head->Next=newSupermarket;End=Head->Next;in.open("sort.txt");if(!in)cout<<"这是一个新系统,无商品信息。请先输入。"<<endl;elsewhile(!in.eof()End->ReadFile(in);if(End->name0='0')break;End->Next=newSupermarket;End=End-
27、>Next;in.close();cout<<"tt读取商品信息成功!"<<endl;Supermarketmassage:Supermarketmassage()Save();for(Supermarket*temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next;deletetemp;)deleteHead,End;)void Supermarketmassage:ShowMenu()cout<<" 千千 "
28、;<<endl;cout<<" 千 千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout&
29、lt;<"nttntt请选择:"超市商品管理系统 1. 增加商品信息2. 显示商品信息3. 查找商品信息4. 删除商品信息5. 修改商品信息0.保存文件退出voidSupermarketmassage:Find()查找模块charname20,Num10;intx;Supermarket*p=NULL;cout<<"ntt*cout<<"tt X 1.按商品的名称查找nttcout<<"ntt*nX 2.按商品编号查找 请选择:cin>>x;switch(x)case1:cout<&l
30、t;"tt请输入要查找的商品的名称:cin>>name;if(p=FindItem(name)p->Next->Show();cout<<"输入任意字符!继续"getch();elsecout<<"tt没有找到该商品信息!"<<'n'<<endl;cout<<"输入任意字符!继续"getch();break;case2:cout<<"tt请输入要查找的商品编号:"cin>>Num;i
31、f(p=FindNum(Num)p->Next->Show();cout<<"输入任意字符!继续"getch();elsecout<<"tt没有找到该编号的商品!"<<'n'<<endl;cout<<"输入任意字符!继续"getch();break;voidSupermarketmassage:ModifyItem()/修改信息charname20;Supermarket*p=NULL;cout<<"tt请输入要修改的商品名:
32、"cin>>name;if(p=FindItem(name)cout<<"tt已找到商品的信息,请输入新的信息!"<<endl;p->Next->Input();cout<<"修改成功!"<<endl;cout<<"输入任意字符!继续"getch();elsecout<<"tt没有找到!"<<endl;cout<<"输入任意字符!继续"getch();voidSupe
33、rmarketmassage:RemoveItem()/删除信息charname20;Supermarket*p=NULL,*temp=NULL;cout<<"tt请输入要删除的商品名:"<<endl;cin>>name;if(p=FindItem(name)temp=p->Next;p->Next=p->Next->Next;deletetemp;cout<<"tt删除成功!"<<endl;cout<<"输入任意字符!继续"getch()
34、;elsecout<<"tt没有找到!"<<endl;cout<<"输入任意字符!继续"getch();/统计intSupermarketmassage:ListCount()/统计当前链表的记录总数,返回一个整数if(!Head)return0;intn=0;for(Supermarket*p=Head->Next;p!=End;p=p->Next)n+;returnn;/保存函数voidSupermarketmassage:Save()out.open("sort.txt");for(Supermarket*p=Head->Next;p!=End;p=p->Next)<<" 商 品 编out<<"商品名称:"<<p->name<<"tt"号:"&l
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年合肥师范学院招聘真题
- 新能源汽车产品特性考题试题及答案
- 甘肃省图书馆招聘考试真题2024
- 新能源汽车产业经济影响评估试题及答案
- 提升乐理解题能力的技巧试题及答案
- 大学化学反应条件控制试题及答案
- 文化结合2025年物理试题及答案
- 大学物理实践与理论试题及答案
- 如何开展创业扶持政策的项目评审试题及答案
- 深入浅出幼儿园数学测试题与答案
- GB/T 37356-2019色漆和清漆涂层目视评定的光照条件和方法
- GB/T 262-2010石油产品和烃类溶剂苯胺点和混合苯胺点测定法
- GB/T 22720.1-2017旋转电机电压型变频器供电的旋转电机无局部放电(Ⅰ型)电气绝缘结构的鉴别和质量控制试验
- 机柜间主体施工方案
- 福格行为模型
- 银级考试题目p43测试题
- 有限空间作业及应急物资清单
- 思想道德与法治教案第一章:领悟人生真谛把握人生方向
- 0-6岁儿童随访表
- 江西新定额2017土建定额说明及解释
- 国家电网有限公司十八项电网重大反事故措施(修订版)-2018版(word文档良心出品)
评论
0/150
提交评论