数据结构课程设计仓库管理系统源程序.docx

上传人:b****3 文档编号:6604158 上传时间:2023-05-10 格式:DOCX 页数:15 大小:41.22KB
下载 相关 举报
数据结构课程设计仓库管理系统源程序.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

数据结构课程设计仓库管理系统源程序

#include

usingnamespacestd;

typedefstruct{

charno[10];

charname[30];

intcount;

}DataType;

structNode{

DataTypedata;

Node*next;

};

classLink{

public:

Link();//构造函数,建立单链表

intlnsert();//插入节点,即添加货物

Node*Search。

;//查找某个节点

voidDelete();//删除节点或更改节点的数据voidshow();//输出节点信息charYn();//输入(y/n)函数

char*No();//输入货物编号函数

voidFprintf();//将单链表数据写到文件中

voidFscanf();//读取文件中的数据

private:

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

printf("\n\t\t\t*

XXX仓库管理系统

*"

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*

0---

退出仓库管理系统

*");

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

printf("\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;

}

printf("\n\n”);

switch(n)

{

case'1':

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

printf("**********************************\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)

{

printf("\n货物编号货物名称货物数量\n");

\n");

printf(”

printf("%5s%9s%8d\n",p->data.no,p->data.name,p->data.count);printf("\n");

}

else

printf("仓库中没有该货物!

\n");

printf("是否继续查询?

(y/n):

");

yn=Ku.Yn();

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

flag=1;

if(yn=='n'||yn=='N')

flag=0;

}

break;

}

case3:

flag=1;

charyn;while(flag==1){

Ku.Delete();

printf("是否继续取货?

(y/n):

");

yn=Ku.Yn();〃调用输入y/n函数if(yn=='y'||yn=='Y')

flag=1;

if(yn=='n'||yn=='N')

flag=0;

}

break;

case4:

{

Ku.show();

break;

}

case'O':

{

charyn;

printf(”确定退出仓库管理系统吗?

(y/n):

”);

yn=Ku.Yn();〃调用输入y/n函数

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

{

printf("谢谢使用...\n");

t=0;

}

if(yn=='n'||yn=='N')

{

t=1;

}

break;

}

}

}

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

{

charyn;

charno[10],name[30];

intcount,t;

\n");

printf("\n货物编号货物名称(30)货物数量⑸

printf("\n");

printf("\n请输入货物编号(10个字符以):

\n");

strcpy(no,No());

printf("\n输入货物名称(30个字符以):

\n");

cin»name;

t=1;

while(t)

{

printf(”输入货物数量(整数):

");

是否继续存货?

(y)或取消存货(n):

(y)或取消存货(n):

cin>>count;

if(count<=0)

{

t=1;

printf(”货物数量必须大于0,请重新”);

}

else

t=0;

}

p=first;real=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;

printf("添加成功!

仓库中现有该货物%d件\n

(y/n):

",p_>data.count);

yn=Yn();

if(yn=='y'||yn=='Y')return1;

if(yn=='n'||yn=='N')return0;

}

if(strcmp(p->data.no,no)==0&&strcmp(p->data.name,name)!

=0)

{

printf("该货物的名称输入有误,应为%s\n请重新输入

",p->data.name);

yn=Yn();

if(yn=='y'||yn=='Y')return1;

if(yn=='n'||yn=='N')return0;

}

if(strcmp(p->data.no,no)!

=0&&strcmp(p->data.name,name)==0)

{

printf("该货物的编号输入有误,应为%s\n请重新输入

",p->data.no);

yn=Yn();

if(yn=='y'||yn=='Y')return1;

if(yn=='n'||yn=='N')return0;

}

real=p;

p=p->next;

}

if(p==NULL)

Node*s=newNode;

strcpy(s->data.no,no);

strcpy(s->data.name,name);

s->data.count=count;

s->next=NULL;

real->next=s;

real=s;

printf("添加成功!

仓库中现有该货物%d件\n是否继续存货?

(y/n):

",real->data.count);

yn=Yn();

if(yn=='y'||yn=='Y')return1;

if(yn=='n'||yn=='N')return0;

}

return0;

}

Node*Link:

:

Search()

{

charab;

charno[10],name[30];

intf;

p=first;

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

printf("a.按货物编号查询\n");

printf("b.按货物名称查询\n");

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

printf("请选择(a/b):

");

f=1;

while(f==1)

{

cin>>ab;

if(ab=='a'||ab=='A'||ab=='b'||ab=='B')

{

f=0;

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

{

printf("\n请输入货物编号(10个字符):

\n");

strcpy(no,No());

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

=0)

p=p->next;

}

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

printf("\n请输入货物名称(30个字符):

”);

cin»name;

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

=0)p=p->next;

}

}

else

{

f=1;

printf("输入有误,请重新输入(a/b):

");

}

}

returnp;

}

voidLink:

:

Delete()

{

Node*q,*p;

intcount,t;

charyn;

p=Search();

if(p==NULL)

{

printf("仓库中没有该货物!

\n");

}

else

{

printf("\n仓库中有该货物%d件。

”,p->data.count);

intflag=1;

while(flag==1)

{

printf("\n请输入要取出的货物数量(整数):

");

t=1;

while(t==1)

{

cin>>count;

if(count<0)

{

t=1;

(整数):

”);

printf("取货数量不能为负数,请重新输入取货数量}

else

t=0;

}

if(count>p->data.count)

{

printf("\n输入的取货数量超过库存,是否要重新输入取货数量?

(y/n):

");

yn=Yn();

if(yn=='y'||yn=='Y')flag=1;

if(yn=='n'||yn=='N')flag=0;

}

else

{

flag=0;

if(countdata.count)

{

p->data.count=p->data.count-count;

Fprintf();//修改文件里的数据。

printf("\n取货成功!

仓库中还有该货物%d件\n",p->data.count);

printf("\n是否继续取出该货物?

(y/n):

”);

yn=Yn();

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

flag=1;

if(yn=='n'||yn=='N')

flag=0;

}

else

{

q=first;

while(q!

=NULL&&q->next!

=p)

q=q_>next;

q_>next=p->next;

deletep;

Fprintf();//将单链表里的数据写入文件。

printf("\n取货成功!

该货物已被全部取出!

\n”);

}

}

}

}

}

voidLink:

:

show()

{

if(first->next==NULL)

printf("仓库没有货物!

”);

else

{

printf(”货物编号货物名称货物数量

\n");

printf(”\n");

p=first->next;

while(p)

{

printf("%15s%23s%23d\n",p->data.no,p->data.name,p->data.count);p=p->next;

printf(”\n");

}

}

}

charLink:

:

Yn()

{

intf=1;

charyn;

while(f==1)

{

cin»yn;

if(yn=='y'||yn=='Y'||yn=='n'||yn=='N')

{

f=0;

returnyn;

}

else

{

f=1;

printf("输入有误,请重新输入(y/n):

");

}

}

}

char*Link:

:

No()

{

intt=1,i;

char*no=NULL,no1[10];

while(t)

{

t=0;

cin»no1;

no=no1;

for(i=0;no[i];i++){

if(no[i]<'0'||no[i]>'9')

{

t=1;

printf("货物编号只能由0-9的字符组成,请重新输入货物编号(10个字

符):

”);

break;

}

}

}

returnno1;

}

voidLink:

:

Fprintf()

{

FILE*fp=NULL;

fp=fopen("d:

\\file01.txt","w");

p=first->next;

while(p!

=NULL)

{

fprintf(fp,"%10s%30s%10d\n",p->data.no,p->data.name,p->data.count);

p=p->next;

}

fclose(fp);

}

voidLink:

:

Fscanf()

{

FILE*fp=NULL;

p=first;

Node*s;

fp=fopen("d:

\\file01.txt","r");

if(fp==NULL)

{

cout<<"不能打开文件!

"<

exit(0);

}

while(feof(fp)==0)

{

s=newNode;

fscanf(fp,"%s%s%d\n",s->data.no,s->data.name,&s->data.count);

if(s->data.count>0)

{

p->next=s;

p=s;

}

}

p->next=NULL;fclose(fp);

}

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

当前位置:首页 > 农林牧渔 > 林学

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

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