数据结构仓库管理系统.docx

上传人:b****2 文档编号:1411945 上传时间:2023-04-30 格式:DOCX 页数:15 大小:270.80KB
下载 相关 举报
数据结构仓库管理系统.docx_第1页
第1页 / 共15页
数据结构仓库管理系统.docx_第2页
第2页 / 共15页
数据结构仓库管理系统.docx_第3页
第3页 / 共15页
数据结构仓库管理系统.docx_第4页
第4页 / 共15页
数据结构仓库管理系统.docx_第5页
第5页 / 共15页
数据结构仓库管理系统.docx_第6页
第6页 / 共15页
数据结构仓库管理系统.docx_第7页
第7页 / 共15页
数据结构仓库管理系统.docx_第8页
第8页 / 共15页
数据结构仓库管理系统.docx_第9页
第9页 / 共15页
数据结构仓库管理系统.docx_第10页
第10页 / 共15页
数据结构仓库管理系统.docx_第11页
第11页 / 共15页
数据结构仓库管理系统.docx_第12页
第12页 / 共15页
数据结构仓库管理系统.docx_第13页
第13页 / 共15页
数据结构仓库管理系统.docx_第14页
第14页 / 共15页
数据结构仓库管理系统.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构仓库管理系统.docx

《数据结构仓库管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构仓库管理系统.docx(15页珍藏版)》请在冰点文库上搜索。

数据结构仓库管理系统.docx

数据结构仓库管理系统

仓库管理系统

1.题目要求

设计一个仓库管理系统,可以按照顺序和货物名称查询仓库的存储情也可以增加或删除货物。

structnode

{

charNO;//商品编号

charname[max];//商品名称

charcount;//商品数量

};

2.应用程序功能

开始运行时界面如下:

仓库管理链表建立界面如下:

仓库管理链表插入界面如下:

仓库管理链表查询界面如下:

仓库管理链表删除界面如下:

仓库管理链表输出界面如下:

3.输入数据类型、格式和内容限制

输入数据类型为字符型,但在输入过程中不可出现空格,如在输入商品名称时不可出现空格。

4.主要模块的算法描述

流程图:

5.源程序代码

#include

#include"iostream"

intflag1=0;

#include"string.h"

#include"stdlib.h"

#include"windows.h"

usingnamespacestd;

typedefstruct{//仓库管理结点类型

charNO[10];//商品编号

charname[30];//商品名称

charcount[5];//商品数量

}DataType;

typedefstructnode{//结点类型定义

DataTypedata;//结点数据域

structnode*next;//结点指针域

}ListNode;

typedefListNode*LinkList;

LinkListhead;

ListNode*p;

LinkListCreateList(void);

voidInsertNode(LinkListhead,ListNode*p);

ListNode*ListFind(LinkListhead);

voidDelNode(LinkListhead);

voidPrintList(LinkListhead);

/*******尾插法建立带头结点的仓库管理链表算法*******/

LinkListCreateList(void)

{

LinkListhead=(ListNode*)malloc(sizeof(ListNode));//申请头结点

ListNode*p,*rear;

charflag='y';//intflag=0;//结束标志置0

rear=head;//尾指针初始指向头结点

while(flag=='y')

{

p=(ListNode*)malloc(sizeof(ListNode));//申新结点

printf("商品编号(10)商品名称(30)商品数量(5)\n");

printf("-----------------------------------------------\n");

printf("\n添加商品编号:

\n");

cin>>p->data.NO;

printf("\n添加商品名称:

\n");

cin>>p->data.name;

printf("\n添加商品数量:

\n");

cin>>p->data.count;

rear->next=p;//新结点连接到尾结点之后

rear=p;//尾指针指向新结点

printf("继续添加记录?

(y/n):

");

cin>>flag;

}

rear->next=NULL;//终端结点指针置空

returnhead;//返回链表头指针

}

 

/*********在仓库管理链表head中插入结点************/

voidInsertNode(LinkListhead,ListNode*p)

{

ListNode*p1,*p2;

p1=head;

p2=p1->next;

while(p2!

=NULL&&strcmp(p2->data.NO,p->data.NO)<0)

{

p1=p2;//p1指向刚访问过的结点

p2=p2->next;//p2指向表的下一个结点

}

p1->next=p;//插入p所指向的结点

p->next=p2;//连接表中剩余的结点

}

/**********有序仓库管理链表的查找****************/

ListNode*ListFind(LinkListhead)

{

ListNode*p;

charnum[10];

charname[9];

charpp;

printf("==================\n");

printf("a.按商品编号查询\n");

printf("b.按商品名称查询\n");

printf("==================\n");

printf("请选择:

");

p=head->next;

cin>>pp;

getchar();

if(pp=='a'||pp=='A')

{

printf("请输入要查找的商品编号:

");

cin>>num;

while(p&&strcmp(p->data.NO,num)<0)p=p->next;

if((p==NULL)||strcmp(p->data.NO,num)>0)p=NULL;//没有查到要查找的通讯信息

}

else

if(pp=='b'||pp=='B')

{

printf("请输入要查找的商品名称:

");

cin>>name;

while(p&&strcmp(p->data.name,name)!

=0)p=p->next;

}

returnp;

}

/********仓库管理链表上的结点删除*****************/

voidDelNode(LinkListhead)

{

charjx;

ListNode*p,*q;

p=ListFind(head);//调用查找函数

if(p==NULL)

{

printf("没有查到要删除的商品信息!

\n");

return;

}

if(p!

=NULL)printf("真的要删除该商品吗?

(y/n):

");

cin>>jx;

if(jx=='y'||jx=='Y')

{

q=head;

while((q!

=NULL)&&(q->next!

=p))q=q->next;

q->next=p->next;//删除结点

free(p);//释放被删结点空间

printf("删除成功!

\n");

}

}

/********仓库管理链表的输出函数**********/

voidPrintList(LinkListhead)

{

ListNode*p;

p=head->next;

printf("商品编号商品名称商品数量\n");

printf("--------------------------------------------------------------------------------\n");

while(p!

=NULL)

{

printf("%15s%20s%23s\n",p->data.NO,p->data.name,p->data.count);

printf("---------------------------------------------------------------------------------\n");

p=p->next;//后移一个结点

}

}

voidmain()

{

intchoice,j=1;

charChoice;

while(j)

{

printf("\n\n\n\n\n");

printf("\t\t\t\t仓库管理系统\n");

printf("\n\t\t\t******************************");

printf("\n\t\t\t*1---仓库管理链表建立*");

printf("\n\t\t\t*2---仓库管理链表插入*");

printf("\n\t\t\t*3---仓库管理链表查询*");

printf("\n\t\t\t*4---仓库管理链表删除*");

printf("\n\t\t\t*5---仓库管理链表输出*");

printf("\n\t\t\t*0---退出仓库管理系统*");

printf("\n\t\t\t******************************");

printf("\n\t\t\t请选择菜单号(0--5):

");

cin>>choice;

getchar();

switch(choice)

{

case1:

{

printf("**********************************\n");

printf("*仓库管理链表建立*\n");

printf("**********************************\n");

head=CreateList();

flag1=1;

system("cls");

break;

}

case2:

{

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");

cin>>p->data.NO;

printf("\n添加商品名称:

\n");

cin>>p->data.name;

printf("\n添加商品数量:

\n");

cin>>p->data.count;

InsertNode(head,p);

system("cls");

break;

}

case3:

{

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,%s\n",p->data.NO,p->data.name,p->data.count);

printf("---------------------------------------------------\n");

}

elseprintf("没有查到要查询的商品信息!

\n");

}

break;

}

case4:

{

if(flag1!

=1){printf("请先建立表!

");Sleep(1500);}

else

{

printf("***********************************\n");

printf("*仓库管理链表删除*\n");

printf("***********************************\n");

DelNode(head);//删除结点

}

break;

}

case5:

{

if(flag1!

=1){printf("请先建立表!

");Sleep(1500);}

else

{

printf("************************************\n");

printf("*仓库管理链表输出*\n");

printf("************************************\n");

PrintList(head);

}

break;

}

case0:

j=0;system("cls");break;

default:

printf("\t\t\n输入有错,请重新输入!

\n");Sleep(1500);system("cls");break;

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2