C语言课程设计 仓库管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《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;

};

为了能实现不受限制的产品出入库,采用链表的结构保存产品的信息,在增加产品出入库时,创建一个新的节点,将其插入到链表中,示意图如下。

2:模块化设计

进入设计:

以输入密码的方式进入,最多可输入三次,如果第三次输入错误,系统将自动退出。这样保证了仓库管理这一程序操作的保密性,保证了仓库管理的安全性。

下一次输入正确的密码进入,先显示出仓库的信息,如下图:

闪动经大约5-8秒后进入主界面。

主界面实现:void screen();/*菜单界面函数*/

模块功能:来清晰的实现人机对话完成不同功能的选择。每完成相应操作都会清空界面。

用户输入菜单项前面的数字,主菜单消失,进入该模块的相应界

面,进行相应的操作,完成后,回到主界面。

产品入库:struct manage *Instore(struct manage *); /*插入入库链表函数*/调用此函数整体实现产品入库。

1、日期格式合法性:int date(char data[]);

/*日期格式是否合法函数*/

模块功能:判断长度是否为十,第五位和第八位是否为‘-’,通

过atoi()分离日期字符串保存到日期结构体中调用闰年函数、月份

和月份天数的合法性函数。各函数返回1或0来判断成立与否。

2、闰年判断:int Isleapyear(int );

/*判断是否为闰年函数*/是闰年返回1,否返回0.

3、月份和天数合法判断:int numday(struct data );

/*判断输入天数是否合法函数*/

模块功能:定义一个月份数组t[13]={0,31,28,31,30,31,

30,31,31,30,31,30,31}、调用闰年函数判断年份当为闰年且

为二月时注意t[2]要加1.月份要小于12,月份结构体中天数要小于

每月天数。成立返回1,不成立返回0.

4、产品编号和仓库编号、入库数量判断:int number(struct

manage *); /*判断仓库和产品号存在和入库数量函数*/

模块功能:循环查询仓库数组和产品数组来判读编号是否存

在。

产品出库:struct manage *Outstore(struct manage *); /*插入出库链表函数*/ 大致和入库一样,但要多调用判断库存量

函数。

1:查询库存量函数:int Search(struct manage *,struct

manage *);

模块功能:当链表不为空,逐个比较结点存在入库记录则得到入

库数量,存在出库记录得到出库数量,两者差比较如果大于0返回1,

反之返回0.

查询仓库记录:void searchwarehouse(struct manage *,int); /*查询记录函数*/

模块功能:输入你要查询的仓库编号和操作类型调用链表来实现

查询。存在调用打印函数。

查询你产品记录:void searchproduct(struct manage *,int);/*

查询产品记录*/

模块功能:输入你要查询的产品编号和操作类型调用链表来实现

相关文档
最新文档