超市管理系统C++.docx
《超市管理系统C++.docx》由会员分享,可在线阅读,更多相关《超市管理系统C++.docx(22页珍藏版)》请在冰豆网上搜索。
超市管理系统C++
C++程序设计课程设计报告
————超市管理系统
班级:
一.设计题目与要求…………………………………
二.需求分析………………………………………………
三.概要设计…………………………………
四.详细设计……………………………………………
五.测试………………………………………………
六.结论及改进设想…………………………………
一、课程设计题目与要求
1.设计题目
超市管理系统
2.系统功能要求
(1)销售功能。
购买商品时,先输入类别,然后输入商品名称,并在库存中查找该商品的相关信息。
如果有库存量,输入购买的数量,进行相应计算。
如果库存量不够,给出提示信息,结束购买。
(2)商品简单管理功能。
①添加功能:
主要完成商品信息的添加。
②查询功能:
可按商品类别、商品名称、生产厂家进行查询。
若存在相应信息,输出所查询的信息,若不存在该记录,则提示“该记录不存在!
”。
③修改功能:
可根据查询结果对相应的记录进行修改。
④删除功能:
主要完成商品信息的删除。
先输入商品类别,再输入要删除的商品名称,根据查询结果删除该物品的记录,如果该商品不在物品库中,则提示“该商品不存在”。
(3)统计功能。
输出当前库存中所有商品的总数及详细信息;
可按商品的价格、库存量、生产厂家进行统计,输出统计信息时,要按从大到小进行排序。
(4)保存功能:
将当前程序中的商品信息存入文件中。
(5)读取功能:
从文件中将商品信息读入程序。
二.需求分析
中小型超市采购的商品一般都成千上万件。
对这些商品进行有效的管理必不可少。
每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。
除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。
超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。
超市管理员每天都会记录购进的商品信息,核销过期的商品等。
为了巩固我们所学的C++语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑等功能。
同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。
三.概要设计
1增加商品
2显示商品
3排序统计商品
4查找商品
5删除商品
6修改商品
7安全退出
四.详细设计
1.设计classSupermarket商品类,实现对商品信息的描叙;设计classSupermarketmassage类,实现对商品信息的增加,删除,修改,查询,统计等。
以下是函数功能表:
函数
功能
voidDisplay()
输出商品的信息
Supermarket()
构造函数
~Supermarket()
析构函数
voidAddItem()
增加商品
voidRemoveItem()
删除商品
voidModifyItem()
修改商品
voidFind()
查询商品
intListCount()
统计商品
voidSave()
基础数据存盘
voidSort()
排序商品
Supermarketmassage()
构造函数
(1)用类的成员函数对链表的数据进行操作,其功能如上表所列。
2.设计类及对象
本程序定义了两个类,定义如下:
1)classSupermarket
classSupermarket
{public:
charname[20];
charNum[20];
intCnum;//进货总数
intMnum;//销售数目
intEnum;//剩余库存数目
doublePrice;//单价
charAdd[20];//产地
doubleSum;//销售额
Supermarket*Next;
voidInput()
{
cout<<"\t\t请输入商品名:
";cin>>name;
cout<<"\t\t请输入商品编号:
";cin>>Num;
cout<<"\t\t请输入商品进货总数:
";cin>>Cnum;
cout<<"\t\t请输入商品销售数目:
";cin>>Mnum;
cout<<"\t\t请输入商品剩余库存数目:
";cin>>Enum;
cout<<"\t\t请输入商品产地:
";cin>>Add;
cout<<"\t\t请输入商品单价:
";cin>>Price;
Sum=Mnum*Price;
}
voidReadFile(istream&in)//文件指针
{
in>>name>>Num>>Cnum>>Mnum>>Enum>>Add>>Price>>Sum;
}
voidShow()
{
cout<<"商品名:
"<<<"商品编号:
"<<<"进货总数:
"<<<"销售数目:
"<<<"剩余库存:
"<<<"产地:
"<<<"单价:
"<<<"销售额:
"<<}
};
2)classSupermarketmassage;
classSupermarketmassage
{
public:
Supermarketmassage();
~Supermarketmassage();
voidShowMenu();
voidFind();
voidSave();
voidModifyItem();
voidRemoveItem();
voidSwap(Supermarket*,Supermarket*);
voidSort();
//voidUnpass();
intListCount();
//voidAverage();
voidDisplay()
{
for(Supermarket*p=Head->Next;p!
=End;p=p->Next)
p->Show();cout<<"输入任意字符!
继续……";
getch();
}
voidAddItem()
{
End->Input();
End->Next=newSupermarket;
End=End->Next;
cout<<"添加成功!
"<继续……";
getch();
}
private:
Supermarket*Head,*End;
ifstreamin;
ofstreamout;
Supermarket*FindItem(char*name)
{
for(Supermarket*p=Head;p->Next!
=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!
strcmp(p->Next->name,name))returnp;
returnNULL;
}
Supermarket*FindNum(char*Num)
{
for(Supermarket*p=Head;p->Next!
=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!
strcmp(p->Next->Num,Num))returnp;
returnNULL;
}
Supermarket*FindAdd(char*Add)
{
for(Supermarket*p=Head;p->Next!
=End;p=p->Next)//匹配成功则返回上一个指针,不成就返回空
if(!
strcmp(p->Next->Add,Add))returnp;
returnNULL;
}
};
3.程序源代码
#include
#include
#include
#include//用getch();
usingnamespacestd;
//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Supermarket类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
classSupermarket
{public:
charname[20];
charNum[20];
intCnum;//进货总数
intMnum;//销售数目
intEnum;//剩余库存数目
doublePrice;//单价
charAdd[20];//产地
doubleSum;//销售额
Supermarket*Next;
voidInput()
{
cout<<"\t\t请输入商品名:
";cin>>name;
cout<<"\t\t请输入商品编号:
";cin>>Num;
cout<<"\t\t请输入商品进货总数:
";cin>>Cnum;
cout<<"\t\t请输入商品销售数目:
";cin>>Mnum;
cout<<"\t\t请输入商品剩余库存数目:
";cin>>Enum;
cout<<"\t\t请输入商品产地:
";cin>>Add;
cout<<"\t\t请输入商品单价:
";cin>>Price;
Sum=Mnum*Price;
}
voidReadFile(istream&in)//文件指针
{
in>>name>>Num>>Cnum>>Mnum>>Enum>>Add>>Price>>Sum;
}
voidShow()
{
cout<<"商品名:
"<<<"商品编号:
"<<<"进货总数:
"<<<"销售数目:
"<<<"剩余库存:
"<<<"产地:
"<<<"单价:
"<<<"销售额:
"<<}
};
//﹌﹌﹌﹌﹌﹌﹌﹌﹌Supermarketmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
classSupermarketmassage
{
public:
Supermarketmassage();
~Supermarketmassage();
voidShowMenu();
voidFind();
voidSave();
voidModifyItem();
voidRemoveItem();
voidSwap(Supermarket*,Supermarket*);
voidSort();
//voidUnpass();
intListCount();
//voidAverage();
voidDisplay()
{
for(Su