超市商品管理系统设计_C++
重庆科技学院
《面向对象程序设计》
课程设计报告
学 院:_电气与信息工程学院_ 专业班级: 学生姓名: 学 号:
设计地点(单位)________计算机自主学习中心 ________ __ 设计题目:________超市商品管理系统设计______________ _____ 完成日期: 2013 年1月18日
指导教师评语: ______________________ _________________
____________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):______ __________
指导教师(签字):
摘要
商品管理系统是一个企业不可缺少的部分, 它的内容对于企业的决策者和管理者来说都很重要, 所以商品管理系统应该能够为用户提供充足的信息和快捷的查询手段。随着科学技术的不断提高,其强大的功能已经为人们深刻认识,它已经进入人类社会的各个领域并发挥着重要作用。因此,通过电脑软件编程,开发这样一套商品管理系统成为很有必要的事情。用户可以根据该系统查询相关信息,管理者可以根据该系统查询、修改商品信息。
关键字:商品管理、查询、科技、编程
重庆科技学院 程序设计任务书
设计题目:超市商品管理系统设计
2013年1月1日
目 录
摘要 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2 课程设计任务书 „„„„„„„„„„„„„„„„„„„„„„„„„„3 1 软件需求分析说明 „„„„„„„„„„„„„„„„„„„„„„„„6 2 软件分析与设计 „„„„„„„„„„„„„„„„„„„„„„„„„7 2.1 软件界面设计 „„„„„„„„„„„„„„„„„„„„„„„7
2.2 软件的数据(结构)设计 „„„„„„„„„„„„„„„„„„7 2.3 软件的算法设计 „„„„„„„„„„„„„„„„„„„„„„9 3软件的实现 „„„„„„„„„„„„„„„„„„„„„„„„„„„„11 4软件的测试 „„„„„„„„„„„„„„„„„„„„„„„„„„„„18 5软件使用说明书 „„„„„„„„„„„„„„„„„„„„„„„„„„21 致谢 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„22 参考文献 „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
第一章 软件需求分析说明书
该商品管理只要把商品分为四类,分别是食品、化妆品、日用品和饮料。每种商品
都包含商品名称、价格、库存量和生产厂家信息。该商品管理系统主要完成对商品的销售、统计和简单管理。
(1)销售功能。购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。如果有库存量,输入购买的数量,进行相应计算。如果库存量不够,给出提示信息,结束购买。
(2)商品简单管理功能。
添加功能:主要完成商品信息的添加。
查询功能:可按商品类别、商品名称、生产厂家进行查询。若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!”。
修改功能:可根据查询结果对相应的记录进行修改。
删除功能:主要完成商品信息的删除。先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)统计功能。
输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计。
第二章 系统分析与设计
2.1 软件界面设计
图2.11
图2.12
2.2 软件的数据(结构)设计
本系统运用了#include、#include、#include、
#include四个包头文件。并将食品、化妆品、日用品、饮料的信息分别保存在四个文本文件food.txt 、cosmetics.txt 、dailyuse.txt 、drink.txt 中,系统运行时,可以更方便获取信息。
每个文本文件里的商品信息分别是商品的名称、价格、库存量、生产厂家。四个文本文件的内容如下:
图2.21 foods 。txt
重庆科技学院《面向对象程序设计》课程设计报告
图2.22 drink.txt
图2.23 dailyuse.txt
图2.24 cosmetics.txt
2.3 软件的算法设计
图2.31
超出库
存数量
图2.33
图2.32
无 此商品
图2.34
无 此 商 品 图2.35
第三章 软件的实现
(1)类的实现
class goods {
public:
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){changjia=x;}//修改生产厂家 string name;//名称 string price;//价格 int count;//库存量
string changjia;//生产厂家 };
void goods :: read(string h) {
istringstream strin(h);
strin>>name>>price>>count>>changjia; }
void goods :: display() {
cout
定义了一个goods 的商品类,类里面只含有共有成员,包括变量name (名称)、price (价格)、count (库存量)和changjia (生产厂家)以及几个重要的函数。 (2)文件的读取
goods *per1;
per1=new goods [200];
ifstream fin1("foods.txt"); while(getline(fin1,buff)) {
per1[p1].read(buff); p1++; }
运用了#include包头文件 从文本文件中读取字符到对象中,再把对象作为程序的输入流,既可把从文件中读取来的数字字符单个进行读取,从而进行处理。
这里只是对foods 文本文件的读取。其余三个文本文件操作的代码类同。
(3)文件的保存
ofstream pout1("foods.txt"); for(j1=0;j1
pout1
}
pout1.close()
通过ofstream 将改变了的信息写入文件中。
(4)商品销售的功能实现
void xiaoshou_goods(int p,goods *per) {
int count, count1;string price,name,changjia; cin>>name;
for(int j=0;j
if(per[j].name==name) {
cout
cout
} }
if(j==p) {
cout
{ int h=0; while(h==0) {
cout>count1;
if(panduan(count1,p,j,per)) {
per[j].count-=count1; cout
}
else cout
}
bool panduan(int s,int p,int j,goods*per) {
if(s
return false; }
商品的销售实现运用了两个函数来实现,通过查找,找到需要销售的商品。然后通过另一个判断函数判断购买的件数是不是少于库存量,若多余库存量则重新购买。
(5)商品查找的功能实现
cout:"; cin>>b; switch(b) {
case '1':
cout>c; switch(c) {
case '1': print();
for(j1=0;j1
case '4': .................; break; default: cout
cout>name;
for(j=0;j
if(per1[j].name==name) {
name="1"; break;
}
if(per2[j].name==name) {„„„„„ }
if(per3[j].name==name){„„„„„} if(per4[j].name==name) {„„„„„ } else continue; }
if(name=="1") {
print(); cout
"
if(name=="2" ){„„„„„„} if(name=="3" ){„„„„„} if(name=="4") {„„„„„} else {
cout
cout>z; }
查找功能的实现代码直接写在主函数里面的,通过switch 选择是通过类别查找还是名称查找。若通过类别查找只能查找一个类别里的所有商品。而通过名称查找可以查看单个商品的信息。
(6)商品删除的功能实现
cout>name;
for(j=0;j
if(name==per1[j].name) {
break; } }
if(j==p1) {
cout
cout>z; } else
{ while(j!=p1) {
per1[j]=per1[j+1]; j++; }
p1--;
cout
删除商品的功能代码写在主函数里面。首先选择删除商品的类型。此处代码为删除类型为食品的商品。首先系统会根据你输入的需要删除的商品进行查找,若无此商品,系统将给出提示,若有此商品,系统将成功删除该商品。
(7)商品修改的功能实现
void change_goods(int p,goods *per) {
char c;
string price,name,changjia; int count; cin>>name;
for(int j=0;j
if(per[j].name==name) {
name="0"; break; } else
continue; }
if(name=="0") {
cout
per[j].display();
cout
生产厂家>:";
cin>>c; switch(c) {
case '1':
cout>name;
per[j].xiugainame(name);
cout
case '2': „„„„„„break; case '3': „„„„„„break; case '4': „„„„„„break;
default:cout
} }
else cout
}
通过一个函数来实现商品的修改,选择修改的内容对商品进行修改。
(8)商品添加的功能实现
cout
cin>>c;
switch(c) {
case'1':
cout>per1[p1].name; cout>per1[p1].price; cout>per1[p1].count;
cout>per1[p1].changjia; cout
cout
case'2':„„„„„„..break; case'3':„„„„„„..break;
case'4':„„„„„„..break;
default: cout
cout>z;
商品添加的代码是直接写在主函数里面。根据你添加商品选择商品的类型,根据提示输入添加商品的相关信息。
(9)商品统计的功能实现
void tongji_goods(int p,goods *per) {
string price,name,changjia; int count; goods t;
for(int i=0;i
for(int j=0;j
if(per[j].count
t=per[j];
per[j]=per[j+1]; per[j+1]=t; } } }
print();
for(int j=0;j
运用了冒泡排序的方法对商品中各类库存量多少进行排序,库存量多的商品排在前面。
重庆科技学院《面向对象程序设计》课程设计报告
第四章 软件测试
1. 商品的销售:
图4.1 销售的yumi
图4.2yumi 的库存量
2. 商品的查询:
图4.3按类别查找
图4.4按名称baobao 查找
3. 商品的删除:
重庆科技学院《面向对象程序设计》课程设计报告
图4.5删除yumi 的信息
4. 商品添加:
图4.5添加bibi 商品
5. 商品的修改:
图4.6将shui 的价格改为8$
6. 商品统计:
重庆科技学院《面向对象程序设计》课程设计报告
图4.7 各类商品的排序
6. 商品修改的信息保存:
图4.8信息的保存
第五章 软件使用说明书
该商品管理操作系统主要是在界面内选择需要的功能,根据系统界面的提示,选择需要进行的操作。首先进入界面将看到的内容是:
图5.1
然后根据提示按任意键,再按回车键后就能进入商品管理的各项操作功能的选择菜单,主要有以下几个操作:销售、查询、添加、删除、修改、统计、显示。
图5.2
根据菜单的提示,选择所要进行的操作。例如选择销售功能, 就输入”销售”前面的菜单编号A 或者a 。进入销售管理系统, 再根据界面的提示选择接下来的每一步操作。
不管进入了哪一个界面,系统都会给出相应界面的有关提示,只要根据提示进行每一步操作,就能正确使用该管理系统。
致谢
非常感谢裴老师、伍老师、焦老师、陈老师的指导,还有我的室友和同学的帮助,谢谢!.
签名
日期 2013年1月16日
参考文献
[1]Richard Johnsonbaugh. Martin Kalin.《面向对象程序设计—C++语言描述》. 机械工业出版社.2009年
[2]钱能. 《C++语言程序设计教程》. 清华大学出版社.2005年