C++超市管理系统地设计与实现.docx

上传人:b****2 文档编号:17596774 上传时间:2023-07-26 格式:DOCX 页数:27 大小:298.34KB
下载 相关 举报
C++超市管理系统地设计与实现.docx_第1页
第1页 / 共27页
C++超市管理系统地设计与实现.docx_第2页
第2页 / 共27页
C++超市管理系统地设计与实现.docx_第3页
第3页 / 共27页
C++超市管理系统地设计与实现.docx_第4页
第4页 / 共27页
C++超市管理系统地设计与实现.docx_第5页
第5页 / 共27页
C++超市管理系统地设计与实现.docx_第6页
第6页 / 共27页
C++超市管理系统地设计与实现.docx_第7页
第7页 / 共27页
C++超市管理系统地设计与实现.docx_第8页
第8页 / 共27页
C++超市管理系统地设计与实现.docx_第9页
第9页 / 共27页
C++超市管理系统地设计与实现.docx_第10页
第10页 / 共27页
C++超市管理系统地设计与实现.docx_第11页
第11页 / 共27页
C++超市管理系统地设计与实现.docx_第12页
第12页 / 共27页
C++超市管理系统地设计与实现.docx_第13页
第13页 / 共27页
C++超市管理系统地设计与实现.docx_第14页
第14页 / 共27页
C++超市管理系统地设计与实现.docx_第15页
第15页 / 共27页
C++超市管理系统地设计与实现.docx_第16页
第16页 / 共27页
C++超市管理系统地设计与实现.docx_第17页
第17页 / 共27页
C++超市管理系统地设计与实现.docx_第18页
第18页 / 共27页
C++超市管理系统地设计与实现.docx_第19页
第19页 / 共27页
C++超市管理系统地设计与实现.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++超市管理系统地设计与实现.docx

《C++超市管理系统地设计与实现.docx》由会员分享,可在线阅读,更多相关《C++超市管理系统地设计与实现.docx(27页珍藏版)》请在冰点文库上搜索。

C++超市管理系统地设计与实现.docx

C++超市管理系统地设计与实现

 

 

1、需求分析

中小型超市采购的商品一般都成千上万件。

对这些商品进行有效的管理必不可少。

每件商品一般都需要记录商品名、条形码、类别、价格、出厂日期等商品的基本信息。

除此之外,还需要记录商品的其他相关信息,如生产厂家、供货处代码、厂家网址、厂家电话等。

超市商品的相关信息需要存储到文件系统中,一般都需要提供对商品信息的添加、编辑、删除等操作。

超市管理员每天都会记录购进的商品信息,核销过期的商品等。

 

为了巩固我们所学的C++语言程序设计知识,也为了满足课程设计的要求,我们在对几个中小型超市进行调研的基础上,设计和实现一个小型的超市商品管理系统,提供商品系统的添加、删除、编辑等功能。

同类系统多数使用结构体数组来操作数据,本系统使用链表结构操作数据,提高了数据处理的效率。

 

2、程序的主要功能

1、添加功能:

添加商品信息:

有商品代码、商品名称、产地、商品单价、库存量等。

2、删除功能:

根据商品的名称,在添加的商品中进行删除。

3、显示功能:

能将已经添加或者进行修改的商品信息进行显示。

4、修改功能:

根据商品的民称,在添加的商品中进行修改,将这个商品的所有信息都进行修改。

5、查找功能:

根据商品名称或者编号进行查找,查找功能有两个查找方式,以备不时之需。

6.文件保存

将添加,修改,删除后的商品信息进行保存。

 

3、程序运行平台

 

VC++6.0和DEVC++

 

4、系统总框架图

 

 

图片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.保存

 

九、存在的不足与对策

于设计者水平有限及时间等方面的原因,该系统的功能比较简单,只有基础的功能,增删改查,我还添加了几个在我能力范围之内的应用,比如文件,还有就是统计,这些在我能力之内的内容,这个程序我真的把我所学的知识都用上了,所以还有很多待完善的地方,比如登陆界面的密码,还划分管理员与普通用户,这些都是我欠缺的知识,所以我希望在以后的学习中能学到更多的知识,弥补自己不足。

 

十、程序源代码

#include

#include//文件的使用

#include

#include//用getch();

usingnamespacestd;

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<<"商品名:

"<

<<"商品编号:

"<

<<"进货总数:

"<

<<"销售数目:

"<

<<"剩余库存:

"<

<<"产地:

"<

<<"单价:

"<

<<"销售额:

"<

}

};

classSupermarketmassage//定义超市各功能模块类

{public:

Supermarketmassage();

~Supermarketmassage();

voidShowMenu();//显示模块

voidFind();//查找模块

voidSave();

voidModifyItem();//修改模块

voidRemoveItem();//删除模块

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;

}};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

Supermarketmassage:

:

Supermarketmassage()

{

Head=newSupermarket;

Head->Next=newSupermarket;

End=Head->Next;

in.open("sort.txt");

if(!

in)

cout<<"这是一个新系统,无商品信息。

请先输入。

"<

else

{while(!

in.eof())

{End->ReadFile(in);

if(End->name[0]=='\0')

break;

End->Next=newSupermarket;

End=End->Next;

}

in.close();

cout<<"\t\t读取商品信息成功!

"<

}

}

Supermarketmassage:

:

~Supermarketmassage()

{Save();

for(Supermarket*temp;Head->Next!

=End;)

{

temp=Head->Next;

Head->Next=Head->Next->Next;

deletetemp;

}

deleteHead,End;

}

voidSupermarketmassage:

:

ShowMenu()

{cout<<"〒〒〒〒〒〒〒〒〒〒☆超市商品管理系统☆〒〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒★★★★★★★★★★★★★★★★★★〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆1.增加商品信息☆★〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆2.显示商品信息☆★〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆3.查找商品信息☆★〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆4.删除商品信息☆★〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆5.修改商品信息☆★〒〒〒〒〒〒〒〒〒"<

cout<<"〒〒〒〒〒〒〒〒〒★☆0.保存文件退出☆★〒〒〒〒〒〒〒〒〒"<

cout<<"\n\t\t\n\t\t请选择:

";}

voidSupermarketmassage:

:

Find()//查找模块

{charname[20],Num[10];

intx;

Supermarket*p=NULL;

cout<<"\n\t\t*********************************\n";

cout<<"\t\t※1.按商品的名称查找\n\t\t※2.按商品编号查找";

cout<<"\n\t\t*********************************\n请选择:

";

cin>>x;

switch(x)

{case1:

{cout<<"\t\t请输入要查找的商品的名称:

";

cin>>name;

if(p=FindItem(name))

{p->Next->Show();

cout<<"输入任意字符!

继续……";

getch();

}

else

{cout<<"\t\t没有找到该商品信息!

"<<'\n'<

cout<<"输入任意字符!

继续……";

getch();

}

}break;

case2:

{cout<<"\t\t请输入要查找的商品编号:

";

cin>>Num;

if(p=FindNum(Num))

{p->Next->Show();

cout<<"输入任意字符!

继续……";

getch();

}

else

{cout<<"\t\t没有找到该编号的商品!

"<<'\n'<

cout<<"输入任意字符!

继续……";

getch();

}

}

break;

}

}

voidSupermarketmassage:

:

ModifyItem()//修改信息

{charname[20];

Supermarket*p=NULL;

cout<<"\t\t请输入要修改的商品名:

";

cin>>name;

if(p=FindItem(name))

{

cout<<"\t\t已找到商品的信息,请输入新的信息!

"<

p->Next->Input();

cout<<"修改成功!

"<

cout<<"输入任意字符!

继续……";

getch();

}

else

{cout<<"\t\t没有找到!

"<

cout<<"输入任意字符!

继续……";

getch();

}}

voidSupermarketmassage:

:

RemoveItem()//删除信息

{charname[20];

Supermarket*p=NULL,*temp=NULL;

cout<<"\t\t请输入要删除的商品名:

"<>name;

if(p=FindItem(name))

{temp=p->Next;

p->Next=p->Next->Next;

deletetemp;

cout<<"\t\t删除成功!

"<

cout<<"输入任意字符!

继续……";

getch();

}

else

{cout<<"\t\t没有找到!

"<

cout<<"输入任意字符!

继续……";

getch();

}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌统计﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

intSupermarketmassage:

:

ListCount()//统计当前链表的记录总数,返回一个整数

{if(!

Head)

return0;

intn=0;

for(Supermarket*p=Head->Next;p!

=End;p=p->Next)

{

n++;

}

returnn;

}

 

 

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

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();

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2