C++课程设计小型超市管理系统方案.docx
《C++课程设计小型超市管理系统方案.docx》由会员分享,可在线阅读,更多相关《C++课程设计小型超市管理系统方案.docx(48页珍藏版)》请在冰点文库上搜索。
C++课程设计小型超市管理系统方案
江苏师范大学科文学院
本科生课程设计
课程名称:
C++课程设计
题目:
小型超市管理系统
专业班级:
14电信1班
学生姓名:
杨顺顺
学生学号:
148326141
日期:
2016.12.10
指导教师:
袁博宇
科文学院教务部印制
一、课程设计目的、任务和内容要求:
设计一个简单的超市管理系统。
1.暂定有三个货架,分别放着日常用品、食品和家电。
2.可以实货架商品的增加和出售。
3.设计查询功能,可以查找商品的现状。
4.不同商品有不同属性:
食品类,保质期,家电,颜色。
5.重载运算符>>。
设计要求:
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
要求在设计的过程中,建立清晰的类层次;
在系统的设计中,至少要用到面向对象的一种机制。
二、进度安排:
第1~3天:
查找资料,熟悉小型超市管理系统的设计原理,给出设计总体方案;
第4~6天:
各函数的详细设计;
第7~12天:
程序调试;
第13~14天:
写课程设计报告。
三、主要参考文献:
1.《c++语言程序设计(第四版)》——郑莉董渊何江舟编著
指导教师签字:
年月日
摘要·······································1
1概述·······································2
2设计方案简述·······························3
2.1设计内容·································3
2.2设计目的与要求···························3
2.3系统分析与设计··························3
3详细设计··································12
3.1系统总体设计···························12
3.2源程序代码·····························13
4运行结果··································28
5设计体会··································32
摘要
当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:
(1) 操作简便,节省大量人力;
(2)可以方便的进行货品管理,安全、高效;
(3) 可以迅速计算销售额和所买卖货品;
(4) 可以迅速查到所需信息,便于管理
1概述
1.1任务:
超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。
系统充分考虑到超市管理系统对货物资料进行登记并处理。
考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。
1.2目标:
当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:
(1) 操作简便,节省大量人力;
(2)可以方便的进行货品管理,安全、高效;
(3) 可以迅速计算销售额和所买卖货品;
(4) 可以迅速查到所需信息,便于管理。
2.设计方案简述
2.1设计内容
设计一个简单的超市管理系统。
1.暂定有三个货架,分别放着日常用品、食品和家电。
2.可以实货架商品的增加和出售。
3.设计查询功能,可以查找商品的现状。
4.不同商品有不同属性:
食品类,保质期,家电,颜色。
5.重载运算符>>。
2.2设计目的与要求
2.2.1设计目的
达到熟练掌握C++语言的基本知识和技能;
基本掌握面向对象程序设计的基本思路和方法;
能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.2.2设计要求
要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
要求在设计的过程中,建立清晰的类层次;
在系统的设计中,至少要用到面向对象的一种机制。
2.3系统分析与设计
2.3.1主要知识点
1)类,类内包含构造函数、成员函数、私有数据成员和某些输入输出函数;
2)运算符重载,定义一个重载运算符的函数,在需要执行被重载的运算符是,系统自动调用该函数;
3)继承与派生:
1.基类即父类,被继承的已有类;2.派生类即子类,新建立的类;3.这些类的定义和声明同类;4.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
2.3.2关键技术
1)程序共有四个头文件和四个源文件。
头文件Supermarket,包含增加Add,出售Sale和查询Search三个公有成员函数;
源文件Supermarket,增加函数,出售函数和查询函数的功能相似,选择功能,输出商品类型列表。
头文件Goods,在这个头文件中有四个类,一个基类和三个派生类。
基类Goods中设置增加AddGoods,出售SaleGoods,显示函数virtualShowMe。
同时定义统一的出售函数Sale。
保护成员包括,商品名称name[],商品数量number[]和商品分类的数量count。
派生类,日常用品类DailyGoods,食物Food和家电ElectricalAppliance,除了自身的无参构造函数,均从基类中继承增加AddGoods,出售SaleGoods,显示函数virtualShowMe,并根据课题要求加入运算符重载函数istreamoperator>>(istream&in,DailyGoods&d)。
同时借助函数Input_file和函数Save_file将商品信息输出并保存到文件中。
源文件Goods,实现各函数功能。
头文件diaplay,保存了小系统的基本页面和选择页面。
登录界面Loading,功能选择界面SelectMenu,商品功能列表GoodList和结束页面End。
源文件display,进行头文件的各项函数的功能实现。
头文件file,是关于文件的存储,打开和关闭的功能。
源文件main,实现功能的汇总和实现方式。
2)部分函数的实现
//Supermaket
*Add函数
intSupermarket:
:
Add()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您要增加什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
*Sale函数
intSupermarket:
:
Sale()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您要出售什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
*Search函数
intSupermarket:
:
Search()
{
intGood_num;
system("cls");
GoodList();//调用GoodList()函数语言
cout<<"\t\t您想要查询什么类型的商品?
";
cin>>Good_num;
returnGood_num;
}
//Goods
*Sale函数
voidGoods:
:
Sale()//统一定义商品出售函数功能模块
{
intflag=0;
stringgoods_name;
intgoods_number;
cout<<"商品名称:
";cin>>goods_name;
cout<<"出售数量:
";cin>>goods_number;
for(inti=0;i{
if(name[i]==goods_name)
{
if(number[i]{
flag=1;
cout<cout<<"\t\t\t!
!
!
货存不足!
!
!
"<}
else
{
flag=1;
number[i]-=goods_number;
cout<cout<<"\t\t\t!
!
!
出售成功!
!
!
"<}
}
}
if(flag==0)
{
getchar();
cout<cout<<"\t\t\t没有该物品!
"<getchar();
}
}
*AddGoods函数
voidDailyGoods:
:
AddGoods()//增加日常用品
{
system("cls");
intflag=1;
ShowMe();
cout<>>>>>>>请输入要增加日常用品的信息<<<<<<<<<"<cout<<"商品名称:
";cin>>name[count];
cout<<"商品数量:
";cin>>number[count];
for(inti=0;i{
if(name[i]==name[count])//判断该物品是否已经存在
{
number[i]+=number[count];
flag=0;
}
}
if(flag)
count++;//用于新增物品
cout<cout<<"\t\t\t!
!
!
添加商品成功!
!
!
"<cout<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<}
voidFood:
:
AddGoods()//增加食品
{
system("cls");
intflag=1;
ShowMe();
cout<cout<<"商品名称:
";cin>>number[count];
for(inti=0;i{
if(name[i]==name[count])//判断该物品是否存在
{
number[i]+=number[count];
flag=0;
}
}
if(flag)
{
cout<<"商品数量:
";cin>>number[count];
cout<<"保质期:
";cin>>SaveTime[count];
count++;//用于新增物品
}
cout<cout<<"\t\t\t添加商品成功!
!
!
"<cout<cout<}
voidElectricalAppliance:
:
AddGoods()//增加家电
{
system("cls");
intflag=1;
ShowMe();
cout<cout<<"商品名称:
";cin>>name[count];
for(inti=0;i{
if(name[i]==name[count])//判断该物品是否已经存在
{
cout<<"商品数量:
";
cin>>number[count];
number[i]+=number[count];
flag=0;
}
}
if(flag)
{
cout<<"商品数量:
";
cin>>number[count];
cout<<"颜色:
";
cin>>color[count];
count++;//用于新增物品
}
cout<cout<<"\t\t!
!
!
添加商品成功!
!
!
!
"<cout<<"\t\t*************************************"<}
*SaleGoods函数
voidDailyGoods:
:
SaleGoods()//出售日常用品
{
system("cls");
ShowMe();
cout<Sale();//调用基类Goods里的Sale()函数
}
voidFood:
:
SaleGoods()//出售食品
{
system("cls");
ShowMe();
cout<Sale();//调用基类Goods里的Sale函数
}
voidElectricalAppliance:
:
SaleGoods()//卖出家电
{
system("cls");
ShowMe();
cout<>>>>>>>请输入要出售的家电信息>>>>>>>>"<Sale();//调用基类Goods里的Sale()函数
}
*ShowMe函数
voidDailyGoods:
:
ShowMe()//显示日常用品
{
cout<cout<"<for(inti=0;i{
cout<<"【"<
"<:
left)<cout<<"现存数量:
"<cout<<"-----------------------------------------------"<}
}
voidFood:
:
ShowMe()//显示食品信息
{
cout<cout<"<for(inti=0;i{
cout<<"【"<
"<:
left)<cout<<"现存数量:
"<cout<<"保质期:
"<cout<<"-----------------------------------------------------------"<}
}
voidElectricalAppliance:
:
ShowMe()//显示家电信息
{
cout<cout<"<for(inti=0;i{
cout<<"【"<
"<:
left)<cout<<"现存数量:
"<cout<<"颜色:
"<cout<<"------------------------------------------------------------"<}
}
*文件的输入和保存函数
voidDailyGoods:
:
Input_file(ostream&outfile)//将DailyGoods类商品信息打印到文件中
{
outfile<"<for(inti=0;i{
outfile<<"【"<
"<:
left)<outfile<<"现存数量:
"<}
outfile<}
voidDailyGoods:
:
Save_file(ostream&Write_DailyGoods)//用于将DailyGoods商品信息单独保存到文件中
{
Write_DailyGoods<for(inti=0;i{
Write_DailyGoods<}
}
voidFood:
:
Input_file(ostream&outfile)//将Food类商品信息打印到文件中
{
outfile<"<for(inti=0;i{
outfile<<"【"<
"<:
left)<outfile<<"现存数量:
"<outfile<<"保质期:
"<}
outfile<}
voidFood:
:
Save_file(ostream&Write_Food)//用于将Food商品信息保存到文件中
{
Write_Food<for(inti=0;i{
Write_Food<}
}
voidElectricalAppliance:
:
Input_file(ostream&outfile)//将ElectricalAppliance类商品信息打印到文件中
{
outfile<"<for(inti=0;i{outfile<<"【"<
"<:
left)<outfile<<"现存数量:
"<"<}
outfile<}
voidElectricalAppliance:
:
Save_file(ostream&Write_ElectricalAppliance)//用于将ElectricalAppliance商品信息保存到文件中
{
Write_ElectricalAppliance<for(inti=0;i{
Write_ElectricalAppliance<}
}
//Display函数
voidSelectMenu()//实现商品操作的列表
{
cout<cout<<"\t可操作选项:
"<cout<