1、重庆科技学院面向对象程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 学生姓名: 学 号: 设计地点(单位)_计算机自主学习中心 _ _设计题目:_超市商品管理系统设计_ _ 完毕日期: 年1月18日 指引教师评语:_ _ _ _ 成绩(五级记分制):_ _ 指引教师(签字):_ _ 摘要商品管理系统是一种公司不可缺少某些,它内容对于公司决策者和管理者来说都很重要,因此商品管理系统应当可觉得顾客提供充分信息和快捷查询手段。随着科学技术不断提高,其强大功能已经为人们深刻结识,它已经进入人类社会各个领域并发挥着重要作用。因而,通过电脑软件编程,开发这样一套商品管理系统成为很有必要事
2、情。顾客可以依照该系统查询有关信息,管理者可以依照该系统查询、修改商品信息。核心字:商品管理、查询、科技、编程重庆科技学院程序设计任务书设计题目:超市商品管理系统设计学生姓名课程名称面向对象程序设计基本课程设计专业班级计科1102地 点I304/I306起止时间1月7日1月18日设计内容及规定1)问题描述超市中商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包括商品名称、价格、库存量和生产厂家、品牌等信息。重要完毕对商品销售、记录和简朴管理。2)功能规定(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品有关信息。如果有库存量,输入购买数量,进行相应计算。如
3、果库存量不够,给出提示信息,结束购买。(2)商品简朴管理功能。添加功能:重要完毕商品信息添加。查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询信息,若不存在该记录,则提示“该记录不存在!”。修改功能:可依照查询成果对相应记录进行修改。删除功能:重要完毕商品信息删除。先输入商品类别,再输入要删除商品名称,依照查询成果删除该物品记录,如果该商品不在物品库中,则提示“该商品不存在”。(3)记录功能。输出当前库存中所有商品总数及详细信息;可按商品价格、库存量、生产厂家进行记录,输出记录信息时,要按从大到小进行排序。3)问题解决方案依照系统功能规定,可以将问题解决分为如下环
4、节: (1)应用系统分析,建立该系统功能模块框图以及界面组织和设计;(2)分析系统中各个实体及它们之间关系; (3)依照问题描述,设计系统类层次; (4)完毕类层次中各个类描述; (5)完毕类中各个成员函数定义; (6)完毕系统应用模块; (7)功能调试;(8)完毕系统总结报告。依照题目规定,运用所学知识,完毕设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数(1)系统分析、设计对的。(2)成果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度规定周一:明确设计任务,学习有关基本知识周二:熟悉各知识点,进行基本练习周三:依照题目规定,进行设计和实现周四:依照题目规定,进行设
5、计和实现周五:程序测试参照资料1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2钱能.+语言程序设计教程.清华大学出版社.其他阐明.本表应在每次实行前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用,在设计内容、参数、规定等方面应有所区别。教研室主任: 指引教师:裴仰军/伍建全/焦晓军/陈应祖 1月1日目 录摘要 2课程设计任务书 31 软件需求分析阐明 62 软件分析与设计 7 2.1 软件界面设计 7 2.2 软件数据(构造)设计 7 2.3 软件算法设
6、计 93软件实现 114软件测试 185软件使用阐明书 21道谢 22参照文献 23第一章 软件需求分析阐明书 该商品管理只要把商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品都包括商品名称、价格、库存量和生产厂家信息。该商品管理系统重要完毕对商品销售、记录和简朴管理。(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品有关信息。如果有库存量,输入购买数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。(2)商品简朴管理功能。添加功能:重要完毕商品信息添加。查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询信息,若不存在该记
7、录,则提示“该记录不存在!”。修改功能:可依照查询成果对相应记录进行修改。删除功能:重要完毕商品信息删除。先输入商品类别,再输入要删除商品名称,依照查询成果删除该物品记录,如果该商品不在物品库中,则提示“该商品不存在”。(3)记录功能。输出当前库存中所有商品总数及详细信息;可按商品价格、库存量、生产厂家进行记录。 第二章 系统分析与设计2.1 软件界面设计 图2.11 图2.122.2 软件数据(构造)设计 本系统运用了#include、#include、#include、#include四个包头文献。并将食品、化妆品、日用品、饮料信息分别保存在四个文本文献food.txt、cosmetics
8、.txt、dailyuse.txt、drink.txt中,系统运营时,可以更以便获取信息。 每个文本文献里商品信息分别是商品名称、价格、库存量、生产厂家。四个文本文献内容如下: 图2.21 foods。txt 图2.22 drink.txt 图2.23 dailyuse.txt 图2.24 cosmetics.txt2.3 软件算法设计主菜单 选取保存显示记录添加删除修改查询销售饮料日用品化妆品食品按名称查找按类别查找 图2.31 查询销售 名称类别选取类别选取选取名称输入名称购买数量查询成功 超过库存数量 库存 有货销售成功 图2.33 图2.32 删除/添加修改 选取类别选取类别 输入名称
9、输入修改名称 内容选取内容 无 无 此 此 商 商 删除/添加 内容输入修改内容 品 品 结束修改结束 图2.34 图2.35 第三章 软件实现 (1)类实现 class goodspublic:void read(string h);void display(); void searchnumber();void xiugainame(string x)name=x;/修改名称void xiugaiprice(string x)price=x;/修改价格void xiugaicount(int x)count=x;/修改库存量void xiugaichangjia(string x)chan
10、gjia=x;/修改生产厂家string name;/名称string price;/价格 int count;/库存量string changjia;/生产厂家; void goods ::read(string h) istringstream strin(h);strinnamepricecountchangjia; void goods ::display() coutnamet pricet count tchangjiat endl; 定义了一种goods商品类,类里面只具有共有成员,涉及变量name(名称)、price(价格)、count(库存量)和changjia(生产厂家)以
11、及几种重要函数。(2)文献读取goods *per1;per1=new goods 200;ifstream fin1(foods.txt);while(getline(fin1,buff)per1p1.read(buff);p1+; 运用了#include包头文献 从文本文献中读取字符到对象中,再把对象作为程序输入流,既可把从文献中读取来数字字符单个进行读取,从而进行解决。这里只是对foods文本文献读取。别的三个文本文献操作代码类同。(3)文献保存ofstream pout1(foods.txt);for(j1=0;j1p1;j1+)pout1ttper1j1.nametper1j1.pr
12、icetper1j1.count tper1j1.changjianame;for(int j=0;jp;j+) if(perj.name=name) cout销售商品信息为:endl; print();coutttperj.nametperj.pricet perj.countt perj.changjian;break; if(j=p) coutn对不起,未找到名称为name商品; else int h=0;while(h=0) coutcount1; if(panduan(count1,p,j,per) perj.count-=count1; cout购买成功!endl; h=1;bre
13、ak;else cout库存量局限性!请重新输入销售库存量:endl; bool panduan(int s,int p,int j,goods*per)if(s=perj.count) return true;elsereturn false;商品销售实现运用了两个函数来实现,通过查找,找到需要销售商品。然后通过另一种判断函数判断购买件数是不是少于库存量,若多余库存量则重新购买。(5)商品查找功能实现coutnt= 查找商品信息=nn;coutt1按类别查找 2按名称查找 :;cinb;switch(b)case 1:cout请选取 : 1食品 2化妆品 3日用品 4饮料c; switch(
14、c) case 1: print();for(j1=0;j1p1;j1+) per1j1.display();break; case 2: .; break; case 3: .; break;case 4: .; break; default: coutn输入有误!;break; break; case 2: coutname; for(j=0;j150;j+) if(per1j.name=name) name=1; break; if(per2j.name=name) if(per3j.name=name) if(per4j.name=name) else continue; if(nam
15、e=1) print(); coutttper1j.nametper1j.pricet per1j.countt per1j.changjian; break; if(name=2 ) if(name=3 ) if(name=4) elsecout没关于于该商品信息!;break; coutnz; 查找功能实当代码直接写在主函数里面,通过switch选取是通过类别查找还是名称查找。若通过类别查找只能查找一种类别里所有商品。而通过名称查找可以查看单个商品信息。 (6)商品删除功能实现 coutname;for(j=0;jp1;j+)if(name=per1j.name)break;if(j=p1
16、)coutn对不起,未找到名称为name商品;coutz;else while(j!=p1) per1j=per1j+1;j+;p1-;cout删除成功!name; for(int j=0;jp;j+) if(perj.name=name) name=0; break; else continue; if(name=0) coutn名称为perj.name商品信息:n;print(); perj.display();cout请选取要修改商品信息:;cinc;switch(c) case 1: coutname; perj.xiugainame(name); cout修改后商品信息为:endl;
17、 perj.display(); break; case 2: break; case 3: break; case 4: break; default:cout输入有误!;break; else coutn没有该商品!;通过一种函数来实现商品修改,选取修改内容对商品进行修改。(8)商品添加功能实现 coutnt= 添加商品信息 =nn; cout请选取添加类型 : 1食品 2化妆品 3日用品 4饮料c; switch(c) case1: coutper1p1.name; coutper1p1.price; coutper1p1.count; coutper1p1.changjia; cout
18、你添加商品信息为:endl; print(); coutttper1p1.nametper1p1.pricet per1p1.count tper1p1.changjian;p1+;break;case2:.break; case3:.break;case4:.break; default:coutn输入有误!;break; coutnz;商品添加代码是直接写在主函数里面。依照你添加商品选取商品类型,依照提示输入添加商品有关信息。 (9)商品记录功能实现 void tongji_goods(int p,goods *per) string price,name,changjia; int co
19、unt; goods t; for(int i=0;ip-1;i+) for(int j=0;jp-1;j+) if(perj.countperj+1.count) t=perj; perj=perj+1; perj+1=t; print(); for(int j=0;jp;j+) perj.display();运用了冒泡排序办法对商品中各类库存量多少进行排序,库存量多商品排在前面。第四章 软件测试1. 商品销售: 图4.1 销售yumi 图4.2yumi库存量2. 商品查询: 图4.3按类别查找 图4.4按名称baobao查找3. 商品删除: 图4.5删除yumi信息4. 商品添加: 图4.
20、5添加bibi商品 5. 商品修改: 图4.6将shui价格改为8$6.商品记录: 图4.7 各类商品排序6. 商品修改信息保存: 图4.8信息保存第五章 软件使用阐明书该商品管理操作系统重要是在界面内选取需要功能,依照系统界面提示,选取需要进行操作。一方面进入界面将看到内容是: 图5.1 然后依照提示按任意键,再按回车键后就能进入商品管理各项操作功能选取菜单,重要有如下几种操作:销售、查询、添加、删除、修改、记录、显示。 图5.2 依照菜单提示,选取所要进行操作。例如选取销售功能,就输入”销售”前面菜单编号A或者a 。进入销售管理系统,再依照界面提示选取接下来每一步操作。不论进入了哪一种界面,系统都会给出相应界面关于提示,只要依照提示进行每一步操作,就能对的使用该管理系统。道谢非常感谢裴教师、伍教师、焦教师、陈教师指引,尚有我室友和同窗协助,谢谢!. 签名 日期 1月16日参照文献1Richard Johnsonbaugh. Martin Kalin.面向对象程序设计C+语言描述.机械工业出版社.2钱能.+语言程序设计教程.清华大学出版社.