数据结构仓库库存信息管理系统_第1页
数据结构仓库库存信息管理系统_第2页
数据结构仓库库存信息管理系统_第3页
数据结构仓库库存信息管理系统_第4页
数据结构仓库库存信息管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构课程设计题目:仓库库存信息管理系统系 别:计算机信息与技术系专 业: 班 级: 学 号: 学生姓名: 指导教师: ×××2013年06月目录1 需求分析11.1问题描述11.2 需求分析12 概要设计22.1 主界面设计22.2 存储结构设计22.3 系统功能设计33 模块设计43.1 系统子程序及功能设计43.2 系统功能图44 详细设计54.1 数据类型定义54.2 系统主要子程序详细设计55 测试分析76 源程序清单107 工作总结20参考文献211 需求分析1.1 问题描述纸质仓库信息已经不能满足仓库管理员的的要求,容易丢失、查找困难等问题是纸质仓

2、库信息所有能克服的缺点。“仓库库存信息管理系统”是为了帮助管理员管理和分析的一种应用程序。仓库信息管理系统的需求分析主要确定系统的主要功能,对系统进行概要描述,分析系统运行时所需的软、硬件环境,并对系统的各个主要功能进行需求描述,目的时使软件在设计过程中尽量符合客户的需要。1.2 需求分析问题的提出:为了完善仓库管理员对仓库的管理,需要设计一个仓库库存信息管理系统。系统的设计目标:1)建立库存信息表2)新物品信息入库3)查询库存信息记录4)物品出库信息记录5)显示库存信息记录0) 退出管理系统2 概要设计2.1 主界面设计当输入相应的操作字符(比如:0-5),通过在主函数中选择并调用对应的子函

3、数程序以及其他函数中的辅助调用,实现并完成各自的功能操作(比如:添加、查找、删除、显示等)。系统主界面如下:如图2.1所示。 图2.1界面显示2.2 存储结构设计依据给定的数据格式,仓库库存信息由三个字段来组成,即物品编码、名称、和数量。如: 编码| 名称 | 数量 1 硫酸 1 通过C语言把库存物品信息用单链表形式连接,源程序要有适当的注释,使程序易于阅读,进行储存。同时进行各种修改,完成仓库库存信息管理等功能。2.3 系统功能设计依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结构,在总体上包括数据的插入、添加、删除以及数据的显示等功能模块。(1)输入函数功能:通过输入各项

4、数据给数据元素,来建立一个数据表。(2)显示函数功能:输出表中所有结点的信息。(3)查找函数功能:按照指定关键字,对相应仓库物品信息进行查找。(4)删除函数功能:查找到要删除物品的相应信息,并将其从表中永久的删除。(5)主函数功能:调用以上子函数,并用开关语句进行选择性的调用。3 模块设计3.1 系统子程序及功能设计LinkList creatLink() 增加信息 void printList(LinkList L) 输出信息void Listdel(LinkList L,int i) 删除表 void searchnum(LinkList L,int n) 用编码查询物品信息void se

5、archnum(LinkList L,int n) 用数量查询物品信息 3.2 系统功能图 系统功能图如图3.1所示。仓库库存信息管理系统建立信息表插入库存信息查询库存信息删除库存信息显示库存信息退出管理系统 图3.1系统功能4 详细设计4.1 数据类型定义结构体定义:typedef struct xc int num;/物品编码 char name20;/物品名称 int xcnum;/物品数量 struct node *next;node ,*LinkList;4.2 系统主要子程序详细设计1.主函数:主要由switch语句组成,便于函数调用: switch(choose) case 1:

6、 LinkList creatLink;break; /* 建立库存信息表 */ case 2:void printList; break; /*插入库存信息记录*/ case 3:void searchnum;break; /* 查询记录 */ case 4: void Listdel; break; /* 删除记录 */ case 5: int main()system("cls"); /* 显示记录 */2.主页面函数;int main()system("cls"); system("color 9f");LinkList L=

7、NULL; printf(" *欢迎使用仓库库存信息管理系统* n");printf(" n");printf(" * 1 建立库存信息表 n");printf(" n");printf(" * 2 新物品信息入库 n");printf(" n");printf(" * 3 查询库存信息记录 n");printf(" n");printf(" * 4 物品出库信息记录 n");printf(" n"

8、;);printf(" * 5 显示库存信息 n");printf(" n");printf(" * 0 退出管理系统 n");printf(" n");printf(" *欢迎使用仓库库存信息管理系统* n");printf(" 请选择操作:n");printf("n");printf("请选择0-5:");5 测试分析各功能的运行结果:1)建立信息表:在主菜单中选择1,进入建立库存信息表。如图5.1所示。 图5.1建立信息表2)插入

9、信息:选择2,进行插入信息。如图5.2所示。 图5.2 插入信息3)查询信息:选择3, 进行查询信息。如图5.3所示。 图5.3查询信息4)删除和显示当前库存信息:选择4、5,进行删除和显示当前信息。如图5.4所示。 图5.4删除和显示当前库存信息5)退出管理系统:选择0,进行退出系统。如图5.5所示。 图5.5 退出系统6 源程序清单#include <stdio.h>#include <stdlib.h>#include <windows.h>#include <string.h>typedef struct xc int num;/物品编码

10、 char name20;/物品名称 int xcnum;/物品数量 struct node *next;node ,*LinkList;LinkList prior (LinkList L,LinkList p)LinkList pr=L;while(pr->next!=p)pr=pr->next;return pr;void insert (LinkList L, LinkList Elem)LinkList p=L->next;while(p!=NULL&&Elem->num>=p->num)if(p->num=Elem->

11、num) printf("重复输入n");p=p->next;if(p=NULL)p=prior(L,p);Elem->next=NULL;p->next=Elem;elsep=prior(L,p);Elem->next=p->next;p->next=Elem;LinkList creatLink() /创建表LinkList L=(LinkList)malloc(sizeof(node);L->next=NULL;LinkList p;int code;int num;char name20;printf("请输入物品

12、编码、物品名称和物品数量,建立库存信息表n");printf("n*提示:输入编号为负时结束录入*nn");printf("请输入物品编码:");scanf("%d",&code);printf("请输入物品名称:");char temp=getchar();gets(name); printf("请输入物品数量:");scanf("%d",&num);while(1)p=(LinkList)malloc(sizeof(node);p->cod

13、e=code;p->num=num;strcpy(p->name,name);insert(L,p);/num+;printf("请输入物品编码:");scanf("%d",&code);if (code <= 0)break;printf("请输入物品名称:");char temp=getchar();gets(name);printf("请输入物品数量:");scanf("%d",&num);printf("n信息正在储存.n");Sle

14、ep(1000);return(L);void printList(LinkList L) /打印输出L表printf("n -n"); printf("n 物品编码 物品名称 物品数量 n");printf(" -n");LinkList p=L;int n=1;if(L=NULL|L->next=NULL) printf("仓库中没有存货n");elsewhile(p->next!=NULL)printf(" %8d %4d",n,p->next->code); pr

15、intf(" %4s %4dn",p->next->name,p->next->num);p=p->next;n+;printf(" -n");void delElem(LinkList L,int i) /删除表中的元素LinkList p=L;int j=0;while(p->next&&j<i-1)p=p->next;j+;if(!(p->next)printf("第%d个元素删除失败n",i);LinkList q=p->next;p->next

16、=q->next;free(q);int delName(LinkList L,char n) /利用Name删除表中的元素int flag=0; LinkList p=L->next;seat=1;if(L->next=NULL) printf("该链表中没有元素n");elsewhile(p!=NULL)if(!strcmp(p->name,n)flag=1;printf("%s",p->name);p=p->next;delElem(L,seat);elsep=p->next;seat+;if(flag)

17、printf("被删除n");return flag;int delNum(LinkList L,int n) /利用Num删除表中的元素int flag=0; LinkList p=L->next;seat=1;if(L->next=NULL|L=NULL) printf("该链表中没有元素n");elsewhile(p!=NULL)if(p->code<=n)if(p->code=n)flag=1;printf("%d",p->code);p=p->next;delElem(L,seat)

18、;elsep=p->next;seat+;if(flag) printf("被删除n");return flag;int searchName(LinkList L,char n) /利用字段Name查找表L中的元素int flag=0; LinkList p=L->next;/seat=1;if(L->next=NULL|L=NULL) printf("该链表中没有元素n");elsewhile(p!=NULL)if(!strcmp(p->name,n)flag=1;/printf("查找的是第%d个商品:n"

19、;,seat);printf("Code:%d Name:%s Num:%dn",p->code,p->name,p->num); p=p->next;/seat+;return flag;int searchCode(LinkList L,int n) /利用物品的Code查找表中的元素int flag=0; LinkList p=L->next;seat=1;if(L->next=NULL) printf("该链表中没有元素n");elsewhile(p!=NULL)if(p->code<=n)if(p

20、->code=n)flag=1;printf("查找的是第%d个商品:n",seat);printf("Code:%d Name:%s Num:%d n",p->code,p->name,p->num);p=p->next;seat+;return flag;int main() /页面显示函数system("cls"); /清屏函数system("color b0");LinkList L=NULL;printf("n *欢迎使用仓库库存信息管理系统*n");pr

21、intf("n");printf(" * 1 建立库存信息表 *n");printf("n");printf(" * 2 新物品信息入库 *n");printf("n");printf(" * 3 查询库存信息记录 *n");printf("n");printf(" * 4 物品出库信息记录 *n");printf("n"); printf(" * 5 显示库存信息 *n");printf(&qu

22、ot;n");printf(" * 0 退出管理系统 *n");printf("n");printf("n *欢迎使用仓库库存信息管理系统*n");printf("n");printf(" 请选择操作: ");printf("n");int flag=0;int menu; printf("请选择0-5: ");scanf("%d",&menu);while(menu!=0)switch(menu)case 1:L=c

23、reatLink();printf("建立库存信息表:");printList(L);flag=1;printf("nn 10秒后跳转到主页.n");Sleep(10000);break;case 2:if(flag=1)int code,num;char name20; printf("请输入物品编号、物品名称和物品数量:n"); printf("请输入物品编号:"); scanf("%d",&code); printf("请输入物品名称:"); char temp

24、=getchar(); gets(name);printf("请输入物品数量:"); scanf("%d",&num);LinkList p=(LinkList)malloc(sizeof(node);p->code=code;p->num=num;strcpy(p->name,name);insert(L,p);printf("插入后:");printList(L);printf("nn 5秒后跳转到主页.n");Sleep(5000);break;case 3:int way,n,s;

25、char name20;if(L!=NULL)if(flag)printf("选择查找方式:n");printf(" 1.按物品编号 2.按物品名称");printf("选择_bb");scanf("%d",&way);if(way=1)printf("n请输入物品编号:");scanf("%d",&n);s=searchCode(L,n);if(s=0)printf("无此商品!n");else if(way=2)printf("

26、;n请输入物品名称:");char temp=getchar(); gets(name);s=searchName(L,name);if(s=0)printf("无此商品!n");elseprintf("无库存!n");break;elseprintf("无库存!n");printf("nn 5秒后跳转到主页.n");Sleep(5000);break;case 4:int way;printf("选择删除方式:n");printf(" 1.按序号 2.按物品编号 3.按物品

27、名称 n");scanf("%d",&way);if(way=1)int n;printf("请输入序号:");scanf("%d",&n);printf("删除后:n");delElem(L,n);printList(L);else if(way=2)int n,f;printf("请输入物品编号:");scanf("%d",&n);f=delNum(L,n);if(f!=0)printf("删除后:n");printL

28、ist(L);elseprintf("无该商品!n");else if(way=3)char name20;int f;printf("请输入物品名称:");char temp=getchar(); gets(name);f=delName(L,name);if(f!=0)printf("删除后:n");printList(L);elseprintf("无该商品!n");else printf("Error!n");printf("nn 5秒后跳转到主页.n");Sleep(5000);break;case 5:printf("当前库存信息如下:n");printList(L);printf("nn 5秒后跳转到主页.n");Sleep(5000);break;cas

温馨提示

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

评论

0/150

提交评论