仓库库存管理系统源程序.docx

上传人:b****3 文档编号:24916492 上传时间:2023-06-02 格式:DOCX 页数:16 大小:16.75KB
下载 相关 举报
仓库库存管理系统源程序.docx_第1页
第1页 / 共16页
仓库库存管理系统源程序.docx_第2页
第2页 / 共16页
仓库库存管理系统源程序.docx_第3页
第3页 / 共16页
仓库库存管理系统源程序.docx_第4页
第4页 / 共16页
仓库库存管理系统源程序.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

仓库库存管理系统源程序.docx

《仓库库存管理系统源程序.docx》由会员分享,可在线阅读,更多相关《仓库库存管理系统源程序.docx(16页珍藏版)》请在冰豆网上搜索。

仓库库存管理系统源程序.docx

仓库库存管理系统源程序

仓库库存管理系统源程序

#include

#include

#include

#include

intshoudsave=0;

structitem//物品信息定义

{

charcode[10];//物品编码

charname[20];//物品名称

intnum;//商品数量

intlevel;//物品等级

}item;

typedefstructnode

{

structitemdata;

structnode*next;

}Node,*Link;//定义为链表

voidmenu()//页面显示函数

{

system("cls");//清屏函数

printf("***********************************《物品库存管理》*****************************\n");

printf("\n");

printf("\n<1>物品入库管理\n\t\n<2>物品出库管理\n");

printf("\n<3>浏览库内物品信息\n\t\n<4>修改物品信息\n");

printf("\n<5>保存物品信息\n\t\n<0>退出库存管理\n");

printf("\n");

cout<<"********************************************************************************"<

printf("\n请选择操作:

");

}

voidprintstart()

{

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

}

voidWrong()//错误处理函数

{

printf("输入错误!

\n");

getchar();

getchar();

menu();

return;

}

voidNofind()

{

printf("没有找到该物品!

\n");

}

voidprintc()//本函数用于输出中文

{

printf("物品编码物品名称物品数量物品等级\n");

}

voidprinte(Node*p)//输出物品信息函数

{

cout<data.code<<""<data.name<<""<data.num<<""<data.level;

}

Node*Locate(Linkl,charfindmess[],charnameorcode[])//用于定位连接中,符合要求的结点,并返回该指针

{

Node*r;

if(strcmp(nameorcode,"code")==0)//

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.code,findmess)==0)

returnr;

r=r->next;

}

}

else

if(strcmp(nameorcode,"name")==0)//按名称查询

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.name,findmess)==0)

returnr;

r=r->next;

}

}

return0;

}

voidAdd(Linkl)//增加物品函数

{

Node*p,*r,*s;

charcode[10];

r=l;

s=l->next;

while(r->next!

=NULL)

r=r->next;

while(l)

{

system("cls");//清屏函数

cout<<"请输入商品编码(输入'0'返回上一级菜单):

"<

scanf("%s",code);

if(strcmp(code,"0")==0)

break;

while(s)

{

if(strcmp(s->data.code,code)==0)

{

printf("物品编码为'%s'的物品已经存在,如果要修改请选择'4修改'!

\n",code);

printstart();

printc();

printe(s);

printstart();

printf("\n");

return;

}

s=s->next;

}

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

strcpy(p->data.code,code);

 

printf("请输入物品名称:

");

scanf("%s",p->data.name);

getchar();

printf("请输入物品数量:

");

scanf("%d",&p->data.num);

printf("请输入物品等级:

");

scanf("%d",&p->data.level);

p->next=NULL;

r->next=p;

r=p;

shoudsave=1;

}

menu();

}

voidQur(Linkl)//查询物品信息函数

{

intsel;

charfindmess[20];

Node*p;

if(!

l->next)

{

printf("\n没有信息可查询!

\n");

getchar();

getchar();

menu();

return;

}

system("cls");//清屏函数

printf("\n1按物品编码查询\n2按物品名称查询\n");

scanf("%d",&sel);

if(sel==1)//

{

printf("请输入要查询的编码:

\n");

scanf("%s",findmess);

p=Locate(l,findmess,"code");

if(p)

{

printf("\t\t\t\t查询结果\n");

printstart();

cout<

printc();

cout<

printe(p);

cout<

printstart();

getchar();

getchar();

menu();

return;

}

else

Nofind();

}

else

if(sel==2)//

{

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

");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{

printf("\t\t\t查询结果\n");

printstart();

cout<

printc();

cout<

printe(p);

cout<

printstart();

getchar();

getchar();

menu();

return;

}

else

Nofind();

}

else

Wrong();

getchar();

system("cls");//清屏函数

menu();

}

voidDel(Linkl)//删除

{

intsel;

Node*p,*r;

charfindmess[20];

if(!

l->next)

{

system("cls");//清屏函数

printf("\n您的仓库为空!

\n");

getchar();

getchar();

menu();

return;

}

system("cls");//清屏函数

printf("\n1按物品编码出仓\n2按物品名称出仓\n");

scanf("%d",&sel);

if(sel==1)

{

printf("请输入要出仓的物品编码:

");

scanf("%s",findmess);

p=Locate(l,findmess,"code");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n该物品已经成功出仓\n");

shoudsave=1;

getchar();

getchar();

menu();

return;

}

else

Nofind();

}

else

if(sel==2)

{

system("cls");//清屏函数

printf("请输入要出仓的物品名:

");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n该物品已经成功出仓!

\n");

shoudsave=1;

getchar();

getchar();

menu();

return;

}

else

Nofind();

}

else

Wrong();

}

voidModify(Linkl)//物品信息修改

{

Node*p;

charfindmess[20];

if(!

l->next)

{

system("cls");//清屏函数

printf("\n您的库存为空,无需修改!

\n");

getchar();

getchar();

menu();

return;

}

printf("请输入要修改的物品编码:

");

scanf("%s",findmess);

p=Locate(l,findmess,"code");

if(p)

{

system("cls");//清屏函数

printf("请输入新编码(原来的是%s):

",p->data.code);

scanf("%s",p->data.code);

printf("请输入新名称(原来的是%s):

",p->data.name);

scanf("%s",p->data.name);

getchar();

printf("请输入新的物品数量(原来的是%d):

",p->data.num);

scanf("%d",&p->data.num);

getchar();

printf("请输入新的物品等级(原来的是%d):

",p->data.level);

scanf("%d",&p->data.level);

getchar();

printf("\n修改资料成功!

\n");

shoudsave=1;

getchar();

menu();

return;

}

else

Nofind();

getchar();

menu();

}

voidDisp(Linkl)

{

intcount=0;

Node*p;

p=l->next;

if(!

p)

{

printf("\n没有资料可以显示!

\n");

getchar();

getchar();

menu();

return;

}

printf("\t\t\t\t显示结果\n");

printstart();

printc();

printf("\n");

while(p)

{

printe(p);

p=p->next;

}

printstart();

printf("\n");

}

voidSave(Linkl)//物品信息保存

{

FILE*fp;

Node*p;

intflag=1,count=0;

fp=fopen("c:

\\student","wb");

if(fp==NULL)

{

printf("\n重新打开文件时错误!

\n");

exit

(1);

}

p=l->next;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)

{

p=p->next;

count++;

}

else

{

flag=0;

break;

}

}

if(flag)

{

system("cls");//清屏函数

printf("\n文件保存成功.(有%d条记录保存成功.)\n",count);

shoudsave=0;

getchar();

getchar();

menu();

}

fclose(fp);

}

voidmain()//主函数

{

menu();

Linkl;//链表

Node*r;

intsel;

charch;

intcount=0;

l=(Node*)malloc(sizeof(Node));

l->next=NULL;

r=l;

while(l)

{

scanf("%d",&sel);

if(sel==0)

{

if(shoudsave==1)

{

getchar();

printf("\n资料已改动,是否将改动的文件保存到文件中(yorn)?

\n");

scanf("%c",&ch);

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

Save(l);

}

printf("\n已退出系统!

\n");

break;

}

switch(sel)

{

case1:

Add(l);break;//物品进库

case2:

Del(l);break;//物品出库

case3:

Qur(l);break;//查询物品

case4:

Modify(l);break;//修改物品信息

case5:

Save(l);break;//保存物品信息

default:

Wrong();getchar();break;

}

}

}

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

当前位置:首页 > 考试认证 > 其它考试

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

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