《2022年数据结构仓库管理系统终版》由会员分享,可在线阅读,更多相关《2022年数据结构仓库管理系统终版(11页珍藏版)》请在金锄头文库上搜索。
1、仓库管理系统1. 题目要求设计一个仓库管理系统, 可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。struct node char NO; /商品编号 char namemax; /商品名称 char count; /商品数量; 2. 应用程序功能开始运行时界面如下:仓库管理链表建立界面如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 11 页 - - - - - - - - - 仓库管理链表插入界面如下:仓库管理链表查询界面如下:名师资料总结 - - -
2、精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 11 页 - - - - - - - - - 仓库管理链表删除界面如下:仓库管理链表输出界面如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 11 页 - - - - - - - - - 3. 输入数据类型、格式和内容限制输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。4. 主要模块的算法
3、描述流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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; /商品名称 c
4、har count5; /商品数量 DataType; typedef struct node /结点类型定义 DataType data; /结点数据域名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 11 页 - - - - - - - - - struct node *next; /结点指针域 ListNode; typedef ListNode *LinkList; LinkList head; ListNode *p; LinkList CreateList(vo
5、id); void InsertNode(LinkList head,ListNode *p); ListNode *ListFind(LinkList head); void DelNode(LinkList head); void PrintList(LinkList head); /*尾插法建立带头结点的仓库管理链表算法*/ LinkList CreateList(void) LinkList head=(ListNode *)malloc(sizeof(ListNode); /申请头结点ListNode *p,*rear; char flag=y; /int flag=0; /结束标志
6、置 0 rear=head; /尾指针初始指向头结点while (flag=y) p=(ListNode *)malloc(sizeof(ListNode); /申新结点printf( 商 品 编号 (10) 商 品 名 称 (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
7、(继续添加记录 ?(y/n):); cinflag; rear-next=NULL; /终端结点指针置空return head; /返回链表头指针 /*在仓库管理链表 head 中插入结点 */ void InsertNode(LinkList head,ListNode *p) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 11 页 - - - - - - - - - ListNode *p1,*p2; p1=head; p2=p1-next; while(p2!=N
8、ULL & 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); printf( b. 按商品名称查询 n); printf(=n); printf( 请 选 择: ); p=head-next; cin
9、pp; 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; return p; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - -
10、- - - - - - - - - - 名师精心整理 - - - - - - - 第 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-
11、next!=p) q=q-next; q-next=p-next; /删除结点free(p); /释放被删结点空间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; /后移一个结点名师资料总结 - - -精
12、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 11 页 - - - - - - - - - void main() int choice,j=1; char Choice; while(j) printf(nnnnn); printf(tttt仓库管理系统 n); printf(nttt*); printf(nttt* 1- 仓库管理链表建立 *); printf(nttt* 2- 仓库管理链表插入 *); printf(nttt* 3- 仓库管理链表查询 *); printf(nttt* 4-
13、 仓库管理链表删除 *); printf(nttt* 5- 仓库管理链表输出 *); printf(nttt* 0- 退出仓库管理系统 *); printf(nttt*); printf(nttt请选择菜单号 (0-5):); cinchoice; getchar(); switch(choice) case 1: printf(*n); printf(* 仓库管理链表建立 *n); printf(*n); head=CreateList( ); flag1=1; system(cls); break; case 2: if(flag1!=1) printf(请先建立表 !); Sleep(1
14、500); printf(*n); printf(* 仓库管理链表插入 *n); printf(*n); printf(商品编号 (10) 商品名称 (30) 商品数量 n); printf(* n); p=(ListNode *)malloc(sizeof(ListNode); /申请新结点printf(n添加商品编号 :n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 11 页 - - - - - - - - - cinp-data.NO; printf(n添加
15、商品名称 :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.NO,
16、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 页 -
17、- - - - - - - - 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 页 - - - - - - - - -