C语言仓库管理系统-数据结构课程设计
一、程序设计目标
1. 问题描述
2. 问题分析
二、概要设计
1. 方案确定
2. 程序设计模块连接图
3. 模块功能说明
三、详细设计
1. 数据设计
2. 流程框图
四、C源程序清单
五、调试分析和测试结果
辣、软件使用说明书
七、附录
程 序 设 计 书
题目:仓库货品管理系统
一、程序设计目标
1. 问题描述
一个库存货品信息管理系统软件,要求能实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印。对于查找、删除等功能要求能按货品名、货品号分别进行。每个货品的相关信息包括:货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等。
2. 问题分析
实际上要完成的是一个简单数据库管理信息系统的设计,同时要掌握数据结构方面的知识。
二、概要设计
1.方案确定
库存货品信息管理系统要求实现许多功能,可遵循结构化程序设计思想来进行本系统的设计——自顶向下,逐步细化,也就是将软件设计任务划分成许多容易解决的小的子任务,即分解出许多子功能模块进行设计。本程序经过分析可划分出6个子任务:输入、输出、插入、删除、查找和保存。
2. 程序设计模块连接图
库存货品信息管理系统的模块连接结构如下图:
3. 模块功能说明
对本系统的功能进行分析后可作如下的模块化设计:
输入模块实现功能:按顺序将货物编号、货物名称、货物数量依次输入,并建立链表将其连接。当输入的货品编号为0时,输入结束。
插入模块实现功能:向已经存盘的文件中再输入货品的信息,包括货品编号、货品名称、货品数量等等。
删除模块实现功能:在已经存储的文件中删除指定的货品信息,并释放内存空间。删除可以按照货品编号和货品名称两中方法进行。
查找模块实现功能:在已经存储的文件中查找指定的货品信息。可以按照查找货品编号和货品名称两种方法进行。
输出模块实现功能:在输入特定的文件名之后,输出该文件中所包含的全部货品信息。
保存模块实现功能:进行上述操作后,都要进行保存操作,链表中的信息以文件形式被长期。保存。
载入模块实现功能:将磁盘上的数据文件载入链表。
主序模块实现功能:完成系统的界面处理,包括开始界面和主菜单界面。
三、详细设计
1.数据设计
(1)数据结构的选择
选取动态数据结构,本系统是通过双向链表来完成的。
动态存储分配与释放:
① 申请存储空间函数malloc( )
函数首部原型为
void * malloc(unsigned int size)
② 释放存储空间函数free( )
函数首部原型为
void free(void*p)
动态数据结构——双向链表
head 2030 2036 2025 2042
head 2030 2036 2025
(2) 数据类型的选择
struct commodity /*定义双向链表结构体*/
{int number; /*货物编号*/
char name[max]; /*货物名称*/
int counter; /*货物数量*/
struct commodity *piror, *next; /*定义两指针,分别指向其前驱和后继*/
};
(3)变量函数说明:
COM *input( )
操作结果:输入货品信息
COM *insert_perf( )670