《2022年数据结构仓库管理系统终版 .pdf》由会员分享,可在线阅读,更多相关《2022年数据结构仓库管理系统终版 .pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、仓库管理系统1.题目要求设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。struct node char NO;/商品编号 char namemax;/商品名称 char count;/商品数量;2.应用程序功能开始运行时界面如下:仓库管理链表建立界面如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 11 页 -仓库管理链表插入界面如下:仓库管理链表查询界面如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 11 页 -仓库管理链表删除界面如下:仓库管理链表输出界面如下:名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页
2、,共 11 页 -3.输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。4.主要模块的算法描述流程图:名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 11 页 -5.源程序代码#include#includeiostream int flag1=0;#include string.h#include stdlib.h#include windows.h using namespace std;typedef struct /仓库管理结点类型 char NO10;/商品编号 char name30;/商品名称 char c
3、ount5;/商品数量 DataType;typedef struct node /结点类型定义 DataType data;/结点数据域名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 11 页 -struct node*next;/结点指针域 ListNode;typedef ListNode*LinkList;LinkList head;ListNode*p;LinkList CreateList(void);void InsertNode(LinkList head,ListNode*p);ListNode*ListFind(LinkList head);void DelN
4、ode(LinkList head);void PrintList(LinkList head);/*尾插法建立带头结点的仓库管理链表算法*/LinkList CreateList(void)LinkList head=(ListNode*)malloc(sizeof(ListNode);/申请头结点ListNode*p,*rear;char flag=y;/int flag=0;/结束标志置 0 rear=head;/尾指针初始指向头结点while(flag=y)p=(ListNode*)malloc(sizeof(ListNode);/申新结点printf(商 品 编号(10)商 品 名
5、称(30)商品 数 量(5)n);printf(-n);printf(n添加商品编号:n);cinp-data.NO;printf(n添加商品名称:n);cinp-data.name;printf(n添加商品数量:n);cinp-data.count;rear-next=p;/新结点连接到尾结点之后rear=p;/尾指针指向新结点printf(继续添加记录?(y/n):);cinflag;rear-next=NULL;/终端结点指针置空return head;/返回链表头指针/*在仓库管理链表 head 中插入结点*/void InsertNode(LinkList head,ListNode
6、*p)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 11 页 -ListNode*p1,*p2;p1=head;p2=p1-next;while(p2!=NULL&strcmp(p2-data.NO,p-data.NO)next;/p2指向表的下一个结点 p1-next=p;/插入 p 所指向的结点 p-next=p2;/连接表中剩余的结点/*有序仓库管理链表的查找 */ListNode *ListFind(LinkList head)ListNode*p;char num10;char name9;char pp;printf(=n);printf(a.按商品编号查询 n);
7、printf(b.按商品名称查询 n);printf(=n);printf(请 选 择:);p=head-next;cinpp;getchar();if(pp=a|pp=A)printf(请输入要查找的商品编号:);cinnum;while(p&strcmp(p-data.NO,num)next;if(p=NULL)|strcmp(p-data.NO,num)0)p=NULL;/没有查到要查找的通讯信息 else if(pp=b|pp=B)printf(请输入要查找的商品名称:);cinname;while(p&strcmp(p-data.name,name)!=0)p=p-next;retu
8、rn p;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 11 页 -/*仓库管理链表上的结点删除*/void DelNode(LinkList head)char jx;ListNode*p,*q;p=ListFind(head);/调用查找函数if(p=NULL)printf(没有查到要删除的商品信息!n);return;if(p!=NULL)printf(真的要删除该商品吗?(y/n):);cinjx;if(jx=y|jx=Y)q=head;while(q!=NULL)&(q-next!=p)q=q-next;q-next=p-next;/删除结点free(p);/释放被删
9、结点空间printf(删除成功!n);/*仓库管理链表的输出函数*/void PrintList(LinkList head)ListNode*p;p=head-next;printf(商品编号商品名称商品数量 n);printf(-n);while(p!=NULL)printf(%15s%20s%23sn,p-data.NO,p-data.name,p-data.count);printf(-n);p=p-next;/后移一个结点名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 11 页 -void main()int choice,j=1;char Choice;while(j
10、)printf(nnnnn);printf(tttt仓库管理系统 n);printf(nttt*);printf(nttt*1-仓库管理链表建立 *);printf(nttt*2-仓库管理链表插入 *);printf(nttt*3-仓库管理链表查询 *);printf(nttt*4-仓库管理链表删除 *);printf(nttt*5-仓库管理链表输出 *);printf(nttt*0-退出仓库管理系统 *);printf(nttt*);printf(nttt请选择菜单号(0-5):);cinchoice;getchar();switch(choice)case 1:printf(*n);pri
11、ntf(*仓库管理链表建立 *n);printf(*n);head=CreateList();flag1=1;system(cls);break;case 2:if(flag1!=1)printf(请先建立表!);Sleep(1500);printf(*n);printf(*仓库管理链表插入 *n);printf(*n);printf(商品编号(10)商品名称(30)商品数量 n);printf(*n);p=(ListNode*)malloc(sizeof(ListNode);/申请新结点printf(n添加商品编号:n);名师资料总结-精品资料欢迎下载-名师精心整理-第 9 页,共 11 页
12、 -cinp-data.NO;printf(n添加商品名称:n);cinp-data.name;printf(n添加商品数量:n);cinp-data.count;InsertNode(head,p);system(cls);break;case 3:if(flag1!=1)printf(请先建立表!);Sleep(1500);else printf(*n);printf(*仓库管理链表查询 *n);printf(*n);p=ListFind(head);if(p!=NULL)printf(商品编号商品名称商品数量 n);printf(-n);printf(%s,%s,%sn,p-data.N
13、O,p-data.name,p-data.count);printf(-n);else printf(没有查到要查询的商品信息!n);break;case 4:if(flag1!=1)printf(请先建立表!);Sleep(1500);else printf(*n);printf(*仓库管理链表删除 *n);printf(*n);DelNode(head);/删除结点 break;名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 11 页 -case 5:if(flag1!=1)printf(请先建立表!);Sleep(1500);else printf(*n);printf(*仓库管理链表输出 *n);printf(*n);PrintList(head);break;case 0:j=0;system(cls);break;default:printf(ttn 输入有错,请重新输入!n);Sleep(1500);system(cls);break;名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 11 页 -