超市商品管理系统+含报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档