目 录
1 需求分析说明…………………………………………………………1
2 概要设计说明…………………………………………………………2 3 详细设计说明…………………………………………………………3 4 调试分析…………………………………………………………4 5 用户使用说明………………………………………………………5 6 测试结果………………………………………………………5 7 主程序………………………………………………………12
需求分析说明
产品进销存管理系统总体功能要求:
产品进销存管理系统总体目标:在TURBO C2.0 的开发环境下,利用所学C语言和数据结构的相关知识,开发一个小程序,实现商店日常基本操作,通过其显示结果对本系统的性能有一个直观的了解。 基本功能如下:
(1)界面友好,易与操作。采用菜单进行选择。
(2)实现各种基本操作。包括商品产品的存储,销售,查询,更改,已达到为商家减少日常不必要的麻烦。 以下是各功能模块的功能描述:
1.主函数模块
本模块的主要功能是初始化图形界面,调用各模块,实现系统功能。
2.初始化模块
本模块的主要功能是初始化本系统,进行系统基本操作的演示。
3.添加模块
本模块的主要功能是可进行商品类的添加,产品的添加。
4.查询模块
本模块的主要功能是能够查询库房每种产品的总量,进货日期,销售数量,产品单价,销售日期,销售收益 ,产品剩余库存量。
5.删除模块
1
本模块的主要功能是能够进行商品类的删除,产品的删除。
6.库存模块
本模块的主要功能是使商家随时随地的查看商店的整体运作情况。例如每一种商品的销售数量,销售收益等。
7.更改模块
本模块的主要功能是能够更改库房每种产品的总量,进货日期,销售数量,产品
单价,销售日期,销售收益 ,产品剩余库存量。
8.密码模块
概要设计说明
本模块的主要功能是使本系统更趋于安全。
#define ok 1 #define error 0 #define overflow 0
#define SQMOUTLINK_INIT_SIZE 100 #define SQMOUTLINKINCREMENT 10
/***********************日期*******************/ typedef struct date
{ int year; int month; int day; }date;
/***********************产品******************/ typedef struct productnode {
char product_name[40]; //产品名称 int product_quantity; //产品总量 int sales_quantity; //销售数量 double product_price; //产品单价 double product_income; //销售收益 int product_stock; //产品库存 date buy_time; //进货日期 date sales_time; //销售日期 struct productnode *next; }productnode,*plinklist;
/*********************货物种类**************/ typedef struct kindnode {
productnode * first_product; //头指针 char pkindname[40]; //商品名称 int kind_number; //产品种类个数 }kindnode;
/*****************销售链表****************/
2
typedef struct {
kindnode* kindelem; int length; int listsize; }sqlist;
int Init(sqlist &L)/*初始化L*/ int Add(sqlist &L) /*添加*/ void Alter(sqlist &L)/*更改*/ int Create(sqlist &L)/*创建*/ void Delete(sqlist &L)/*删除*/ void Display(sqlist &L)/*输出*/ void View(sqlist &L)/*查询*/ void password()/*设置密码*/
void check_password()/*验证密码*/ void menu_operation()/*菜单栏*/ void main(void)/*功能调用*/
详细设计说明
1主函数模块
首先是调用password()和check_password()函数进行安全设置,设置密码,当再次登录系统时需输入密码进行身份确认。再次调用Init(L)函数进行初始化。然后是功能选择性操作菜单,进行需要的添加,删除,更改,查询等操作,需调用Create(L),Add(L),Alter(L),View(L),Delete(L),Display(L)函数。
2.初始化模块 3.添加模块
对系统的容量,长度,首地址进行初次预设。
输入你所要添加的商品,之后需要从第一个商品偏历。如果有该商品则进行插入操作,插入一 个产品。如果没有,则插入一个商品。 4.查询模块
首先从众多商品中选出你所要进行操作的商品类。从第一个商品进行遍历,直到找到该
价,销售日期,销售收益 ,产品剩余库存量 5.删除模块
首先从众多商品中选出你所要进行操作的商品类。从第一个商品进行遍历,直到找到该商品。如果没找到则返回相应未找到信息。如果找到,需要进行产品的遍历,找到要操作的产品,删除该产品。。 6.库存模块
从第一个商品进行遍历,输出所有产品的信息。 7.更改模块
商品。如果没找到则返回相应未找到信息。如果找到,有两种情况:第一种是该商品下已有产品,另一种情况是该商品下没有产品。有产品时需要进行产品的遍历,找到要操作的产品。找到产品,switch()选择,选择查询选项,产品的总量,进货日期,销售数量,产品单
首先从众多商品中选出你所要进行操作的商品类。从第一个商品进行遍历,直到找到该商品。如果没找到则返回相应未找到信息。如果找到,需要进行产品的遍历,找到要操作的产品,更改产品的属性。
8.密码模块
如果没有设置密码,则通过文件读入的方式进行密码设置。设置完成后如登录系统需输入密码,进行身份验证。输入的密码字符串与文件读出的密码通过strcmp()比较。利用getch的性质进行输入隐藏用*遮蔽。
调试分析
我遇到的问题:
1:混淆C++中的&引用与C语言中的*指针。 2:指针指向问题。
用户使用说明
3
这时你可以创建你的密码。登录界面:
测试结果 首先进行初始化操作1
;
4
操作2:
5