1、面向对象程序设计课程设计汇报 学 院:_电气和信息工程学院 专业班级: 计科13-01班 学生姓名: 胡 凯 学 号: 443401 设计地点(单位)_ 计算机自主学习中心 _ _ _ 设计题目:_ 超市商品管理系统_ _ _ 完成日期: 年 1月12 日 指导老师评语: _ _ _ _ 成绩(五级记分制):_ _ _ 指导老师(签字) :_ _ _ 摘 要此次课程设计为超市管理系统,由VC6.0编译器编译而成。经过本系统,在主界面能够经过行管提醒操作,对商品进行购置、添加、修改、删除、查询、统计等管理操作。系统关键包含了食品、化妆品、日用具、饮料四大类,每一类全部包含了商品几大最基础信息,商
2、品名称、品牌、价格、生产厂家、库存量等。除四大类外有一个总商品基类,经过继承机制进行访问基类,同时也结合利用了模板。经过此系统用户能够简练方便购置商品,管理人员也可轻松进行商品管理,从而实现高效管理模式,为企业企业商家等发明最大化经济效益。关键词:管理系统 基类 继承 模板 重庆科技学院课程设计任务书设计题目:超市商品管理系统设计学生姓名胡凯课程名称面象对象程序设计课程序设计专业班级计科13地 点I313起止时间设计内容及要求1)问题描述超市中商品分为四类,分别是食品、化妆品、日用具和饮料。每种商品全部包含商品名称、价格、库存量和生产厂家、品牌等信息。关键完成对商品销售、统计和简单管理。2)功
3、效要求(1)销售功效。购置商品时,先输入类别,然后输入商品名称,并在库存中查找该商品相关信息。假如有库存量,输入购置数量,进行对应计算。假如库存量不够,给出提醒信息,结束购置。(2)商品简单管理功效。添加功效:关键完成商品信息添加。查询功效:可按商品类别、商品名称、生产厂家进行查询。若存在对应信息,输出所查询信息,若不存在该统计,则提醒“该统计不存在!”。修改功效:可依据查询结果对对应统计进行修改。删除功效:关键完成商品信息删除。先输入商品类别,再输入要删除商品名称,依据查询结果删除该物品统计,假如该商品不在物品库中,则提醒“该商品不存在”。(3)统计功效。输出目前库存中全部商品总数及具体信息
4、;可按商品价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。3)问题处理方案依据系统功效要求,能够将问题处理分为以下步骤: (1)应用系统分析,建立该系统功效模块框图和界面组织和设计;(2)分析系统中各个实体及它们之间关系; (3)依据问题描述,设计系统类层次; (4)完成类层次中各个类描述; (5)完成类中各个组员函数定义; (6)完成系统应用模块; (7)功效调试;(8)完成系统总结汇报。依据题目要求,利用所学知识,完成设计和实现工作,并根据书写规范,撰写课程设计汇报。设计参数(1)系统分析、设计正确。(2)结果以图表方法显示。(3)界面简练、美观。(4)汇报格式规范。
5、进度要求18周星期一 8:3012:10 任务分配,了解需求,并制订课程设计计划18周星期二 8:3012:10 软件需求任务,并完成初步设计,模块设计,文档设计18周星期三 8:3012:10 完成项模块设计,接口设计,类功效模块设计18周星期四 8:3012:10 完成项类算法计,18周星期五 8:3012:10 编写程序算法19周星期一 8:3012:10 编写程序算法19周星期二 8:3012:10 编写程序算法,软件调试,测试19周星期三 8:3012:10 软件调试,测试,并准备软件开发文档19周星期四 8:3012:10 编写课程设计汇报,准备答辩19周星期五 8:3012:10
6、 汇报提交,答辩。参考资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2钱能.+语言程序设计教程.清华大学出版社.其它说明.本表应在每次实施前一周由负责老师填写二份,院系审批后交院系办立案,一份由负责老师留用。.若填写内容较多可另纸附后。3.一题多名学生共用,在设计内容、参数、要求等方面应有所区分。教研室主任: 王双明 指导老师:裴仰军/伍建全/焦晓军 12月10日目 录摘 要I1 软件需求分析说明书11.1 需求分析11.2 功效介绍11.2.1 销售功效11.2.2 商品管理功效11.2.3 统计功效21.3 界面介
7、绍和要求21.4 数据结构要求32 系统分析和设计42.1 系统分析42.1.1 类设计关系42.1.2 主功效函数步骤图42.3 系统算法设计52.3.1 购置商品程序算法52.3.2 添加商品程序算法62.3.3 修改商品程序算法72.3.4 统计商品程序算法83 软件实现103.1 主系统头文件和基类定义10;3.2 购置商品代码解释113.3 添加商品代码解释133.4 删除商品代码解释153.5 修改商品代码解释163.6 查询商品代码解释173.7 统计商品代码解释184 系统功效实现204.1 系统功效主菜单界面实现204.2 商品购置界面实现204.3 商品添加界面实现214.
8、4 商品修改界面实现224.5 商品统计界面实现22软件使用说明书245.1 销售功效模块使用说明245.2 商品管理功效使用说明24参考文件25致 谢261 软件需求分析说明书1.1 需求分析伴随科技进步,计算机技术飞速发展,很多企业在进行技术改造同时,多种工作也趋向于信息技术化管理。管理系统事一个信息化、智能化和优异管理集合,一个高效有用管理系统课一降低一个企业或上商家管理费用和人力物力开支,不仅能够节省大量时间,还能够为企业各项决议带来巨大经济效益。和大家生活接触最贴近超市也有它自己完善管理系统。计算机自动化管理系统提升了超市管理管理水平和工作效率,增强超市竞争能力降低成本,为用户提供愈
9、加优质服务。所以需要开发一个计算机系统来替换人工管理超市人员对商品信息管理和用户购置等方面工作。使用该系统能够使超市服务愈加紧捷、正确和方便,降低大量人工操作,提升了工作效率。1.2 功效介绍1.2.1 销售功效本功效关键是针对消费者用户使用。在购置商品时,用户得输入所要购置商品编号和商品数量,然后系统会自动在库存当中查找该商品相关信息,假如在库存中还有库存量,则用户接着进行下一步操作,依据提醒输入要购置商品数量,进行对应计算。假如库存量不够,则系统会给出提醒信息,然后问询用户是否重新购置,又回到系统页面主菜单。1.2.2 商品管理功效商品管理功效关键是针对超市管理人员使用,对库存商品进行简单
10、管理。本功效当中关键能够实现商品添加、查询、修改、删除等功效。(1)添加商品经过主页面提醒菜单键入相对应数字进入添加商品选项,然后依据提醒添加商品信息,关键包含商品名称、商品编号、商品品牌、商品价格、商品生产厂家、和商品库存量等。(2)删除商品经过主页面提醒菜单键入对应数字进入删除商品选项,完成最商品信息删除。选择输入要删除商品编号,依据查询结果删除商品统计,假如该商品在库存物品当中不存在,则系统给出对应提醒,该商品不存在。(3)修改商品经过主页面提醒菜单键入对应数字进入修改商品选项,对商品信息进行修改。可依据查询结果对对应商品信息进行修改,包含商品名称、品牌、价格、生产厂家和库存量等。(5)
11、查询商品经过主页面提醒菜单键入对应数字进入查询商品选项,对商品信息进行查询。可依据对应提醒选择查询方法,按商品编号,商品名称进行查询商品全部信息。假如存在对应商品信息,则输出所查询商品信息,假如不存在该商品统计,则系统自动提醒该商品统计不存在。1.2.3 排序功效此功效关键是提供显示功效。用户可经过主页面显示菜单键入对应数字进入统计选项,能够输出目前库存当中全部商品总数及对应商品具体信息,能够根据商品进价格、库存量、净利润进行统计,输出商品信息时能够根据商品对应信息根据从大到小次序进行排序输出。1.3 界面介绍和要求图1.3.1 系统欢迎页面介绍图1.3.2 系统首页面介绍本系统软件界是使用C
12、+编译生成一个系统操作菜单。操作菜单界面总共有9个选项能够供用户操作选择,分别为增加商品、显示商品、排序商品、查找商品、删除商品、修改商品、售出商品、保留商品信息、安全退出。菜单页面下方有可供用户选择操作项目标指令,当用户选择并输入0-8中任意数字,系统便会进入对应功效操作。假如出现错误操作,系统会该处输入错误请从新输入等提醒或自动跳出回到主菜单界面。页面组织和设计要求先构思好系统功效模块和结构框架,分析系统中各个实体和它们间具体联络关系,依据问题描述先设计好系统类层次,完成类层次中各个组员函数定义,实现每一个模块层次之间衔接,从而设计出工整漂亮管理系统,要求整个系统界面设计简练、美观,让用户
13、使用起来方便快捷。1.4 数据结构要求在整个系统当中除了使用类层次结构、继承机制、模板等,还使用了数据结构当中链表结构,关键用来进行商品管理功效。包含商品添加、修改、删除、查询等。能够经过链表进行存放、访问操作。经过动态申请链表空间,用指针操作数据节点完成商品信息一系列操作。2 系统分析和设计2.1 系统分析系统关键工作步骤图以下,当进入操作主菜单界面时,会有对应不一样操作选项供用户选择,但操作完成后就返回到系统主菜单。2.1.1 类设计关系商品基类食品类饮料类化妆品类生活用具类图2.1 系统类设计关系图2.1.2 主功效函数步骤图欢迎界面9.安全退出8.保留信息7.售出商品6.修改商品5.删
14、除商品4.查找商品3.排序商品2.显示信息1.增加商品选择操作项 图2.2 首页面功效关系图2.3 系统算法设计2.3.1 购置商品程序算法当用户选择操作时,便进入购置商品函数。其步骤图以下:选择编号和数量种类类确定购置信息购置商品输出购置后商品信息购置结束图2.3 商品购置操作步骤图2.3.2 添加商品程序算法其步骤图以下选择种类种类类1.食品2.饮料3.日用具4.化妆品输入编号、价格、库存、品牌、厂家添加成功添加商品输入名称图2.4 商品添加操作步骤图2.3.3 修改商品程序算法其步骤图以下:修改商品信息8.修改生产场地7.修改净利润5.修改售出价4.修改善货价3.修改编号2.修改种类1.
15、修改商品名选择操作项9.修改生产商品牌6.修改剩下商品量图2.5 商品修改操作步骤图2.3.4 排序商品程序算法排序商品信息其步骤图以下:选择操作项3.按净利润排序2.按库存量排序1.按进货价排序排序结束图2.6 商品统计功效步骤图3 软件实现3.1 主系统头文件和基类定义#include #include #include #include #include /用getch();using namespace std;/Goods类class Goodspublic:Goods() int kind;char name20;/哇哈哈char Id20;char place10;char br
16、and10;float buyprice;/进货价;float saleprice;/卖出价;int amount;/存货数量;int amount1;/售货数量;int profit;/净利润;Goods * Next;void InputAll()InputName();InputKind();InputID();InputOther();3.2 售出商品代码解释void Goodsmessage:Saleprice()char Id20;int i;Goods * p=NULL;Goods * temp=NULL;couttt请输入要售出商品编号和数量:Id;cini;if(p=Find
17、ID(Id)p-Next-amount -= i;p-Next-amount1 += i;p-Next-profit +=i*(p-Next-saleprice - p-Next-buyprice); cout商品售出成功!售出商品编号: Id数量: i售出后商品信息: Next-Show();Save();cout输入任意字符!继续;getch();elsecouttt没有找到您需要商品!endl;coutInputName();showMenu(1);End-InputKind();doEnd-InputID();while(FindID(End-Id);End-InputOther();
18、End-Next = new Goods;End=End-Next;cout添加成功!endl;cout输入任意字符!继续;getch();3.4 删除商品代码解释void Goodsmessage:RemoveItem() /删除商品信息system(cls);char Id20;Goods * p=NULL,*temp=NULL;couttt请输入要删除商品编号:Id;if(p=FindID(Id)temp=p-Next;p-Next=p-Next-Next; delete temp;couttt删除成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到您
19、需要商品!endl;coutx;switch(x)case 1:char Id20;Goods * p=NULL;coutId;if(p=FindID(Id)couttt已找到商品信息,请输入新信息!Next-InputName();cout修改成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到您需要商品!endl;cout输入任意字符!继续;getch();break;case 2:char Id20;Goods * p=NULL;coutId;if(p=FindID(Id)couttt已找到商品信息,请输入新信息!Next-InputKind();co
20、ut修改成功!endl;cout输入任意字符!继续;getch();elsecouttt没有找到您需要商品!endl;coutx;switch(x)case 1:coutname;if(p=FindItem(name)p-Next-Show();cout输入任意字符!继续;getch();elsecouttt没有找到该名称商品!nendl;cout输入任意字符!继续;getch(); break;case 2:coutId;if(p=FindID(Id)p-Next-Show();cout输入任意字符!继续;getch();elsecouttt没有找到该编号商品!nendl;coutname,
21、p1-name);temp-kind=p1-kind;strcpy(temp-Id,p1-Id);strcpy(temp-place,p1-place);temp-saleprice=p1-saleprice;temp-buyprice=p1-buyprice;temp-amount=p1-amount;temp-profit=p1-profit;strcpy(temp-brand,p1-brand);strcpy(p1-name,p2-name);p1-kind=p2-kind;strcpy(p1-Id,p2-Id);strcpy(p1-place,p2-place);p1-salepric
22、e=p2-saleprice;p1-buyprice=p2-buyprice;p1-amount=p2-amount;p1-profit=p2-profit;strcpy(p1-brand,p2-brand);strcpy(p2-name,temp-name);p2-kind=temp-kind;strcpy(p2-Id,temp-Id);strcpy(p2-place,temp-place);p2-saleprice=temp-saleprice;p2-buyprice=temp-buyprice;p2-amount=temp-amount;p2-profit=temp-profit;str
23、cpy(p2-brand,temp-brand);void Goodsmessage:Paixu()showMenu(4);int x;cinx;switch(x)case 1:system(cls);cout tt排序中.endl;coutn;Goods *p=NULL,*p1=NULL,*k=NULL;int n=Goodsmessage:ListCount();if(nNext;p!=End;p=p-Next)for(k=p-Next;k!=End;k=k-Next)if(p-buypricek-buyprice)Goodsmessage:Swap(p,k);Display();cout
24、 排序完成!endl;getch();return;4 系统功效实现4.1 系统功效主菜单界面实现图4.1 系统主菜单页面4.2 商品售出界面实现图4.2 购置商品操作界面4.3 商品添加界面实现图4.3 添加商品操作界面4.4 商品修改界面实现图4.4 修改商品操作界面4.5 商品排序界面实现图4.5商品排序操作界面 软件使用说明书5.1 售出功效模块使用说明在使用本系统首先会进入系统首页面上面有对应数字操作提醒,请选择要进行操作项目,用户键入7便进入售出商品功效。依据相关提醒输入选择商品编号,然后输入商品数量,而且在库存当中进行查找所要购置商品信息,假如有库存量,然后系统会进行对应费用计算
25、,假如库存量不够,系统会给出相关提醒信息,结束此次购置,返回主页面。5.2 商品管理功效使用说明在本管理模块关键有四个功效,即商品添加功效、删除功效、修改功效、查询功效,关键适适用于超市商品管理人员对库存商品进行管理。依据首页面提醒信息进入相依操作。键入1便进入添加商品功效,会提醒用户键入商品名称,然后选择种类、再依次输入品牌、价格、生产厂家、库存量等信息,然后自动保留。键入5 便进入删除商品功效,选择输入商品编号,系统进行对应查询,假如没有找到该商品统计,则会提醒该商品不在物品库当中,假如有则进行删除而且提醒删除成功。键入6便进入修改商品功效,按需要修改内容输入对应商品编号,系统在商品库中进
26、行对比查找,然后进行修改提醒,选择要进行修改项目,而且进行保留,假如没有找到则提醒没有找到所要修改商品信息。键入4便进入商品查询功效,查询方法分编号和名称两种方法查询,查询结束后显示所查询到商品全部信息。程序源代码#include #include #include #include #include /用getch();using namespace std;class Goods /Goods类public:Goods() int kind;char name20;/哇哈哈char Id20;char place10;char brand10;float buyprice;/进货价;flo
27、at saleprice;/卖出价;int amount;/存货数量;int amount1;/售货数量;int profit;/净利润;Goods * Next;void InputAll()InputName();InputKind();InputID();InputOther();void InputKind()coutkind;void InputName()coutname;void InputID()coutId;void InputBuyprice()coutbuyprice;void InputSaleprice()coutsaleprice;void InputAmount(
28、)coutamount;void InputProfit()coutprofit;void InputPlace()coutplace;void Inputbrand()coutbrand;void InputOther()coutbuyprice;coutsaleprice; coutamount;coutplace;coutbrand;profit=0; void ReadFile(istream & in)innamekindIdbuypricesalepriceamountplacebrandprofit;void Show()cout商品名: nameendl种类:kindendl编
29、号: Idendl进货价 buypriceendl售出价 salepriceendl剩下商品数量: amountendl净利润:profitendl商品产地: placeendl生产商品牌: brandendlendlNext;p!=End;p=p-Next)p-Show();i+;cout共有i个商品nendl;coutInputName();showMenu(1);End-InputKind();doEnd-InputID();while(FindID(End-Id);End-InputOther();End-Next = new Goods;End=End-Next;cout添加成功!e
30、ndl;Save();coutNext!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-name,name)return p;return NULL;Goods *FindID(char * Id)for(Goods * p=Head;p-Next!=End;p=p-Next)/匹配成功则返回上一个指针,不成功就返回空if(!strcmp(p-Next-Id,Id)return p; return NULL;Goodsmessage:Goodsmessage() /结构函数Head=new Goods;Head-Next=new Goods;End=Head-Next;in.open(supermarket.txt);if(!in)cout无商品信息。请优异货。ReadFile(in);if(End-name0=0)break;End-Next=new Goods;End=End-Next;in.close();couttttt读取商品信息成功!