仓库管理系统源代码.docx
《仓库管理系统源代码.docx》由会员分享,可在线阅读,更多相关《仓库管理系统源代码.docx(17页珍藏版)》请在冰豆网上搜索。
仓库管理系统源代码
仓库管理系统源代码
#include
#include
#include
#include
#include
structcangku
{
intnum;
charname[20];
charintrodution[50];
floatsquare;
};
typedefstructcangkuCangku;
intInput(Cangkut[]);
voidList(Cangkut[],intn);voidSearchOnName(Cangkut[],intn);intDeleteRecord(Cangkut[],intn);intAlterRecord(Cangkut[],intn);intAddRecord(Cangkut[],intn);voidSortOnName(Cangkut[],intn);voidSortOnSquare(Cangkut[],intn);voidSaveRecord(Cangkut[],intn);intLoadRecord(Cangkut[]);intLoadRecord1(Cangkut[]);voidSave(Cangkut[],intn);voidLoad(Cangkut[],intn);voidLoad1(Cangkut[]);
intMenu_select();
voidmain()
{
Cangkuck[50];
inti,l,length,w=1;
intq[4]={5,2,1,0};
system("cls");
printf("请输入第1个密码:
\n");
for(i=0;i<4;i++)
{
scanf("%d",&l);
system("cls");
if(l==q[i])
printf("正确,继续输入第%d个密码:
.\n",i+2);
else
{
w=0;
printf("输入错误!
\n");
break;
}
}
while(w)
{
switch(Menu_select())
{
case1:
length=Input(ck);
SaveRecord(ck,length);
break;
case2:
length=LoadRecord(ck);
SearchOnName(ck,length);
break;
case3:
length=LoadRecord(ck);
length=DeleteRecord(ck,length);
SaveRecord(ck,length);
break;
case4:
length=LoadRecord(ck);
length=AlterRecord(ck,length);
SaveRecord(ck,length);
break;
case5:
length=LoadRecord(ck);
length=AddRecord(ck,length);
SaveRecord(ck,length);
break;
case6:
length=LoadRecord(ck);
system("cls");
List(ck,length);
break;
case7:
length=LoadRecord(ck);
system("cls");
SortOnName(ck,length);
SaveRecord(ck,length);
break;
case8:
length=LoadRecord(ck);
system("cls");
SortOnSquare(ck,length);
SaveRecord(ck,length);
break;
case9:
length=LoadRecord(ck);
system("cls");
Save(ck,length);
break;
case0:
length=LoadRecord1(ck);
Load1(ck);
system("cls");
Load(ck,length);
break;
case10:
exit(0);
}
}
}
intMenu_select()
{
intc;
printf("按任意键进入仓库管理菜单\n");
getchar();
system("cls");
system("colorF0");
printf("******************************仓库管理
*******************************\n");
printf("*1.录入仓库初始记录*\n");
printf("*2.按仓库名称查找记录*\n");
printf("*3.删除仓库记录*\n");
printf("*4.修改仓库记录*\n");
printf("*5.增加仓库信息*\n");
printf("*6.显示全部记录*\n");
printf("*7.按仓库名称排序
*\n");
printf("*8.按仓库面积排序
*\n");
printf("*9.备份
*\n");
printf("*0.恢复
*\n");
printf("*10.退出
*\n");
printf("
*********************************************************************\n");
do
{
printf("\n输入您想要进行的操作选项键(0-10):
");
if(scanf("%d",&c)!
=1)
{
while(getchar()!
='\n')
continue;
}
}
while(c<0||c>10);
returnc;
}
intInput(Cangkut[])
{
inti,n;
system("cls");
printf("\n请输入要输入的仓库数目:
\n");
scanf("%d",&n);
printf("开始输入仓库信息:
\n");
for(i=0;i{
system("cls");
printf("\n第%d个仓库的编号:
",i+1);
scanf("%d",&t[i].num);
printf("第%d个仓库的名称:
",i+1);
scanf("%s",t[i].name);
printf("第%d个仓库的面积:
",i+1);
scanf("%f",&t[i].square);
printf("第%d个仓库的说明:
",i+1);
scanf("%s",t[i].introdution);}
return(n);
}
voidList(Cangkut[],intn)
{
inti;
printf("
*********************************************************************\n");
printf("**编号名称面积说明\n");
printf("
---------------------------------------------------------------------\n");
for(i=0;i{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf("
*********************************************************************\n");
printf("\n");
getchar();
}
voidSearchOnName(Cangkut[],intn){
chars[20];
inti,flag=0;
system("cls");
printf("请输入要查找的仓库名称:
\n");
scanf("%s",s);
for(i=0;i{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要查找的仓库信息如下:
\n");
printf("\n");
printf("
*********************************************************************\n");
printf("**编号名称面积说明
\n");
printf("
---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf("
*********************************************************************\n");
printf("\n");
}
}
if(flag==0)
printf("要查找的仓库不存在!
!
\n");
getchar();
}
intDeleteRecord(Cangkut[],intn)
{
chars[20];
charch;
inti,j,flag=0;
system("cls");
printf("请输入要删除的仓库名称\n");
scanf("%s",s);
for(i=0;i{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要删除的仓库信息如下:
\n");
printf("\n");
printf("
*********************************************************************\n");
printf("**编号名称面积说明
\n");
printf("
---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf("
*********************************************************************\n");
printf("\n");
printf("确定删除仓库信息吗?
(Y/N)\n");
ch=getchar();
ch=getchar();
if(ch=='Y'||ch=='y')
{
for(j=i;jt[j]=t[j+1];
n--;
i--;
printf("删除成功.\n");
}
}
}
if(flag==0)
printf("要删除的仓库不存在!
!
\n");
getchar();
returnn;
}
intAlterRecord(Cangkut[],intn){
inti,flag=0;
chars[20],ch;
system("cls");
printf("请输入要修改的仓库名称\n");
scanf("%s",s);
for(i=0;i{
if(strcmp(s,t[i].name)==0)
{
flag=1;
system("cls");
printf("\n\n要修改的仓库信息如下:
\n");
printf("\n");
printf("*********************************************************************\n");
printf("**编号名称面积
说明\n");
printf("---------------------------------------------------------------------\n");
{
printf("%17d%13s%20f%14s\n",t[i].num,t[i].name,t[i].square,t[i].introdution);
}
printf("
*********************************************************************\n");
printf("\n");
printf("确定修改仓库信息吗,(Y/N)\n");
ch=getchar();
ch=getchar();
if(ch=='y'||ch=='Y')
{
system("cls");
printf("请输入修改后的信息:
\n");
printf("请输入仓库新的名称:
");
scanf("%s",t[i].name);
printf("请输入%s仓库新的编号:
",t[i].name);
scanf("%d",&t[i].num);
printf("请输入%s仓库新的面积:
",t[i].name);
scanf("%f",&t[i].square);
printf("请输入%s仓库新的说明:
",t[i].name);
scanf("%s",t[i].introdution);
}
}
}
if(flag==0)
printf("要修改的仓库不存在~~\n");
getchar();
returnn;
}
intAddRecord(Cangkut[],intn){
inti,m;
system("cls");
printf("\n请输入再增加的记录数:
\n");
scanf("%d",&m);
printf("开始追加记录\n");
for(i=n;i{system("cls");
printf("\n第%d个仓库的编号:
",i+1);
scanf("%d",&t[i].num);
printf("第%d个仓库的名称:
",i+1);
scanf("%s",t[i].name);
printf("第%d个仓库的面积:
",i+1);
scanf("%f",&t[i].square);
printf("第%d个仓库的说明:
",i+1);
scanf("%s",t[i].introdution);
}
return(n+m);
}
voidSortOnName(Cangkut[],intn)
{
inti,j;
structcangkutemp;
for(j=1;jfor(i=0;iif((strcmp(t[i].name,t[i+1].name))>0)
{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf("排序成功!
!
!
\n");
printf("排序后仓库信息列表如下:
\n");
List(t,n);
}
voidSortOnSquare(Cangkut[],intn)
{
inti,j;
structcangkutemp;
for(j=1;jfor(i=0;iif(t[i].square{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf("排序成功!
!
!
\n");
printf("排序后仓库信息列表如下:
\n");
List(t,n);
}
voidSaveRecord(Cangkut[],intn){
inti;
FILE*fp;
if((fp=fopen("record.txt","w"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
for(i=0;i{
fwrite(&t[i],sizeof(structcangku),1,fp);
}
fclose(fp);
}
intLoadRecord(Cangkut[])
{
intn=0;
FILE*fp;
if((fp=fopen("record.txt","a+"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
while(fread(&t[n],sizeof(structcangku),1,fp))n++;
fclose(fp);
printf("从文件中成功读出记录!
!
!
\n");
returnn;
}
intLoadRecord1(Cangkut[]){
intn=0;
FILE*fp;
if((fp=fopen("bkrecord.txt","a+"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
while(fread(&t[n],sizeof(structcangku),1,fp))n++;
fclose(fp);
printf("从文件中成功读出记录!
!
!
\n");
returnn;
}
voidSave(Cangkut[],intn){
inti;
FILE*fp;
if((fp=fopen("bkrecord.txt","w"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
for(i=0;i{
fwrite(&t[i],sizeof(structcangku),1,fp);
}
fclose(fp);
printf("备份成功.\n");
getchar();
}
voidLoad1(Cangkut[]){
intn=0;
FILE*fp;
if((fp=fopen("bkrecord.txt","a+"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
while
(fread(&t[n],sizeof(structcangku),1,fp))n++;
fclose(fp);
getchar();
}
voidLoad(Cangkut[],intn){
inti;
FILE*fp;
if((fp=fopen("record.txt","w"))==NULL)
{
printf("不能打开文件!
\n");
exit
(1);
}
for(i=0;i{
fwrite(&t[i],sizeof(structcangku),1,fp);
}
fclose(fp);
printf("恢复成功.\n");
}