C++《超市商品管理系统》课程设计报告.docx
《C++《超市商品管理系统》课程设计报告.docx》由会员分享,可在线阅读,更多相关《C++《超市商品管理系统》课程设计报告.docx(26页珍藏版)》请在冰豆网上搜索。
C++《超市商品管理系统》课程设计报告
《面向对象程序设计》
课程设计报告
学院:
_专业班级:
学生姓名:
学号:
设计地点(单位)________计算机自主学习中心_________设计题目:
________超市商品管理系统___________
完成日期:
年月日
指导教师评语:
_______________________________________
____________________________________________________________________________________________________________________________________________________________________________________________________________________
成绩(五级记分制):
________________
指导教师(签字):
_______________
摘要
此次课程设计为超市管理系统,由VC6。
0编译器编译而成。
通过本系统,在主界面可以通过行管提示的操作,对商品进行购买、添加、修改、删除、查询、统计等管理操作。
系统主要包含了食品、化妆品、日用品、饮料四大类,每一类都包含了商品的几大最基本信息,商品名称、品牌、价格、生产厂家、库存量等.除四大类外有一个总的商品基类,通过继承机制进行访问基类,同时也结合运用了模板。
通过此系统用户可以简洁方便的购买商品,管理人员也可轻松进行商品管理,从而实现高效的管理模式,为公司企业商家等创造最大化的经济效益。
关键词:
管理系统基类继承模板
课程设计任务书
设计题目:
超市商品管理系统设计
学生姓名
汤荣安
课程名称
面向对象程序设计
专业班级
计科11
地点
I304/I306
起止时间
2013年1月7日~1月18日
设计内容及要求
1)问题描述
超市中商品分为四类,分别是食品、化妆品、日用品和饮料.每种商品都包含商品名称、价格、库存量和生产厂家、品牌等信息.
主要完成对商品的销售、统计和简单管理。
2)功能要求
(1)销售功能。
购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。
如果有库存量,输入购买的数量,进行相应计算。
如果库存量不够,给出提示信息,结束购买。
(2)商品简单管理功能。
添加功能:
主要完成商品信息的添加.
查询功能:
可按商品类别、商品名称、生产厂家进行查询.若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!
”.
修改功能:
可根据查询结果对相应的记录进行修改。
删除功能:
主要完成商品信息的删除。
先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在".
(3)统计功能。
输出当前库存中所有商品的总数及详细信息;可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
3)问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试;
(8)完成系统总结报告.
根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。
设计
参数
(1)系统分析、设计正确。
(2)结果以图表方式显示。
(3)界面简洁、美观。
(4)报告格式规范。
进度
要求
周一:
明确设计任务,学习相关基础知识
周二:
熟悉各知识点,进行基础练习
周三:
根据题目要求,进行设计和实现
周四:
根据题目要求,进行设计和实现
周五:
程序测试
参考资料
[1]RichardJohnsonbaugh。
MartinKalin.《面向对象程序设计—C++语言描述》。
机械工业出版社.2009年
[2]钱能。
《C++语言程序设计教程》。
清华大学出版社。
2005年
其它
说明
1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。
2.若填写内容较多可另纸附后。
3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。
1软件需求分析说明书
1。
1需求分析
随着科技的进步,计算机技术的飞速发展,许多企业在进行技术改造的同时,各种工作也趋向于信息技术化管理。
管理系统事一个信息化、智能化和先进管理集合,一个高效有用的管理系统课一减少一个企业或者上商家的管理费用和人力物力开支,不仅可以节省大量时间,还可以为企业的各项决策带来巨大的经济效益。
与人们生活接触最贴近的超市也有它自己完善的管理系统。
计算机的自动化管理系统提高了超市管理的管理水平和工作效率,增强超市的竞争能力降低成本,为客户提供更加优质的服务。
所以需要开发一个计算机系统来代替人工管理超市人员对商品信息管理和顾客购买等方面的工作。
使用该系统可以使超市的服务更加快捷、准确和方便,减少大量的人工操作,提高了工作效率.
1.2功能简介
1。
2。
1销售功能
本功能主要是针对消费者用户使用.在购买商品时,用户得先选择输入所要购买商品的类别,是食品、化妆品、日用品和饮料中的哪一类,然后在输入商品名称,系统会自动在库存当中查找该商品的相关信息,如果在库存中还有库存量,则用户接着进行下一步操作,根据提示输入要购买的商品的数量,进行相应的计算。
如果库存量不够,则系统会给出提示信息,然后询问顾客是否重新购买,又回到系统页面主菜单。
1.2.2商品管理功能
商品管理功能主要是针对超市管理人员使用,对库存商品进行简单的管理。
本功能当中主要可以实现商品的添加、查询、修改、删除等功能。
(1)添加商品
通过主页面提示菜单键入相对应数字进入添加商品选项,然后根据提示添加商品信息,主要包括商品名称、商品品牌、商品价格、商品生产厂家、以及商品的库存量。
(2)删除商品
通过主页面的提示菜单键入相应数字进入删除商品选项,完成最商品信息的删除。
首先选择输入要删除商品的类别,再输入要删除的商品的名称,根据查询结果删除商品的记录,如果该商品在库存物品当中不存在,则系统给出相应提示,该商品不存在。
(3)修改商品
通过主页面的提示菜单键入相应数字进入修改商品选项,对商品信息进行修改.可根据查询的结果对相应的商品信息进行修改,包括商品的名称、品牌、价格、生产厂家和库存量。
(5)查询商品
通过主页面的提示菜单键入相应数字进入查询商品选项,对商品信息进行查询.可根据相应提示选择查询方式,按商品类别、商品名称、生产厂家进行查询商品的全部信息。
如果存在相应商品的信息,则输出所查询商品的信息,如果不存在该商品的记录,则系统自动提示该商品的记录不存在。
1.2.3统计功能
此功能主要是提供显示功能。
用户可通过主页面的显示菜单键入相应的数字进入统计选项,可以输出当前库存当中的所有商品的总数及相应商品的详细信息,可以按照商品的价格、生产厂家、库存量进行统计,输出商品信息时可以按照商品的对应信息按照从大到小的的顺序进行排序输出.
1.3界面介绍与要求
图1.2系统首页面介绍
本系统的软件界是使用C++编译生成的一个系统操作菜单.操作菜单界面总共有七个选项可以供用户操作选择,分别为购买商品、添加商品、删除商品、修改商品、查询商品、统计商品、退出系统。
菜单页面下方有可供用户选择操作项目的指令,当用户选择并输入0—6中的任意数字,系统便会进入相应的功能操作。
如果出现错误操作,系统会该处输入错误请从新输入等提示或者自动跳出回到主菜单界面。
页面的组织和设计要求先构思好系统的功能模块和结构框架,分析系统中的各个实体以及它们间的具体联系关系,根据问题的描述先设计好系统的类层次,完成类层次中各个成员函数的定义,实现每一个模块层次之间的衔接,从而设计出工整漂亮的管理系统,要求整个系统的界面设计简洁、美观,让用户使用起来方便快捷。
1。
4数据结构要求
在整个系统当中除了使用类层次结构、继承机制、模板等,还使用的了数据结构当中的链表结构,主要用来进行商品的管理功能.包括商品的添加、修改、删除、查询等.可以通过链表进行存储、访问操作。
通过动态申请链表空间,用指针操作数据节点完成商品信息的一系列操作.
2系统分析与设计
2。
1系统分析
系统的主要工作流程图如下,当进入操作主菜单界面时,会有相应的不同的操作选项供用户选择,但操作完成后就返回到系统主菜单。
2.1.1类的设计关系
图2。
1系统类的设计关系图
2。
1.2主功能函数流程图
图2。
2首页面功能关系图
2。
2软件的数据(结构)设计
主要系统文件的写入与保存
//读文件
voidSystem:
:
Read()
{
intnum;
stringkind;
Goods*temp;
ifstreamin;
in。
open(”infile.txt”);
in>>num;
for(inti=0;i{
temp=newGoods;
temp—〉Read(in);
something。
push_back(temp);
}
in。
close();
}
//写入文件
voidSystem:
:
Write()
{
ofstreamout;
out.open(”infile.txt”);
out<〈something。
size()〈..
for(unsignedinti=0;isomething[i]->Write(out);
out.close();
}
2。
3系统的算法设计
2。
3.1购买商品程序算法
当用户选择第一项操作时,便进入购买商品的函数。
其流程图如下:
图2。
3商品购买操作流程图
2.3.2添加商品程序算法
其流程图如下:
图2。
4商品添加操作流程图
2。
3.3修改商品程序算法
其流程图如下:
图2.5商品修改操作流程图
2.3.4统计商品程序算法
其流程图如下:
图2。
6商品统计功能流程图
3软件的实现
3。
1主系统头文件和基类的定义
#ifndefSYSTEM_H_
#defineSYSTEM_H_
#include”cosmetics。
h”
#include”dayuse.h"
#include"drink.h”
#include”food.h”
#include”goods.h”
#include
#include〈string〉
usingnamespacestd;
//定义结构体元素
structitem
{stringname;
doubleprice;
intnum;
};
booloperator〈(constitem&G1,constitem&G2);
classSystem
{
public:
voidStar();
private:
intBuy();//购买
intAdd();//添加
intDelect();//删除
intModefied();//修改
voidStatistics();//统计.
intFind();//查询.
intHave(stringkind,stringname);//查找仓库中是否有此商品.
voidWrite();
voidRead();
stringAsk();//询问增加的种类.。
vector〈Goods*>something;
};#endif//取消避免头文件重复定义
定义头文件,声明类的公有成员函数和私有数据成员。
3。
2购买商品代码解释
intSystem:
:
Buy()
{
stringkind=Ask();
intbuy_num,a;
stringname;
cout<<”\n\t\t请输入您所要购买的商品名称:
";
cin〉〉name;
a=Have(kind,name);
if(a!
=—1)//代表商品存在、则需要填购买数量、并从仓库中减去已被购买的货物。
{
something[a]->Show();
cout〈〈”\n\t\t请输入购买数量:
";
cin〉>buy_num;
if(buy_num〈=something[a]->Get_Num())
{
something[a]->Set_Num(something[a]—>Get_Num()-buy_num);
cout〈〈”\n\t\t您此次购买一共花费:
";
cout〈}
else
return-1;//超过库存量。
}
else
return0;//不存在
return1;}
该函数实现了对商品的购买功能,并且计算出本次购买所消费金额.
3.3添加商品代码解释
intSystem:
:
Add()
{
Goods*temp;
inta;
stringkind=Ask();
if(kind=="食品”)
temp=newFood;
if(kind==”饮料”)
temp=newDrink;
if(kind==”日常用品”)
temp=newDaily_Supplies;
if(kind=="化妆品")
temp=newCosmetics;
temp—>Set();
a=Have(temp->Get_Kind(),temp->Get_Name());
if(a==—1)
something.push_back(temp);
else
return0;//该商品已经存在。
return1;}
该函数实现了对商品的添加功能。
3.4删除商品代码解释
intSystem:
:
Delect()
{
stringkind=Ask();
stringname;
inta;
cout〈〈”\n\t\t请输入您要删除商品名称:
”;
cin〉>name;
a=Have(kind,name);
if(a!
=-1)
something。
erase(something.begin()+a);
else
return0;//不存在该商品。
.
return1;}
该函数实现了对商品信息的删除功能。
3.5修改商品代码解释
intSystem:
:
Modefied()
{
stringkind=Ask();
stringname;
inta;
cout<〈"\n\t\t请输入您要修改的商品名称:
";
cin〉>name;
a=Have(kind,name);
if(a!
=—1)
{
intchoice;
doubleprice;
intnum;
cout<<”\n\t\t1。
修改价格"〈cout〈<”\n\t\t2.修改库存”〈〈endl;
cout〈〈”\n\t\t”;
cin>〉choice;
if(choice==1)
{cout<<”\n\t\t请输入修改价格为:
";
cin〉>price;
something[a]—〉Set_Price(price);}
if(choice==2)
{
cout〈<”\n\t\t请输入修改库存为:
";
cin〉〉num;
something[a]->Set_Num(num);
}}
else
return0;
return1;}
该函数实现了对商品信息的修改功能,可修改商品的价格以及库存量。
3。
6查询商品代码解释
intSystem:
:
Find()
{
stringkind=Ask();
stringname;
inta;
cout<〈”\n\t\t请输入您要查找的商品名称:
”;
cin〉〉name;
a=Have(kind,name);
if(a!
=—1)
something[a]—>Show();
else
return0;
return1;}
该函数实现了对商品信息的查询功能,并且显示出所查商品的所有信息。
3。
7统计商品代码解释
voidSystem:
:
Statistics()
{
cout<<"\n\t\t1.对价格统计”〈〈endl;
cout〈〈”\n\t\t2.对库存统计”〈〈endl;
cout〈〈"\n\t\t";
cin〉〉statis;
itemtemp;
vectorfor(unsignedinti=0;i〈something.size();i++)
{temp.name=something[i]-〉Get_Name();
temp.price=something[i]—〉Get_Price();
temp。
num=something[i]-〉Get_Num();
st。
push_back(temp);}
sort(st。
begin(),st。
end());//排序
if(statis==1)
{cout〈<”名称:
”〈〈”价格:
"<〈endl;
for(unsignedinti=0;i〈something.size();i++)
cout〈〈st[i]。
name〈〈””〈price〈if(statis==2)
{
cout〈<"名称:
”<<”库存:
”<for(unsignedinti=0;i〈something.size();i++)
cout<name〈<"”<〈st[i]。
num<〈endl;
}
}
该函数实现了对商品信息的统计功能,可分别统计所有商品的价格和库存量,并且按照由小到大的顺序显示输出。
4系统功能实现
4。
1系统功能主菜单界面实现
图4。
1系统主菜单页面
4.2商品购买界面实现
图4。
2购买商品操作界面
4。
3商品添加界面实现
图4。
3添加商品操作界面
4。
4商品修改界面实现
图4。
4修改商品操作界面
4。
5商品统计界面实现
图4。
5统计商品操作界面
5软件测试
1、intSystem:
:
Buy()/*购买商品*/
例1:
input:
(商品种类):
1output:
日常用品信息
例2:
input:
(购买数量,单价15):
2output:
商品品牌:
10元
2、intSystem:
:
Add()/*添加商品信息*/
例1:
input:
(商品名称):
雪碧output:
商品品牌:
雪碧
例2:
input:
(商品库存量):
500output:
商品品牌:
500
3、intSystem:
:
Delect()/*删除商品信息*/
例1:
input:
(删除商品名称):
雪碧output:
商品品牌:
删除成功
4、intSystem:
:
Modefied()/*修改商品信息*/
例1:
input:
(修改库存):
444output:
修改成功!
例2:
input:
(修改价格):
500output:
修改成功!
5、voidSystem:
:
Statistics()/*统计商品信息*/
例1:
input:
1(对价格统计)output:
雪碧3
例2:
input:
2(对库存统计)output:
果粒奶优500
6、intSystem:
:
Find()/*查询商品信息*/
例1:
input:
1(商品类别)output:
商品品牌:
查找商品名称
例2:
input:
查找商品名称output:
百事可乐3600可口可乐重庆分公司
7、voidSystem:
:
Write()/*文件写入保存,退出系统*/
例1:
input:
0output:
谢您的惠顾,欢迎您下次光临!
6软件使用说明书
6.1销售功能模块的使用说明
在使用本系统首先会进入系统首页面上面有相应数字操作提示,请选择要进行的操作项目,用户键入1便进入购买商品功能。
根据相关提示输入选择商品类别,然后输入商品名称,并且在库存当中进行查找所要购买的商品信息,如果有库存量,接着输入购买的商品数量,然后系统会进行相应的费用计算,如果库存量不够,系统会给出相关的提示信息,结束本次购买,返回主页面.
6。
2商品管理功能的使用说明
在本管理模块主要有四个功能,即商品添加功能、删除功能、修改功能、查询功能,主要适用于超市商品管理人员对库存商品进行管理.根据首页面的提示信息进入相依的操作.
键入2便进入添加商品功能,会提示用户依次键入商品的名称、品牌、价格、生产厂家、库存量等五个信息,然后自动保存。
键入3便进入删除商品功能,首先选择输入商品类别,再输入要删除的商品名称,系统进行相应的查询,如果没有找到该商品的记录,则会提示该商品不在物品库当中,如果有则进行删除并且提示删除成功。
键入4便进入修改商品的功能,输入商品的名称,系统在商品库中进行对比查找,然后进行修改提示,选择要进行修改的项目,并且进行保存,如果没有找到则提示没有找到所要修改商品的信息.
键入5便进入商品查询功能,课分商品名称、商品品牌、商品生产厂家等但三种方式查询,别且显示所查询到商品的所有信息.
6。
3商品统计功能的使用说明
键入6便进入商品统计功能。
在本功能当中可根据提示,按照商品的的价格、库存量、生产厂家进行统计,并且输出当前所有商品的总数量及每件商品的详细信息。
在输出统计信息时,可按照部分商品信息有从大到小的顺序进行排序输出显示。
键入0便保存文件,退出超市商品管理系统。
参考文献
[1]谭浩强。
C++程序设计[M]。
北京:
清华大学出版社,2004。
[2]邓文新。
C++语言程序设计方法[M]。
北京:
清华大学出版社,2010.
[3]刘维富.C++程序设计实验与编程实践[M].北京:
高等教育出版社,2007。
[4]谭浩强。
C++语言程序设计题解与上机指导[M].北京:
清华大学出版社,2010。
[5]孟宪福.C++语言程序设计教程[M]。
北京:
清华大学出版社,2008。
致谢
为期两周的C++课程设计终于结束,最初从指导老师讲解个任务相关的基础知识