超市商品管理系统+含报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超市商品管理的设计与实现
1.系统描述
1.1 问题说明
要求设计并实现一个简单超市商品管理系统,至少实现数据的增加、修改、删除、查询和显示相应结果,内存数据用链表组织,数据文件用文本文件,用户界面用字符界面,枚举量用枚举类型表示。
1.2 数据需求
1.3 功能需求
2.系统设计
2.1 开发平台
计算机系统:Microsoft Windows XP;开发工具:Microsoft Visual Studio 6.0;语言:C++ 2.2内存数据结构设计
用单链表表示商品数据记录,链表接点定义为:
struct node
{
ProductsInfo productsInfo;
node *pnext;
};
其中自定义数据类型ProductsInfo定义为:
struct ProductsInfo //定义超市商品的相关属性
{
char no[14];
char name[25];
float price;
int num;
char sort[12];
};
枚举菜单类型与操作类型:
enum MenuType {MAINMENU, SUBMENU}; //枚举菜单类型
enum FuncType {NONE, ADD, PRINT, DELETE, MODIFY,QUERY, QB_NO, QB_NAME, QB_price,QB_num, QB_sort, SA VE, EXIT}; //枚举操作类型
2.3数据文件设计
数据记录保存在文本文件productsInfo.txt里,利用C++流类库进行数据读写操作,每条数据记录之间换行分隔开。
2.4用户界面设计
用户界面为控制台字符模式,根据功能为用户设计了主菜单与分菜单,界面友好,易
于操作,主菜单如下:
cout << "*&*&*&*&*&*&*&*欢迎使用商品管理系统*&*&*&*&*&*&*\n";
cout << "* *\n";
cout << "* 请按下面的选单进行功能选择: *\n";
cout << "* (1) 添加商品记录*\n";
cout << "* (2) 显示商品清单*\n";
cout << "* (3) 删除一条商品记录*\n";
cout << "* (4) 修改一条商品记录*\n";
cout << "* (5) 查询*\n";
cout << "* (6) 保存至文档*\n";
cout << "* (7) 退出*\n";
cout<<"*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&\n";
查询功能的分菜单如下:
cout << "*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*&*\n";
cout << "* 商品信息管理系统*\n";
cout << "*主菜单->查询*\n";
cout << "* (1) 按商品编号查询*\n";
cout << "* (3) 按商品价格查询*\n";
cout << "* (4) 按商品分类查询*\n";
cout << "* (5) 返回*\n";
cout << "***********************************************\n";
2.5具体功能设计
根据功能需求分析,定义了如下功能函数:
FuncType PrintMenu(MenuType which); //菜单选择函数
node * CreateProList(char filename[]); //读取数据文件,建立数据链表
void RemoveProList(); //撤销内存空间
void RemoveQueryRes();
void Save(char filename[]); //保存至文件
void Print(node *pnode); //显示数据信息
void Print(QueryRes *pnode);
void modify(); //修改指定数据条目
QueryRes * Query(ProductsInfo& productsInfo, FuncType func);//查询指定数据条目node * Add(ProductsInfo& productsInfo); //添加数据项
bool Delete(); //删除指定条目
ProductsInfo& GetproductsInfo(ProductsInfo& productsInfo); //从终端接收数据
ProductsInfo& SetproductsInfo1(ProductsInfo& productsInfo,FuncType func);
功能函数调用关系图如下:
附:源程序清单
//products.h
//文件功能:定义超市商品的数据结构及其相关操作
#include
#include
#include
#include
struct ProductsInfo //定义超市商品的相关属性
{
char no[14];
char name[25];
float price;
int num;
char sort[12];
};
struct node //定义数据链表结点
{
ProductsInfo productsInfo;
node *pnext;
};
struct QueryRes
{
node * pnode;
QueryRes * pnext;
};
node *phead = NULL; //定义数据链表头指针
QueryRes *pqueryres = NULL;
enum MenuType {MAINMENU, SUBMENU}; //枚举菜单类型
enum FuncType {NONE, ADD, PRINT, DELETE, MODIFY,QUERY, QB_NO, QB_NAME, QB_price,QB_num, QB_sort, SA VE, EXIT}; //枚举操作类型
FuncType PrintMenu(MenuType which); //菜单选择函数
node * CreateProList(char filename[]); //读取数据文件,建立数据链表
void RemoveProList(); //撤销内存空间
void RemoveQueryRes();
void Save(char filename[]); //保存至文件
void Print(node *pnode); //显示数据信息
void Print(QueryRes *pnode);
void modify(); //修改指定数据条目
QueryRes * Query(ProductsInfo& productsInfo, FuncType func); //查询指定数据条目node * Add(ProductsInfo& productsInfo); //添加数据项bool Delete(); //删除指定条目
ProductsInfo& GetproductsInfo(ProductsInfo& productsInfo); //从终端接收数据ProductsInfo& SetproductsInfo1(ProductsInfo& productsInfo,FuncType func);
// products.h文件结束
//products.cpp