C超市管理系统的设计与实现.docx
《C超市管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《C超市管理系统的设计与实现.docx(21页珍藏版)》请在冰豆网上搜索。
目录
一、需求分析 3
二、程序的主要功能 3
三、程序运行平台 4
四、系统总框架图 4
五、程序类的说明 5
六、模块分析 8
七、比较有特色的函数 9
八、运行结果 10
九、存在的不足与对策 15
十、程序源代码 15
一、需求分析
中小型超市采购的商品一般都成千上万件。
对这些商品进行有效的管理必不可少。
每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。
除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。
超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。
超市管理员每天都会记录购进的商品信息,核销过期的商品等。
为了巩固我们所学的C++语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑等功能。
同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。
二、程序的主要功能
1、添加功能:
添加商品信息:
有商品代码、商品名称、产地、商品单价、库存量等。
2、删除功能:
根据商品的名称,在添加的商品中进行删除。
3、显示功能:
能将已经添加或者进行修改的商品信息进行显示。
4、修改功能:
根据商品的民称,在添加的商品中进行修改,将这个商品的所有信息都进行修改。
5、查找功能:
根据商品名称或者编号进行查找,查找功能有两个查找方式,以备不时之需。
6.文件保存
将添加,修改,删除后的商品信息进行保存。
三、程序运行平台
VC++6.0和DEVC++
四、系统总框架图
主函数
添加信息
删除信息
清空信息
修改信息
显示信息
查找信息
图片1
五、程序类的说明
本程序定义了两个类
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)//文件指针
{
cin>>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(Supermarket*p=Head->Next;p!
=End;p=p->Next)
p->Show();
cout<<"输入任意字符!
继续……";
getch();
}
voidAddItem()
{
End->Input();
End->Next=newSupermarket;
End=End->Next;
cout<<"添加成功!
"<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;
}};
六、模块分析
模块分析表-1
函数
功能
VoidDisplay()
输出模块信息
Supermarket()
构造函数
~Supermarket()
析构函数
VoidAddItem()
增加商品
VoidRemoveItem()
删除商品
VoidModifyItem()
修改商品
Voidfind()
查找商品
IntListCount()
统计商品
Voidsave()
基础数据存盘
Supermarketmassage
构造函数
七、比较有特色的函数
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;
voidSupermarketmassage:
:
Save()
{out.open("sort.txt");
for(Supermarket*p=Head->Next;p!
=End;p=p->Next)
out<<"商品名称:
"<name<<"\t\t"<<"商品编号:
"<Num<<"\t\t"
<<"进货总数:
"<Cnum<<"\t\t"<<"销售数目:
"<Mnum<<"\t\t"
<<"剩余库存:
"<Enum<<"\t\t"<<"商品产地:
"<Add<<"\t\t"
<<"商品单价:
"<Price<<"\t\t"<<"销售额:
"<Sum<<'\n';
out.close();
}
八、运行结果
1.运行界面
2.增加
4.显示
5.查找
6.删除
7.修改
8.保存