




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c+g序设计课程设计报告超市管理系统班级:一. 设计题目与要求二. 需求分析三. 概要设计四. 详细设计五. 测试六. 结论及改进设想一、课程设计题目与要求1. 设计题目超市管理系统2. 系统功能要求(1) 销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信 息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提 示信息,结束购买。(2) 商品简单管理功能。 添加功能:主要完成商品信息的添加。 查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息, 输出所查询的信息,若不存在该记录,贝U提示“该记录不存在! ”。 修改功能:可根据查询
2、结果对相应的记录进行修改。 删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品 名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,贝U提示“该商品不存在”。(3) 统计功能。输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小 进行排序。(4) 保存功能:将当前程序中的商品信息存入文件中。(5) 读取功能:从文件中将商品信息读入程序。中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可少。每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。除此之外,还需要记录商品的其他
3、相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了巩固我们所学的 C+语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上, 设计和实现一个小型的超市商品管理系统, 提供商品系 统的添加、删除、编辑等功能。同类系统多数使用结构体数组来操作数据, 本系统使用链表 结构操作数据,提高了数据处理的效率 。概要设计1增加商品2显小冏品3排序统计商品4查找商品5删除商品6修改商品7安全退出四.详细设计1.设计class
4、Supermarket 商 品类,实现对商品 信息的描叙;设计 classSupermarketmassage类,实现对商品信息的增加,删除,修改,查询,统计等。以下是函数功能表:函数功能void Display。输出商品的信息Supermarket。构造函数-Supermarket。析构函数void Addltem()增加商品void Removeltem()删除商品void Modifyltem()修改商品void Fi nd()查询商品int ListCou nt()统计商品void Save()基础数据存盘void Sort()排序商品Supermarketmassage()构造函数(
5、1) 用类的成员函数对链表的数据进行操作,其功能如上表所列。2.设计类及对象本程序定义了两个类,定义如下:1) class Supermarketclass Supermarket public:char n ame20;char Num20;int Cnum; /进货总数int Mn um; /销售数目int Enum; /剩余库存数目double Price; /单价char Add20; /产地double Sum; /销售额Supermarket *Next;void In put()cout name;coutNum;coutC num;coutM num;coutE num;cou
6、tAdd;coutPrice;Sum=Mnu m*Price;void ReadFile(istream & in) /文件指针inn ameNumC numMnum E num AddPriceSum;void Show()cout商品名:nameendl商品编号:Numendl进货总数:Cnumendl销售数目:Mnumendl剩余库存:Enumendl产地:Addendl单价:Priceendl销售额:SumendlNext;p!=E nd;p=p-Next)p-Show(); coutln put();En d-Next =new Supermarket;En d=E nd-Next;
7、cout添加成功!endl; coutNext!=E nd;p=p-Next)一个指针,不成功就返回空if(!strcmp(p-Next- name, name)return p;return NULL;Supermarket *Fi ndNum(char * Num)for(Supermarket * p=Head;p-Next!=E nd;p=p-Next)一个指针,不成功就返回空if(!strcmp(p-Next-Num,Num)return p;return NULL;Supermarket *Fi ndAdd(char * Add)for(Supermarket * p=Head;p
8、-Next!=E nd;p=p-Next)一个指针,不成就返回空匹配成功则返回上匹配成功则返回上匹配成功则返回上if(!strcmp(p-Next-Add,Add)return p;return NULL;;3. 程序源代码# in elude # in elude # in elude #include 用 getch();using n amespace std;/Supermarket 类class Supermarketpublic:char n ame20;char Num20;int Cnum; /进货总数int Mn um; /销售数目int Enum; /剩余库存数目doubl
9、e Price; /单价char Add20; /产地double Sum; /销售额Supermarket *Next;void In put()cout name;coutNum;coutC num;coutM num;coutE num;coutAdd;coutPrice;Sum=Mnu m*Price;void ReadFile(istream & in) /文件指针inn ameNumC numMnum E num AddPriceSum;void Show()cout商品名:nameendl商品编号:Numendl进货总数:Cnumendl销售数目:Mnumendl剩余库存:Enu
10、mendl产地:Addendl单价:Priceendl销售额:SumendlNext;p!=E nd;p=p-Next)p-Show(); coutln put();En d-Next =new Supermarket;En d=E nd-Next;cout添加成功!endl; coutNext!=E nd;p=p-Next)匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next- name, name)return p;return NULL;Supermarket *Fi ndNum(char * Num)匹配成功则返回上for(Supermarket * p=Head
11、;p-Next!=E nd;p=p-Next)一个指针,不成功就返回空if(!strcmp(p-Next-Num,Num)return p;return NULL;Supermarket *Fi ndAdd(char * Add)匹配成功则返回上for(Supermarket * p=Head;p-Next!=E nd;p=p-Next)一个指针,不成就返回空if(!strcmp(p-Next-Add,Add)return p;return NULL;II构造函数Supermarketmassage:Supermarketmassage()Head=new Supermarket;Head-N
12、ext=new Supermarket;En d=Head-Next;in. ope n(sort.txt);if(!i n)e ndl;coutReadFile(i n);if(En d- nameO=O)break;En d-Next=new Supermarket; En d=E nd-Next;in .close();couttt读取商品信息成功!Next!=E nd;)temp=Head-Next;Head-Next=Head-Next-Next;delete temp;delete Head,E nd;/菜单.void Supermarketmassage:ShowMe nu()c
13、out超市商品管理系统= = = =e ndl;cout=e ndl;cout:= = = 1.增加商品信息 = = =e ndl;cout:= = = 2.显示商品信息 = = =e ndl;cout:= = = 3.排序统计商品 = = =e ndl;cout:= = = 4.查找商品信息 = = =e ndl;cout:= = = 5.删除商品信息 = = =e ndl;cout:= = = 6.修改商品信息 = = =e ndl;cout:= = = 0.安全退出系统 = = =e ndl;coutnttntt请选择:;/查找函数.void Supermarketmassage:F i
14、n d()char n ame20 ,Num10;int x; Supermarket * p=NULL;coutntt*couttt请输入要查找的商品编号:;couttt 探1.按商品的名称查找ntt 探2.按商品编号查找”cout x;switch(x)case 1:coutNext-Show();cout输入任意字符!继续;getch();elsecouttt没有找到该商品信息!ne ndl;coutNext-Show();ne ndl;!e ndl;cout输入任意字符!继续 getch();elsecouttt没有找到该编号的商品!cout输入任意字符!继续”;getch();bre
15、ak;II修改信息void Supermarketmassage:Modifyltem() II修改信息char n ame20;Supermarket* p=NULL;couttt请输入要修改的商品名:;cinn ame;if(p=Fi ndltem( name)coutNext-l nput();cout修改成功!endl;getch(); elsecout输入任意字符!继续;couttt 没有找到!endl;cout输入任意字符!继续;getch();/删除信息void Supermarketmassage:Removeltem() /删除信息char name20; Supermark
16、et * p=NULL,*temp=NULL;couttt请输入要删除的商品名 :Next;p-Next=p-Next-Next;delete temp;couttt 删除成功!endl;cout输入任意字符!继续;getch();elsecouttt 没有找到!endl;getch();coutname,p1-name); / 字符串 name里面strcpy(temp_Num,p1_Num);strcpy(temp-Add,p1-Add);temp-C num=p1-C num;temp- Mnum=p1- Mnum;temp-E num=p1-E num;temp-Price=p1-Pr
17、ice;temp-Sum=p1-Sum;strcpy(p1- n ame,p2-n ame);strcpy(p1-Num,p2-Num);strcpy(p1-Add,p2-Add);p1-C num=p2-C num;p1- Mnum=p2- Mnum;p1-E num=p2-E num;p1_Price=p2_Price;p1-Sum=p2-Sum;strcpy(p2-n ame,temp-n ame);strcpy(p2-Num,temp-Num);strcpy(p2-Add,temp-Add);p2-C num=temp-C num;p2- Mnum=temp- Mnum;p2-E nu
18、m=temp-E num;p2-Price=temp-Price;p2-Sum=temp-Sum;/统计.int Supermarketmassage:ListCou nt()统计当前链表的记录总数,返回一个整数if(! Head)return 0;int n=0;for(Supermarket * p=Head-Next;p!=E nd;p=p-Next)n+;return n;/排序void Supermarketmassage:Sort()/ 对当前链表进行排序cout Sort in g.e ndl;Supermarket *p=NULL,*p仁NULL,*k=NULL;int n=S
19、upermarketmassage:ListCo un t();if(nNext;p!=E nd;p=p-Next)for(k=p-Next;k!=E nd;k=k-Next)if(p-Addk-Add)Supermarketmassage:Swap(p,k);cout 排序完成! Next;p!=E nd;p=p-Next)out商品名称:namett商品编号:Numtt进货总数:Cnumtt 销售数目:Mnumtt剩余库存:Enumtt商品产地:Addtt商品单价:Pricett销售额:Sumn;out.close();int mai n() int x,i=O;bool quit=fal
20、se;couttt e ndl;for(i=0;i3;i+)couttt tttttt e ndl;couttt 【欢迎进入超市商品管理系统】 e ndl;for(i=0;i3;i+)couttt tttttt e ndl;couttt n e ndl;Supermarketmassage Grade;cout x;switch(x)case O:quit=true;break;case 1:Grade.Addltem();break;case 2:Grade.Display();break;case 3:Grade.Sort();break;case 4:Grade. Fin d();bre
21、ak;case 5:Grade.Removeltem();break;case 6:Grade.ModifyItem();break;return 0;五.测试1.程序界面2.程序主界面=令 =请选择i 4起帀简詔官堆糸颈增加商品信息玄-显亦商品宿息皐排序统计商品4 查携商品信息 轧删除商品信患 緘修改商品信息0-安全退出系统瞌= = -k = 二= = = = = = = = = =: = = 二二二二二二二二二-M-M-we鹦觸翳鵜娜名椒面包输入任意字符!继续3.增加pjl= = = =!= =* = =* 二二二二二二二二二 = =: = *増加商品倍息显示商品信息沢排序统计商品4 査拚商品信息5-删除商品信息、安全退岀系统= = = 凸= 二二二二二二二二二 = *=:= =功意 成任 -L-監035MH- 5015目数西 包01聲霑 面总豎:5 廿ZGWU除地价 iclq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三古代诗歌鉴赏课件
- 地下行包房及预埋直径线施工测量与施工监测方案
- 浙江环保:实施环保设备制造股权投资与市场拓展合同
- 物业服务合同延期及设施设备更新补充协议范本
- 离婚房产分割与财产清算及子女抚养协议
- 离异后无抚养费支付及子女监护权共享协议
- 上市公司再融资合同续签与信息披露协议
- 离婚法律咨询与协议修订及子女抚养权调整合同
- 私下股权转让与目标公司业务整合协议
- 严格规范:二人合资开设宠物店的详细合同
- 双重上市公司“管理层讨论与分析”披露差异:剖析与弥合
- 集装箱货物高效清关代理服务合同范本
- 2025年结构上岗试题及答案
- 2025年中国电信招聘考试行政职业能力测试预测题集
- 静脉治疗知识培训课件
- 教科版小学五年级上册科学实验报告20篇
- 2025-2026学年人教版(五线谱)(2024)小学音乐三年级上册教学计划及进度表
- 学风建设科研诚信宣教课件
- 江西省宜春市2025年上半年事业单位公开遴选试题含答案分析
- 2025繁轩科技发展(天津)有限公司公开招聘工作人员35人备考题库及答案解析
- 2025年度水电项目工程结算与审计服务协议
评论
0/150
提交评论