# 基于C++实现的小型超市管理系统
# 1.系统设计说明
## 1.1 需求分析
本次设计主题为小型超市管理系统,根据研究分析,该管理系统主要是对商品不同种类信息进行分别储存,修改,查询,增加,删除,对于库存和销量的排序以及文件的读取。对此我们应该明确需求,从而能够合理设计程序。
## 1.2 系统功能描述
主菜单一共有七个功能,分别是:商品录入和修改(对商品信息进行录入和二次修改),商品的的增加(重新增加商品),商品的删除(删除原有商品信息),商品的查询(查询已有商品),商品的排序(对商品的库存和利润进行排序),信息储存(将商品信息存如txt文件)和信息读取(从txt文件中读取商品信息)。
**功能模块图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c211113425e82c49609f294779695026.writebug)
## 1.3 系统流程分析
**增加商品流程图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/78137afd068c14b01d696e9b845c246d.writebug)
**商品录入、修改、删除流程图**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/41607eb5f034ac3e8040434574fad6df.writebug)
# 2.存储数据结构设计说明
## 2.1 数据结构分析和设计
设计了一个基类,里面有价格,名字,成本,结余,入货日期等变量,同时还有输入、输出、计算总利润等函数。同时派生出六个派生类。每个类都有相同的成员函数实现多态。
![](http://www.writebug.com/myres/static/uploads/2021/10/19/408a0256c061af6c7295889c29230ad3.writebug)
- **class basic//基类 **
- double price;//价格
- char name[n];//名字
- double cost;//成本
- int surp;//结余
- long int date;//入货日期
- char unit[n];//计量单位
- char unit1[n];//计量单位2
- double getmoney()//计算利润
- void setdata()//输入信息
- void display()//展示信息
- **class fvm :public basic//水果蔬菜和肉类**
- char fvmnumber[n];//编号
- int fvmtimes;//批次
- long int fvmdate[max];//入货日期
- int fvminnumber[max];//入货数量
- void ssetdata()//输入所有数据
- void setin()//输入进货批次,日期和进货量
- void set(){//更改数据
- void sdisplay()//输出数据
其他类和水果蔬菜和肉类类似。
## 2.2 数据记录如何创建
通过类定义数组,输入数据进行创建。
```c++
outfile.open(文件名,ios::out);
if(!outfile)
{
cerr<<"open error"<<endl;
return -1;
}
for (int i=0;i<a1;i++)
{
outfile<<文件内容;
}
```
# 3.应用界面设计说明
**界面列表**
![](http://www.writebug.com/myres/static/uploads/2021/10/19/c5b6e5291c497df70fb603a6b9e7827e.writebug)
各界面中主要变量、函数:
- **录入**:void ssetdata()
- **增加**:利用for循环
- **删除**:利用for循环对数据删除
```c++
cout<< "请输入要删除的商品编号"; cin>>c;
itemp =-1;
for(int i=0;i<a3;i++)
{
if(strcmp(c,snacksji[i].snumber)==0)
{
cout<<"成功查询";
itemp =i;
}
}
if(itemp!=-1)
{
for(int a=itemp+1;a<a3;a++)
{
snacksji[a-1]=snacksji[a];}
a3=a3-1;
cout<<"删除成功"<<endl;
}
else
cout<<"没有找到该编号"<<endl;
```
- **查询**:void sdisplay()//输出数据
- **排序**:定义新数组
```c++
typedef struct
{
int sell;//库存
double money;//利润
char tname[n];//名字
}rectype;进行排序算法
```
- **文件储存**
```c++
outfile.open(文件名,ios::out);
if(!outfile)
{
cerr<<"open error"<<endl;
return -1;
}
for (int i=0;i<a1;i++)
{
outfile<<文件内容;
}
```
- **文件读取**
```c++
FILE *fp;
if((fp = fopen("fvm.txt","r")) == NULL)
{
fprintf(stderr," 文件打开失败!\n");
exit(0);
}
cin>>a1;
for(int i=0; i<a1; i++) //循环读取
{
fscanf(fp,"%s%lf%lf%d%d",&a[i].tname,&a[i].p,&a[i].c,&a[i].sell,&a[i].d);
cout<<文件信息;
}
fclose(fp);
```
# 4.遗留问题
数组定义太复杂太多,类继承整理不清晰。对于原来文件的和类的定义还是很模糊。代码过于冗杂,而且设计思路有所欠缺。
精选_毕业设计_基于C++实现的小型超市管理系统_完整源码
版权申诉
72 浏览量
2022-03-05
20:51:45
上传
评论 1
收藏 117KB ZIP 举报
工具盒子
- 粉丝: 59
- 资源: 1313
最新资源
- python开心麻花影视作品分析程序+源码.zip
- pythonExcel数据分析师程序+源码.zip
- PlatformUI.jar 支持RCP控件环境插件
- 基于BP神经网络的回归分析,基于优化动量因子的BP神经网络,基于优化学习率的BP神经网络,基于优化隐藏层神经元的bp神经网络
- python读取excel数据Python-file-reading-master.zip
- STC15单片机串口2使用程序例子
- 读取日志的excel生成周报 用python3开发weekplan-master.zip
- python 读取excel数据导入dbimport-data-master.zip
- K折交叉验证BP神经网络,多输入多输出BP神经网络(代码完整,数据齐全)
- B07训练原图.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈