超市管理系统C.docx

上传人:牧羊曲112 文档编号:2030968 上传时间:2023-01-02 格式:DOCX 页数:29 大小:218.63KB
返回 下载 相关 举报
超市管理系统C.docx_第1页
第1页 / 共29页
超市管理系统C.docx_第2页
第2页 / 共29页
超市管理系统C.docx_第3页
第3页 / 共29页
超市管理系统C.docx_第4页
第4页 / 共29页
超市管理系统C.docx_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《超市管理系统C.docx》由会员分享,可在线阅读,更多相关《超市管理系统C.docx(29页珍藏版)》请在三一办公上搜索。

1、C+程序设计 题目: 超市管理系统 班级: 信 管 学号: 1251220117 姓名: 吴昊翀 指导老师:刘 欣 2014.01.01目 录一.设计目的与任务描述二.设计思想三.系统功能与设计过程四.程序源代码五.运行情况六.心得体会七.参考文献超市管理系统 一 设计目的与任务描述设计目的:1熟悉C+语言系统开发的基本过程2巩固所学知识,培养和提高学生分析和解决实际问题的能力任务描述:需求分析:中小型超市采购的商品一般都成千上万件。对这些商品进行有效的管理必不可少。每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。除此之外,还需要记录商品的其他相关信息,如生产厂家、

2、供货处代码、厂家网址、厂家电话等。超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。超市管理员每天都会记录购进的商品信息,核销过期的商品等。为了巩固我们所学的C+语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑等功能。同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。设计一个小型超市管理系统,用链表来存储商品的基本信息(包括商品名称,代码产地,单价等)。完成以下基本功能:A、添加商品信息:有商品代码、商品名称、产地

3、、商品单价、库存量等。B、修改,删除商品信息:输入商品名称,修改或删除相应商品信息。C、查询,统计商品:输入商品名称,查询,统计相应商品信息。二:设计思想(1) 设计菜单来实现功能设计 1增加商品 2显示商品 3排序统计商品 4查找商品 5删除商品 6修改商品 7安全退出(2) 设计class Supermarket商品类,实现对商品信息的描叙;设计 class Supermarketmassage类,实现对商品信息的增加,删除,修改,查询,统计等。以下是函数功能表: 函数功能void Display()输出商品的信息Supermarket()构造函数Supermarket()析构函数void

4、 AddItem()增加商品void RemoveItem() 删除商品void ModifyItem()修改商品void Find() 查询商品int ListCount()统计商品void Save()基础数据存盘void Sort()排序商品Supermarketmassage()构造函数(3) 用类的成员函数对链表的数据进行操作,其功能如上表所列。三.设计类及对象本程序定义了两个类,定义如下:1. class Supermarketclass Supermarketpublic: char name20; char Num20; int Cnum; /进货总数 int Mnum; /销

5、售数目 int Enum; /剩余库存数目 double Price; /单价 char Add20; /产地 double Sum; /销售额 Supermarket * Next; void Input() coutname; coutNum; coutCnum; coutMnum; coutEnum; coutAdd; coutPrice; Sum=Mnum*Price; void ReadFile(istream & in) /文件指针 innameNumCnumMnumEnumAddPriceSum; void Show() cout商品名:nameendl 商品编号:Numendl

6、 进货总数:Cnumendl 销售数目:Mnumendl 剩余库存:Enumendl 产地:Addendl 单价:Priceendl 销售额:Sumendl Next;p!=End;p=p-Next) p-Show(); coutInput();End-Next=new Supermarket;End=End-Next; cout添加成功!endl; coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空 if(!strcmp(p-Next-name,name)return p; return NULL; Supermarket *FindNum(char *

7、 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 p; return NULL; ;四.程序源代码# include # include

8、# include #include /用getch();using namespace std;/Supermarket类class Supermarketpublic: char name20; char Num20; int Cnum; /进货总数 int Mnum; /销售数目 int Enum; /剩余库存数目 double Price; /单价 char Add20; /产地 double Sum; /销售额 Supermarket * Next; void Input() coutname; coutNum; coutCnum; coutMnum; coutEnum; coutA

9、dd; coutPrice; Sum=Mnum*Price; void ReadFile(istream & in) /文件指针 innameNumCnumMnumEnumAddPriceSum; void Show() cout商品名:nameendl 商品编号:Numendl 进货总数:Cnumendl 销售数目:Mnumendl 剩余库存:Enumendl 产地:Addendl 单价:Priceendl 销售额:Sumendl Next;p!=End;p=p-Next) p-Show(); coutInput();End-Next=new Supermarket;End=End-Next

10、; cout添加成功!endl; coutNext!=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-Num,Num)return p; return NULL; Supermarket *FindAdd(char * Add) for(

11、Supermarket * p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成就返回空 if(!strcmp(p-Next-Add,Add)return p; return NULL; ;/构造函数Supermarketmassage:Supermarketmassage()Head=new Supermarket;Head-Next=new Supermarket;End=Head-Next;in.open(sort.txt); if(!in) cout这是一个新系统,无商品信息。请先输入。ReadFile(in); if(End-name0=0)bre

12、ak; End-Next=new Supermarket; End=End-Next; in.close(); couttt读取商品信息成功!Next!=End;) temp=Head-Next; Head-Next=Head-Next-Next; delete temp; delete Head,End;/菜单void Supermarketmassage:ShowMenu() cout 超 市 商 品 管 理 系 统 endl; cout endl; cout 1.增加商品信息 endl; cout 2.显示商品信息 endl; cout 3.排序统计商品 endl; cout 4.查找商

13、品信息 endl; cout 5.删除商品信息 endl; cout 6.修改商品信息 endl; cout 0.安全退出系统 endl; coutnttntt请选择:;/查找函数void Supermarketmassage:Find() char name20 ,Num10;int x; Supermarket * p=NULL; coutntt*n; couttt 1.按商品的名称查找ntt 2.按商品编号查找; coutx; switch(x) case 1:coutname; if(p=FindItem(name) p-Next-Show(); cout输入任意字符!继续; getc

14、h(); else couttt没有找到该商品信息!nendl; cout输入任意字符!继续; getch(); break; case 2: coutNum; if(p=FindNum(Num) p-Next-Show(); cout输入任意字符!继续; getch(); else couttt没有找到该编号的商品!nendl; cout输入任意字符!继续; getch(); break; /修改信息void Supermarketmassage:ModifyItem() /修改信息 char name20; Supermarket* p=NULL; coutname; if(p=FindI

15、tem(name) couttt已找到商品的信息,请输入新的信息!Next-Input(); cout修改成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; cout输入任意字符!继续; getch(); /删除信息void Supermarketmassage:RemoveItem() / 删除信息 char name20; Supermarket * p=NULL,*temp=NULL; couttt请输入要删除的商品名:name; if(p=FindItem(name) temp=p-Next; p-Next=p-Next-Nex

16、t; delete temp; couttt删除成功!endl; cout输入任意字符!继续; getch(); else couttt没有找到!endl; coutname,p1-name); /字符串name里面strcpy(temp-Num,p1-Num); strcpy(temp-Add,p1-Add); temp-Cnum=p1-Cnum; temp-Mnum=p1-Mnum;temp-Enum=p1-Enum; temp-Price=p1-Price;temp-Sum=p1-Sum;strcpy(p1-name,p2-name); strcpy(p1-Num,p2-Num);str

17、cpy(p1-Add,p2-Add); p1-Cnum=p2-Cnum; p1-Mnum=p2-Mnum; p1-Enum=p2-Enum; p1-Price=p2-Price;p1-Sum=p2-Sum;strcpy(p2-name,temp-name); strcpy(p2-Num,temp-Num);strcpy(p2-Add,temp-Add); p2-Cnum=temp-Cnum; p2-Mnum=temp-Mnum; p2-Enum=temp-Enum; p2-Price=temp-Price;p2-Sum=temp-Sum;/统计int Supermarketmassage:Li

18、stCount()/统计当前链表的记录总数,返回一个整数 if(! Head) return 0;int n=0; for(Supermarket * p=Head-Next;p!=End;p=p-Next) n+; return n;/排序void Supermarketmassage:Sort()/对当前链表进行排序 cout Sorting.endl; Supermarket *p=NULL,*p1=NULL,*k=NULL; int n=Supermarketmassage:ListCount(); if(nNext;p!=End;p=p-Next) for(k=p-Next;k!=E

19、nd;k=k-Next) if(p-Addk-Add) Supermarketmassage:Swap(p,k); cout 排序完成!Next;p!=End;p=p-Next) out商品名称:namett商品编号:Numtt进货总数:Cnumtt 销售数目:Mnumtt剩余库存:Enumtt商品产地:Addtt商品单价:Pricett销售额:Sumn; out.close();/主函数int main() int x,i=0; bool quit=false; coutttendl; for(i=0;i3;i+) couttttttttt endl; couttt【 欢迎进入超市商品管理系

20、统 】endl; for(i=0;i3;i+) couttttttttt endl; coutttnendl;Supermarketmassage Grade; coutx; switch(x) case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find();break; case 5:Grade.RemoveItem();break; case 6:Grade.ModifyItem();break

21、; return 0;五.运行情况1. 程序界面2. .程序主界面3.增加4.显示5.排序统计6.查找7.删除8.修改9.退出六.心得体会在为期两周的课程设计中,通过完成本次任务,体会颇多,学到很多东西。利用设计这次超市管理系统的机会使我们熟练的掌握了这学期所学的有关visual c+中的一些主要知识点和应用点,如类的定义,类的实现,对象的定义,构造函数等等。能够学以致用,不至于自己所学知识由于没有经历可用过程,而放弃对它的兴趣。从而对Microsoft Visual C+ 6.0又有了更深入的认识!在这次课程设计中,我们还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设计、程序模块设

22、计(含功能需求、程序代码设计与分析、运行结果)等。总之,通过这次课程设计,收获颇丰,相信会为以后的学习和工作带来很大的好处。最重要的还是激发了我对编程的兴趣和热情,让我从一个只懂理论变成了能做一些小型程序,让我们对编程更加热爱了。整体地评价这次课程设计,我认为收获很大,正如上面所说的那样,通过课程设计,既复习了以前的旧知识,又学到了一些新的知识;设计增强了我们所用所学知识去解决具体问题的能力,进一步培养了我们独立思考问题和解决问题的能力。特别是学会了在Visual C+ 6.0集成开发环境中如何调试程序的方法。当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中所有辅导老师对我们的关心和帮助,诚心诚意感谢他们对我的鼓励与教导,是他们在我迷茫的时候给了我些许提示,激发了我的编程的灵感;最后,本次实践也锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。七.参考文献C程序设计 谭浩强 编著 清华大学出版社C+面向对象程序设计 谭浩强 编著 清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号