仓库货品管理系统程序设计书_第1页
仓库货品管理系统程序设计书_第2页
仓库货品管理系统程序设计书_第3页
仓库货品管理系统程序设计书_第4页
仓库货品管理系统程序设计书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 仓库货品管理系统 程序设计书 一、 程序设计目标 1 问题描述 一个库存货品信息管理系统软件,要求能实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印。对于查找、删除等功能要求能按货品名、货品号分别进行。每个货品的相关信息包括:货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等。 2 问题分析 实际上要完成的是一个简单数据库管理信息系统的设计,同时要掌握数据结构方面的知识。 二、概要设计 1方案确定 库存货品信息管理系统要求实现许多功能,可遵循结构化程序设计思想 来进行本系统的设计 自顶向下,逐步细化,也就是将软件设计任务划分成许多容易解决的小的子任务,即分解出许多子功能模块进行设计。 本程序经过分析可划分出 6 个子任务:输入、输出、插入、删除、查找和保存。 2 程序设计模块连接图 库存货品信息管理系统的模块连接 结构如 下 图: 3 模块功能说明 对本系统的功能进行分析后可作如下的模块化设计: 输入模块实现功能: 按顺序将货物编号、货物名称、货物数量依次输入,并建立链表将其连接。当输入 的货品编号为 0 时 , 输入结束。 插入模块实现功能: 向已经存盘的文件中再输入货品的信息,包括货品编号、货品名称、货仓库货品信息管理系统 主程序模块 输入模块 输出模块 插入模块 删除模块 查找模块 保存模块 载入模块 2 品数量等等。 删除模块实现功能: 在已经存储的文件中删除指定的货品信息 ,并释放内存空间。 删除可以按照货品编号和货品名称两中方法进行。 查找模块实现功能: 在已经存储的文件中查找指定的货品信息。可以按照查找货品编号和货品名称两种方法进行。 输出模块实现功能: 在输入特定的文件名之后,输出该文件中所包含的全部货品信息。 保存模块实现功能: 进行上述操作后,都要进行保存操作, 链表中的信息以文件形式被长期。保存。 载入模块实现功能: 将磁盘上的数据文件载入链表。 主 序模块实现功能: 完成系统的界面处理,包括开始界面 和主 菜单 界面。 三、详细设计 1数据设计 ( 1)数据结构的选择 选取动态数据结构,本系统是通过 双向 链表来完成的。 动态存储分配与释放: 申请存储空间函数 ) 函数首部原型为 释放存储空间函数 ) 函数首部原型为 p) 动态数据结构 双向 链表 2030 2036 2025 2042 030 2036 2025 (2) 数据类型的选择 /*定义双向链表结构体 */ /*货物编 号 */ /*货物名称 */ /*货物数量 */ * /*定义两指针,分别指向其前驱和后继 */ ; ( 3) 变量函数说明 : ) 操作结果:输入货品信息 ) 操作结果:插入某货品 A 2036 B 2025 C 2042 D 030 3 ) 操作结果:删除某货品 ) 操作结果:查找某货品 ) 操作结果:输出某货品 OM*操作结果:保存 ) 操作结果:载入 2 流程 框 图 查找模 块和载入模块 的算法框图在此略。 ( 1)输入模块 N Y N Y N Y 申请一个结点空间,使 向它 将 向结点输入货品的信息 0 否为第一个数据( n=0) n+1=n, 始 4 ( 2)插入模块 Y N Y N Y 返回 束 开始 调入载入模块 请一个结点空间,使 向它 给 向结点输入预插入货品的信息 返回 束 返回 5 ( 3)删除模块 Y N Y 1 2 Y N N Y Y N Y 开始 调用载入模块 =键盘读入 1且 2 输入预删除的货品号 入预删除的货品号 =or =未找到要删除项 =回 找到 6 Y N ( 4)保存模块 N Y N Y ( 5)输出模块 “返回 束 开始 输入预保存文件的文件名 创建文件成功 束 开始 调用载入模块 7 Y N Y N 对 以上各模块的文字解释说明: ( 1)输入模块:其实就是一个建立链表的操作模块。建立链表的具体操作就是逐一输入 各结点数据,并建立其前后相链的关系。首先设三个指针变量: 们都是指向结构体类型数据的。先使 值为 是链表为空的情况。用 数开辟一个结点,并使 指向它,之后从键盘读入一个货品的数据给 指向的结点。当输入的 为 0 时,令 把 值赋给 指向这一新开辟的结点,此结点就成为链表中的第一个结点。再开辟一个新结点并使 向它,读 入该结点的数据,如果输入的 为 0,则应链入这第二个结点,这时和上一个结点的处理不同,是将 值赋给 就是使第一个结点的 员指向第二个结点,接着将 指向结点 2。再开辟一个新结点并使 向它,读入该结点的数据,同样将 值赋给 就是使第三个结点链接到第二个结点之后,并接着将 值赋给 向结点 3。再开辟一个新结点,并使向它,输入该结点的数据,如果输入 0,则是输入结 束标志,此结点不被链接到链表中,就将 给 立链表过程至此结束, 后所指结点并未链入链表中。 ( 2)插入模块:要完成的是链表的插入操作,即将一个新结点插入到一个已有的链表中,对刚刚建立的链表,首先新设一个指针变量 开辟一个结点使 向它,输入该结点的数据,即新货的有关数据,接下来查找要插入位置结点,找到后 只需修改此结点和 链表中所有元素位置均不需移动,这就体现了链表的优点。 ( 3)删除模块:要完成的是链表的删除操作,只需修改链 表中要删除结点的前一个结点的链指针。使之指向被删除结点的后面一个结点即可。 ( 4)保存模块:将最终想要保留的数据信息保存于文件中。 ( 5)输出模块:要完成的是依次输出链表中各结点的数据的操作 。首先找到链表头结点的地址,也就是 值,然后设一个指针变量 指向第一个结点,输出 指的=出 束 8 结点,然后使 移一个结点,再输入直至链表的尾结点结束。 四、 C 源程序清单 # /*标准输入 /输出头文件 */ # /*包含绘制图形函数等头文件 */ # /*包含字符串处理函数头文件 */ # /*包含动态存储与释放函数头文件 */ #EN #% n,; if(0) to to ); ); ); o.%d s:n,n,%s,& ); /*刷新缓冲区函数 */ o.%d s:n,n,%d,& ); n); if(n=1) n=n+1; )= No to ); ); o.%d s:n,n, %& ); if(0) o.%d s:n,n,%s,& ); o.%d s:n,n,%d,& ); n); 10 ,24); of to to ); ; /*插入模块 */ ) =; =; =; 0; ); 8,10); ); ); if( ); n); =No to ); ; s(0):n,%& ); if(); s:n,%d,&(; ); 0)!n); 11 to or ); %s, ); ); 0,10); n); 8,11); to to n); 6,12); ) or n); ); /*删除模块 */ ) 0; 0; ); 0,10); ); ); ); if( ); ,4); ); ,9); *on n); ,10); *on n); 12 0,22); a :); %d,& :); ,6); ); %d,& :); ,6); ); %s,& 1&2); if(=0) to n); /*判断是否是目标结点 */ =0) if(=0) to nn); t nn); to or ); %s, ); ); 0,10); n); 8,11); to to n); 6,12); 13 ) or n); ); /*查找模块 */ ) 0; 0; ); 8,10); ); ); if(); ,4); to ); ,9); *on n); *on n); 0,22); a :); %d,& :); ); %& :); ); %s, 1&2); =0) (|(=0) n to n); 14 nn); t nn); to or ); %s, ); 0,24); to to ); ); /*输出模块 */ ) i=1; ); 8,10); ); ); if(); as n); nn); if(i/10=1) /*超过十行换页 */ i=0; to ); ); ); ,6); nn); i=i+1; 0,24); to to ); ); /*保存模块 */ 15 ; ,13); to or ); %s, fp=)= /*以二进制只写方式打开一个流 */ to ); ); if(1,=1) to ); ); 0,24); to to ); ; /*载入模块 */ ) n=1; %s, fp=)=5,13); t if ; ); =No to n); ); if(1,=1) /*从 向的流中读取 1 个字段,每个字段为 字符长,并把它们放到 件的位置指示器随着 16 所读取的字符数而下移 */ to n); ); if( if(n=1) n=n+1; =No to to n); ); if(1,=1) to to n); ); /*关闭文件函数 */ ) = he nn of n n do or to n n on or nnn to n ; = * nnn 17 * n * n * n * n * n * n * n ; 0); /*背景为银灰色,字为蓝色 */ ); ,8); %s, 0,22); ); ); ); ,7); %s, 0,20); a :); %d,& :); /*输入模块 */ :); /*输出模块 */ :); /*插入模块 */ :); /*删除模块 */ :); /*查找模块 */ : /*保存模块 */ : 0); 18 五、调试分析和测试结果 各模块功能测试: 1. )输入模块功能测试 用户逐一输入的数据不断添加就形成了一个列表。前面已经表明本系统的数据结构选取动态数据结构 双向 链表,因此此列表在内存中是以链表的形式存储的。那么输入模块实际上就是一个建立链表的操作模块。通过模块 )将内存中的已输入的数据存入到指定路径的某 *件中去 . 特别指出: * 为用户自己规定的货品名。 输入条件: ,且 0. 当 =0 时退出 s 型 d 型 ,且 0. 当 0 时显示输入错误,重输字样。 调用 )时 d:出结果: 货品保存在用户指定路径的 *件中以免丢失。 2 )输出模块 可将指定文件中的内容显示在屏幕上。 输出条件:调用载入 模块时, d:出结果:如输出条件正确,则可在屏幕上显示如下: 001 a 125 0002 b 230 0003 c 180 3. )插入模块 插入模块要完成的是链表的插入操作,即将一个新结点插入一个已有的链表中。 输入条件:调用载入模块。 d:货品名的 别输入,如输错则有信息提示。 输出结果:输入正确后,则显示插入成功,返回菜单后,存盘。 4. )删除模块 删除模块要完成的是链表的删除操作,即将一个结点从已有的链表中删除。 输入条件:调用载入模块。 d:两种删除方式按号和名删除,如输错则有信息提示。 输出结果:输入正确后,则显示删除成功,返回菜单后,存盘。 5. )查找模块 链表的查找操作是指在已知链表中查找值为某指定值的结点。 输入条件:调用载入模块。 d:两种查找方式按号和名查找,如输错则有信息提示。 输出结果:输入正确后,则显示查找成功,返回菜单后,存盘。 6 )保存模块 保存模块最终将想要保留的数据信息保存于文件。 7 )载入模块 用 于调用。 19 六、软件使用说明书 本系统为库存货品信息管理系统软件,能实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印。对于查找、删除等功能能够按货品名、货品号分别进行。每个货品的相关信息包括:货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等。 本系统功能基本全面,且操作简单,易于学习和掌握。 下面介绍了此软件的使用说

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论