C++超市管理系统的设计与实现_第1页
C++超市管理系统的设计与实现_第2页
C++超市管理系统的设计与实现_第3页
C++超市管理系统的设计与实现_第4页
C++超市管理系统的设计与实现_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

1、目录一、需求分析 3二、程序的主要功能 2三、程序运行平台 4四、系统总框架图 4五、程序类的说明 5六、模块分析 8七、比较有特色的函数 9八、运行结果 10九、存在的不足与对策 14十、程序源代码 14一、需求分析中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可 少。每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的 基本信息。除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代 码、厂家网址、厂家电话等。超市商品的相关信息需要存储到文件系统中,一般 都需要提供对商品信息的添加、编辑、删除等操作。超市管理员每天都会记录购 进的商品信息,核销过期的

2、商品等。为了巩固我们所学的C+叫言程序设计知识,也为了满足课程设计的要求,我们 在对几个中小型超市进行调研的基础上, 设计和实现一个小型的超市商品管理系 统,提供商品系统的添加、删除、编辑等功能。同类系统多数使用结构体数组来 操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。二、程序的主要功能1、添加功能:添加商品信息:有商品代码、商品名称、产地、商品单价、库存量等。2、删除功能:根据商品的名称,在添加的商品中进行删除。3、显示功能:能将已经添加或者进行修改的商品信息进行显示。4、修改功能:根据商品的民称,在添加的商品中进行修改,将这个商品的所有信息都进行修 改。5、查找功能:根据商

3、品名称或者编号进行查找,查找功能有两个查找方式,以备不时之需。6.文件保存将添加,修改,删除后的商品信息进行保存。、程序运行平台VC+6.0 和 DEVC+四、系统总框架图图片1五、程序类的说明本程序定义了两个类Supermarket 类class Supermarketpublic:char name20;char Num20;int Cnum;/进货总数int Mnum;/销售数目int Enum;/剩余库存数目double Price;/单价char Add20;/产地double Sum;/销售额Supermarket * Next;void Input()cout<<&q

4、uot;tt请输入商品名:"cin>>name;cout<<"tt请输入商品编号:"cin>>Num;cout<<"tt请输入商品进货总数:"cin>>Cnum;cout<<"tt请输入商品销售数目:"cin>>Mnum;coutvv"tt请输入商品剩余库存数目:"cin>>Enum;cout<v"tt请输入商品产地:"cin>>Add;cout<v"tt请

5、输入商品单价:";cin>>Price; Sum=Mnum*Price;void ReadFile(istream & in)/文件指针cin>>name>>Num>>Cnum>>Mnum>>Enum>>Add>>Price>>Sum;)void Show()-cout<<"商品名:"<<name<<endl<<"商品编号:"<<Num<<endl<&l

6、t;"进货总数:"<<Cnum<<endl<<"销售数目:"<<Mnum<<endl<<"剩余库存:"<<Enum<<endl<<"产地:"<<Add<<endl<<"单价:"<<Price<<endl<<"销售额:"<<Sum<<endl<<endl; );Su

7、permarketmassage 类class Supermarketmassage public:Supermarketmassage();Supermarketmassage();void ShowMenu();void Find();void Save();void ModifyItem();void RemoveItem();void Swap(Supermarket:Supermarket *);void Sort(); /void Unpass();int ListCount(); /void Average();void Display()for(Supermarket * p=

8、Head->Next;p!=End;p=p->Next) p->Show();cout<<"输入任意字符!继续"getch();void AddItem()End->Input();End->Next=new Supermarket;End=End->Next;cout<<"添加成功!"<<endl;cout<<"输入任意字符!继续"getch();private: Supermarket * Head,* End;ifstream in;ofstre

9、am out;Supermarket *FindItem(char * name)for(Supermarket * p=Head;p->Next!=End;p=p->Next)匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->name,name)return p;return NULL;Supermarket *FindNum(char * Num)for(Supermarket * p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next

10、->Num,Num)return p;return NULL;Supermarket *FindAdd(char * Add)for(Supermarket * p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个 指针,不成就返回空if(!strcmp(p->Next->Add,Add)return p;return NULL; ;六、模块分析模块分析表-1函数功能Void Display ()输出模块信息Supermarket ()构造函数-Supermarket ()析构函数Void AddItem ()增加商品Void Rem

11、oveitem ()删除商品Void Modifyitem ()修改商品Void find ()查找商品Int ListCount()统计商品Void save ()基础数据存盘Supermarketmassage构造函数七、比较有特色的函数Supermarket *FindItem(char * name) /按照姓名查找商品for(Supermarket * p=Head;p->Next!=End;p=p->Next)匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->name,name)return p;return NULL;Supe

12、rmarket *FindNum(char * Num) / 按照编号查找 for(Supermarket * p=Head;p->Next!=End;p=p->Next)/ 匹配成功则返 回上一个指针,不成功就返回空if(!strcmp(p->Next->Num,Num)return p;return NULL;Supermarket *FindAdd(char * Add)for(Supermarket * p=Head;p->Next!=End;p=p->Next)/ 匹配成功则返 回上一个 指针,不成就返回空if(!strcmp(p->Next

13、->Add,Add)return p;return NULL;void Supermarketmassage二Save() out.open("sort.txt");for(Supermarket *p=Head->Next;p!=End;p=p->Next)out<<"商品名称:"vvp->name<v"tt"<<"商品编号:"vvp->Numvv"tt"<<" 进货总数:"vvp->Cnumvv

14、"tt"<<"销售数目:"vvp->Mnumvv"tt"vv"乘 U 余库存:"vvp->Enumvv"tt" vv"商品产地:"vvp->Addvv"tt"vv" 商品单价:"vvp->Pricevv"tt"vv"销售额:"vvp->Sumvv'n'out.close();八、运行结果1.运行界面管理系统亓二十 十2.增加r=+=千二请选

15、择,.式'''1S.!宇功意支一1 一赠加商品信息2 ,显于商品信息3.查找商品信息4.删除商品信息5 .修改商品信息旧.保存文件退出口商品信启、2.显木高品,信息3.查找商品信息4,删除商品信息5,修改商拓信息国.保存文件退出2030目-A土西 ;z,履誉除要产单 品品品口智智智w ,商商商商商商商 KAAAAAAA 选我里毡前前”观用 主一E主IE诰住请请请清十=十*-*t-=彳二*二TTTTTTTTTTTTTTT十7> 三:QEVC + T本命名 Le)«不F ,* * 工.增加商品信息 2 .显示商品信息 就查找商品信息4 .删除商品信息S,修改

16、商品信息瓦保存文件退出'S * 魅 r% 小意 成任 加入22晅日-.1蕉2数目喜rJssu余地价翦产单 1品口朗哥普智智QQ .商商商商商商商 择人人入«« - 信请请唐请请清清续4.显示日保存文件里土入任意挈簿- WTTTTTnT品口明油茶地险口 -If P - 19 -音最目存LFT : ILK 0 亚口薪目存好:«:2颔 n智爨荼地籍oR SOM 1 2 3 J2 0 02 2 6 3 WT5.查找,,修改商品信自三* %保存文件退出六 彳清选择:3算时HHK MH究M 翼1控商品的名称查找荻2.转商品编号杳找If K* MM MMLM:M.X.B

17、IX:M:K HJC X JCJHJCKK 翼 KMJI MM JC清谕人要查我的商品的名称,香蕉自人任意字符!力TTT1ij曰DEW十八未命名:rT* 5 .修改商品信息,_ "口;三, 京金亍生可选口曾旺见售余地包2¥./ 目保存?件二艮出 十十请蜀事3Q饕翳钱贽请输入要查找的商品编号11南入任,国字符!绫续,-半:6.删除EADWC + 未畲名L1诗北择;鼻请输入要删除的肉品名删除成功rE?,DEVC+XLeke亍 十彳1.痼加商品信息2 -豆丁商品仁息3 .直找商品信息4 .删除商标信息5 .修改商(S信息以,呆存文件退出H 丁丁丁 n-r-rTT=2. 显示商品信

18、息3,查找商品信息4 ,删除商品信息 I修改商品信息 。.保存文件退出会 下十 会黄十 *二十品口能量口余地 商茴送销剜产 m铛.w息数库”:a.额Ta 0 0 3rfA 1 2 3 3请选择:2俞人任意字维续7.修改S去十 *TTL TTTTT *千十=十强 =r=十女 十亍N.显示商品f高喙3 .查找商品信息 4.删除商品信息 % .修改商品信息 机保存文件退出IEjD EV C+命名 1. exerfil名中日363BU:瞽品,果3数目存河 南息苹.,总数库-S3 第.DlrII用地价 *的野立单 5售nn口曾智智智Dn口皆叩 ,要商商商商.冏商商商 xaaaa.aaa ialj&

19、;ae,那河.郊* 嗯 土用上r-lj-h-!簟 功意 成任 爻 ®-前不丁丁丁"亍2 显小商品信息3 .查找商品信息.4 .删除商品信息 5 .修改毒品信息. 电呆存文件退出7I E:DEVCSK, 6 0s 3 3 3 8 岑一:苜 0 中三数目存程门额 品r出囊口俟地鲁 面耳狷剜产中方入任意宇符峥一 半:8保存JW磊书早E品号:于芝兰总我:再福星疝仔沿 利宗亨耳:腑百丽=退:;TM锡中产" 6?*r:w九、存在的不足与对策于设计者水平有限及时间等方面的原因,该系统的功能比较简单,只有基础的功能,增删改查,我还添加了几个在我能力范围之内的应用,比如文件,还有就

20、是统计,这些在我能力之内的内容,这个程序我真的把我所学的知识都用上了,所以还有很多待完善的地方,比如登陆界面的密码,还划分管理员与普通用户, 这些都是我欠缺的知识, 所以我希望在以后的学 习中能学到更多的知识,弥补自己不足。十、程序源代码文件的使用用 getch();定义超市类# include <iostream> # include <fstream> / # include <string.h> #include <conio.h> using namespace std;class Supermarket /public:char nam

21、e20;char Num20;int Cnum;/进货总数int Mnum;/销售数目int Enum;/剩余库存数目 double Price;/单价char Add20;/产地double Sum;/销售额Supermarket * Next;void Input()(cout<<"tt 请输入商品名:"cin>>name;cout<<"tt请输入商品编号:"cin>>Num;cout<<"tt请输入商品进货总数:"cin>>Cnum;cout<<

22、"tt请输入商品销售数目:"cin>>Mnum;cout<<"tt请输入商品剩余库存数目:cin>>Enum;cout<<"tt请输入商品产地:"cin>>Add;cout<<"tt 请输入商品单价:"cin>>Price;Sum=Mnum*Price;void ReadFile(istream & in)/文件指针(cin>>name>>Num>>Cnum>>Mnum>>E

23、num>>Add>>Price>>Sum; void Show() 显示模块(cout<<"商品名:"<<name<<endl<<"商品编号:"<<Num<<endl<<"进货总数:"<<Cnum<<endl<<"销售数目:"<<Mnum<<endl<<"剩余库存:"<<Enum<<

24、endl<<"产地:"<<Add<<endl<<"单价:"<<Price<<endl<<"销售额:"<<Sum<<endl<<endl;class Supermarketmassage/ 定义超市各功能模块类 public:Supermarketmassage();Supermarketmassage();void ShowMenu(); /显示模块void Find();/查找模块void Save();void

25、ModifyItem(); /修改模块void RemoveItem(); / 删除模块int ListCount(); /void Average。; /统计模块void Display。/ 显示 for(Supermarket * p=Head->Next;p!=End;p=p->Next) p->Show();coutvv”输入任意字符!继续"getch(); void AddItem() / 添力口End->Input();End->Next=new Supermarket;End=End->Next;coutvv"添加成功!&q

26、uot;<<endl;coutvv"输入任意字符!继续 getch();private:Supermarket * Head,* End;ifstream in;ofstream out;Supermarket *FindItem(char * name) /按照姓名查找商品 for(Supermarket * p=Head;p->Next!=End;p=p->Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p->Next->name,name)return p;return NULL;Supermarket *FindN

27、um(char * Num) /按照编号查找匹配成功则返匹配成功则返for(Supermarket * p=Head;p->Next!=End;p=p->Next) 回上一个指针,不成功就返回空if(!strcmp(p->Next->Num,Num)return p;return NULL;Supermarket *FindAdd(char * Add)for(Supermarket * p=Head;p->Next!=End;p=p->Next)/ 回上一个 指针,不成就返回空if(!strcmp(p->Next->Add,Add)return

28、 p;return NULL; ;/构造函数Supermarketmassage二Supermarketmassage()Head=new Supermarket;Head->Next=new Supermarket;End=Head->Next;in.open("sort.txt");if(!in)coutvv”这是一个新系统,无商品信息。请先输入。"vvendl; else while(!in.eof() End->ReadFile(in);if(End->name0='0')break;End->Next=new

29、 Supermarket;End=End->Next;in.close();cout<<"tt读取商品信息成功!"<<endl;Supermarketmassage:Supermarketmassage() Save();for(Supermarket * temp;Head->Next!=End;)temp=Head->Next;Head->Next=Head->Next->Next; delete temp;)delete Head,End;)void Supermarketmassage:ShowMenu()

30、cout<<" 千千 "<<endl;cout<<" 千 千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<" 十千"<<endl;cout<<"

31、 十千"<<endl;cout<<"nttntt请选择:"超市商品管理系统 1. 增加商品信息2. 显示商品信息3. 查找商品信息4. 删除商品信息5. 修改商品信息0.保存文件退出void Supermarketmassage:Find()查找模块 char name20 ,Num10;int x;*Supermarket * p=NULL;cout<<"ntt*X 2.按商品编号查找cout<<"tt X 1.按商品的名称查找nttcout<<"ntt*n请选择:cin&

32、gt;>x; switch(x)请输入要查找的商品的名称: case 1: cout<<"tt cin>>name;if(p=FindItem(name) p->Next->Show();cout<<"输入任意字符!继续 getch();else cout<<"tt没有找到该商品信息!"<<'n'<<endl;cout<<"输入任意字符!继续"getch();break;case 2: cout<<&quo

33、t;tt请输入要查找的商品编号:"cin>>Num;if(p=FindNum(Num) p->Next->Show();cout<<"输入任意字符!继续"getch(); else cout<<"tt没有找到该编号的商品!"<<'n'<<endl;cout<<"输入任意字符!继续"getch(); break;void Supermarketmassage二ModifyItem() / 修改信息 char name20;Sup

34、ermarket* p=NULL;cout<<"tt请输入要修改的商品名:”;cin>>name;if(p=FindItem(name)cout<<"tt 已找到商品的信息,请输入新的信息!"<<endl;p->Next->Input();cout<<"修改成功! "<<endl;cout<<"输入任意字符!继续"getch(); else cout<<"tt没有找到!"<<endl;c

35、out<<"输入任意字符!继续"getch(); void Supermarketmassage二RemoveItem() / 删除信息 char name20;Supermarket * p=NULL,*temp=NULL;cout<<"tt请输入要删除的商品名:"<<endl;cin>>name;if(p=FindItem(name) temp=p->Next;p->Next=p->Next->Next;delete temp;cout<<"tt 删除成功!

36、"<<endl;coutvv”输入任意字符!继续"getch(); else cout<<"tt没有找到!"<<endl;coutvv”输入任意字符!继续"getch();/统计int Supermarketmassage:ListCount()/ 统计当前链表的记录总数,返回一 个整数 if(! Head) return 0;int n=0;for(Supermarket * p=Head->Next;p!=End;p=p->Next) n+; return n;/保存函数void Supermarketmassage二Save() out.open("sort.txt");<<"商品编for(Supermarket *p=Head->Next;p!=End;p=p->Next) out&l

温馨提示

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

评论

0/150

提交评论