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

上传人:b****4 文档编号:18463092 上传时间:2022-12-16 格式:DOCX 页数:13 大小:321.55KB
下载 相关 举报
数据结构仓库管理系统Word格式.docx_第1页
第1页 / 共13页
数据结构仓库管理系统Word格式.docx_第2页
第2页 / 共13页
数据结构仓库管理系统Word格式.docx_第3页
第3页 / 共13页
数据结构仓库管理系统Word格式.docx_第4页
第4页 / 共13页
数据结构仓库管理系统Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

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

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

#include"

iostream"

intflag1=0;

#include"

string.h"

stdlib.h"

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=='

{

p=(ListNode*)malloc(sizeof(ListNode));

//申新结点

printf("

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

);

-----------------------------------------------\n"

\n添加商品编号:

\n"

cin>

>

p->

data.NO;

\n添加商品名称:

data.name;

\n添加商品数量:

data.count;

rear->

next=p;

//新结点连接到尾结点之后

rear=p;

//尾指针指向新结点

继续添加记录?

(y/n):

"

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->

//p2指向表的下一个结点

p1->

//插入p所指向的结点

p->

next=p2;

//连接表中剩余的结点

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

ListNode*ListFind(LinkListhead)

ListNode*p;

charnum[10];

charname[9];

charpp;

printf("

==================\n"

a.按商品编号查询\n"

b.按商品名称查询\n"

请选择:

"

p=head->

cin>

pp;

getchar();

if(pp=='

a'

||pp=='

A'

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

num;

while(p&

strcmp(p->

data.NO,num)<

0)p=p->

if((p==NULL)||strcmp(p->

data.NO,num)>

0)p=NULL;

//没有查到要查找的通讯信息

else

b'

B'

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

name;

while(p&

data.name,name)!

=0)p=p->

returnp;

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

voidDelNode(LinkListhead)

charjx;

ListNode*p,*q;

p=ListFind(head);

//调用查找函数

if(p==NULL)

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

return;

}

if(p!

=NULL)printf("

真的要删除该商品吗?

jx;

if(jx=='

||jx=='

Y'

q=head;

while((q!

=NULL)&

(q->

next!

=p))q=q->

q->

next=p->

//删除结点

free(p);

//释放被删结点空间

删除成功!

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

voidPrintList(LinkListhead)

商品编号商品名称商品数量\n"

--------------------------------------------------------------------------------\n"

while(p!

=NULL)

%15s%20s%23s\n"

p->

data.name,p->

data.count);

---------------------------------------------------------------------------------\n"

p=p->

//后移一个结点

voidmain()

{

intchoice,j=1;

charChoice;

while(j)

\n\n\n\n\n"

\t\t\t\t仓库管理系统\n"

\n\t\t\t******************************"

\n\t\t\t*1---仓库管理链表建立*"

\n\t\t\t*2---仓库管理链表插入*"

\n\t\t\t*3---仓库管理链表查询*"

\n\t\t\t*4---仓库管理链表删除*"

\n\t\t\t*5---仓库管理链表输出*"

\n\t\t\t*0---退出仓库管理系统*"

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

choice;

getchar();

switch(choice)

{

case1:

{

printf("

**********************************\n"

*仓库管理链表建立*\n"

head=CreateList();

flag1=1;

system("

cls"

break;

}

case2:

if(flag1!

=1){printf("

请先建立表!

Sleep(1500);

*仓库管理链表插入*\n"

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

*************************************\n"

p=(ListNode*)malloc(sizeof(ListNode));

//申请新结点

cin>

InsertNode(head,p);

case3:

else

{

printf("

***********************************\n"

*仓库管理链表查询*\n"

p=ListFind(head);

if(p!

=NULL)

{

printf("

商品编号商品名称商品数量\n"

--------------------------------------------------\n"

%s,%s,%s\n"

---------------------------------------------------\n"

}

elseprintf("

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

}

case4:

{

*仓库管理链表删除*\n"

DelNode(head);

case5:

************************************\n"

*仓库管理链表输出*\n"

PrintList(head);

case0:

j=0;

system("

break;

default:

printf("

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

Sleep(1500);

}

(此文档部分内容来源于网络,如有侵权请告知删除,文档可自行编辑修改内容,供参考,感谢您的支持)

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

当前位置:首页 > 人文社科 > 文学研究

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1