数据结构课程设计仓库管理系统源程序Word文件下载.docx
- 文档编号:8121192
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:15
- 大小:41.22KB
数据结构课程设计仓库管理系统源程序Word文件下载.docx
《数据结构课程设计仓库管理系统源程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计仓库管理系统源程序Word文件下载.docx(15页珍藏版)》请在冰点文库上搜索。
Node*first,*real,*p,*q;
intmain()
{
intt=1,flag=1,f=1;
charn;
Node*p;
LinkKu;
while(t)
printf("
\n\n\n\n\n"
);
printf("
\n\t\t\t**********************************"
\n\t\t\t*
XXX仓库管理系统
*"
1---
存储货物
2---
查询货物信息
3---
取出货物
4
显示仓库所有货物信息
0---
退出仓库管理系统
\n\t\t\t
请选择菜单号(0--4):
"
f=1;
while(f==1)
cin»
n;
if(n<
'
0'
||n>
4)
printf(”输入有误,请重新输入(0--4):
f=1;
}
else
f=0;
\n\n”);
switch(n)
case'
1'
:
**********************************\n"
//printf('
i**********************************\n"
inta=1;
while(a==1){
a=Ku.lnsert();
Ku.Fprintf();
〃将单链表里的数据写入文件。
break;
case2:
flag=1;
charyn;
while(flag==1)
p=Ku.Search();
if(p)
\n货物编号货物名称货物数量\n"
\n"
printf(”
%5s%9s%8d\n"
p->
data.no,p->
data.name,p->
data.count);
printf("
\n"
仓库中没有该货物!
是否继续查询?
(y/n):
yn=Ku.Yn();
if(yn=='
y'
||yn=='
Y'
)
n'
N'
flag=0;
case3:
charyn;
while(flag==1){
Ku.Delete();
是否继续取货?
yn=Ku.Yn();
〃调用输入y/n函数if(yn=='
case4:
Ku.show();
O'
printf(”确定退出仓库管理系统吗?
”);
〃调用输入y/n函数
谢谢使用...\n"
t=0;
t=1;
return0;
Link:
Link()
first=newNode;
first->
next=NULL;
real=first;
FILE*fp=NULL;
fp=fopen("
d:
\\fileO1.txt"
"
a"
fclose(fp);
//Fprintf();
Fscanf();
intLink:
Insert()
charno[10],name[30];
intcount,t;
\n货物编号货物名称(30)货物数量⑸
\n请输入货物编号(10个字符以):
strcpy(no,No());
\n输入货物名称(30个字符以):
name;
printf(”输入货物数量(整数):
是否继续存货?
(y)或取消存货(n):
cin>
>
count;
if(count<
=0)
printf(”货物数量必须大于0,请重新”);
p=first;
p=p->
next;
while(p)
if(strcmp(p->
data.no,no)==0&
&
strcmp(p->
data.name,name)==0)
〃printf("
仓库中已有该货物%d件\n”,p->
data.count);
p->
data.count=p->
data.count+count;
添加成功!
仓库中现有该货物%d件\n
(y/n):
p_>
yn=Yn();
if(yn=='
||yn=='
)return1;
n'
||yn=='
)return0;
data.name,name)!
该货物的名称输入有误,应为%s\n请重新输入
data.name);
data.no,no)!
=0&
该货物的编号输入有误,应为%s\n请重新输入
data.no);
real=p;
if(p==NULL)
Node*s=newNode;
strcpy(s->
data.no,no);
data.name,name);
s->
data.count=count;
next=NULL;
real->
next=s;
real=s;
仓库中现有该货物%d件\n是否继续存货?
real->
Node*Link:
Search()
charab;
intf;
==================\n"
a.按货物编号查询\n"
b.按货物名称查询\n"
请选择(a/b):
ab;
if(ab=='
a'
||ab=='
A'
b'
B'
\n请输入货物编号(10个字符):
while(p&
\n请输入货物名称(30个字符):
=0)p=p->
输入有误,请重新输入(a/b):
returnp;
voidLink:
Delete()
Node*q,*p;
p=Search();
\n仓库中有该货物%d件。
”,p->
intflag=1;
\n请输入要取出的货物数量(整数):
while(t==1)
if(count<
0)
(整数):
”);
取货数量不能为负数,请重新输入取货数量}
if(count>
p->
data.count)
\n输入的取货数量超过库存,是否要重新输入取货数量?
)flag=1;
)flag=0;
data.count-count;
Fprintf();
//修改文件里的数据。
\n取货成功!
仓库中还有该货物%d件\n"
\n是否继续取出该货物?
q=first;
while(q!
=NULL&
q->
next!
=p)
q=q_>
q_>
next=p->
deletep;
//将单链表里的数据写入文件。
该货物已被全部取出!
\n”);
show()
if(first->
next==NULL)
仓库没有货物!
”);
printf(”货物编号货物名称货物数量
printf(”\n"
p=first->
%15s%23s%23d\n"
data.no,p->
data.name,p->
data.count);
p=p->
charLink:
Yn()
intf=1;
yn;
returnyn;
输入有误,请重新输入(y/n):
char*Link:
No()
intt=1,i;
char*no=NULL,no1[10];
no1;
no=no1;
for(i=0;
no[i];
i++){
if(no[i]<
'
||no[i]>
9'
货物编号只能由0-9的字符组成,请重新输入货物编号(10个字
符):
returnno1;
Fprintf()
\\file01.txt"
w"
p=first->
while(p!
=NULL)
fprintf(fp,"
%10s%30s%10d\n"
Fscanf()
Node*s;
r"
if(fp==NULL)
cout<
<
不能打开文件!
"
endl;
exit(0);
while(feof(fp)==0)
s=newNode;
fscanf(fp,"
%s%s%d\n"
s->
data.no,s->
data.name,&
if(s->
data.count>
p=s;
fclose(fp);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 仓库 管理 系统 源程序