PAGE
PAGE 21
?《C语言程序设计》实训报告
?
?
实训题目: 仓库管理系统
专业:
班级:
姓名:
成绩:
一:需求分析
1:问题
该系统所应包含的信息有以下一些:
产品,仓库。
根据需求,该系统所应实现的功能有以下一些:
输入密码进入操作界面
产品入库,产品出库。
查询指定仓库编号的入库记录
查询指定产品编号的入库记录
查询指定入库时间的入库记录
查询指定仓库编号的出库记录
查询指定产品编号的出库记录
查询指定出库时间的出库记录
查询仓库中的产品是否过期
可以在操作过程中修改密码
2、系统
采用C语言实现,开发环境为VC,可以运行在操作系统windows98及以上皆可。
3.运行要求
1)可以进行随便操作,不受限制。
2)界面友好,操作方便,例如在进行产品出入库和查询时有提示操作。
二、总体设计
1、系统流程设计
根据系统要求,设计如下的系统流程
2.系统模块设计如下,有三大基本功能:
1.出库
2.入库
3.查询
仓库管理
仓库管理
产品入库
产品出库
查询指定仓库入库记录
查询指定仓库出库记录
查询指定产品入库记录
查询指定产品出库记录
判断仓库和产品编号是否存在
判断入库日期是否合法
判断入库数量是否大于零
判断字符长度
判断闰年与非闰年
判断每月天数是否合法
判断仓库和产品编号是否存在
判断出库日期是否合法
判断入库数量是否大于零
判断出库数量是否大于零
判断是否小于当前库存量
判断字符长度
判断闰年与非闰年
判断每月天数是否合法
查询指定年月日的出入库查询
修改密码
输入密码
三:总体思路
菜单显示:实现操作某功能时有相应的提示。
功能选择:每一种功能用相应的操作数字相对应。
产品出入库:在原有链表的基础上进行插入操作。
查询记录:调用对应的查询函数来实现。
四:详细设计
1:定义结构体变量
日期:struct warehouse{
int wnum;
char wname[20];
char changename[20];
}wh[5];
产品:
struct product{
int pnum;
char pname[20];
char norms[10];
}pr[10];
链表:
struct manage{
int wnum;
int pnum;
char data[15];
int number;
int operate;
struct manage *next;
};
为了能实现不受限制的产品出入库,采用链表的结构保存产品的信息,在增加产品出入库时,创建一个新的节点,将其插入到链表中,示意图如下。
W
Wnum,pnum,data[15], Number,operate next
Wnum,pnum,
Number,operate next
Wnum,pnum, NULL
Number,operate
2:模块化设计
进入设计:
以输入密码的方式进入,最多可输入三次,如果第三次输入错误,系统将自动退出。这样保证了仓库管理这一程序操作的保密性,保证了仓库管理的安全性。
下一次输入正确的密码进入,先显示出仓库的信息,如下图:
闪动经大约5-8秒后进入主界面。
主界面实现:void screen();/*菜单界面函数*/
模块功能:来清晰的实现人机对话完成不同功能的选择。每完成相应操作都会清空界面。
用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界面,进行相应的操作,完成后,回到主界面。
产品入库:struct manage *Instore(struct manage *); /*插入入库链表函数*/调用此函数整体实现产品入库。
日期格式合法性:int date(char data[]); /*日期格式是否合法函数*/
模块功能:判断长度是否为十,第五位和第八位是否为‘-’,通过atoi()分离日期字符串保存到日期结构体中调用闰年函数、月份和月份天数的合法性函数。各函数返回1或0来判断成立与否。
闰年判断:int Isleapyear(int ); /*判断是否为闰年函数*/是闰年返回1,否返回0.
月份和天数合法判断:int numday(struct data );