C语言课程设计 仓库管理系统_c语言数据库课程设计
C语言课程设计 仓库管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言数据库课程设计”。
C语言课程设计 仓库管理系统
#include
struct cangku {
int num;
char name[20];
char introdution[50];
float square;
};typedef struct cangku Cangku;
int Input(Cangku t[]);void List(Cangku t[],int n);void SearchOnName(Cangku t[],int n);int DeleteRecord(Cangku t[],int n);int AlterRecord(Cangku t[],int n);int AddRecord(Cangku t[],int n);void SortOnName(Cangku t[],int n);void SortOnSquare(Cangku t[],int n);void SaveRecord(Cangku t[],int n);int LoadRecord(Cangku t[]);int LoadRecord1(Cangku t[]);void Save(Cangku t[],int n);void Load(Cangku t[],int n);void Load1(Cangku t[]);int Menu_select();
void main(){
Cangku ck[50];int i,l,length,w=1;int q[4]={5,2,1,0};
system(“cls”);printf(“请输入第1个密码:n”);for(i=0;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())
{
case 1:
length=Input(ck);
SaveRecord(ck,length);
break;
case 2:
length=LoadRecord(ck);
SearchOnName(ck,length);
break;
case 3:
length=LoadRecord(ck);
length=DeleteRecord(ck,length);
SaveRecord(ck,length);
break;
case 4:
length=LoadRecord(ck);
length=AlterRecord(ck,length);
SaveRecord(ck,length);
break;
case 5:
length=LoadRecord(ck);
length=AddRecord(ck,length);
SaveRecord(ck,length);
break;
case 6:
length=LoadRecord(ck);
system(“cls”);
List(ck,length);
break;
case 7:
length=LoadRecord(ck);
system(“cls”);
SortOnName(ck,length);
SaveRecord(ck,length);
break;
case 8:
length=LoadRecord(ck);
system(“cls”);
SortOnSquare(ck,length);
SaveRecord(ck,length);
break;
case 9:
length=LoadRecord(ck);
system(“cls”);
Save(ck,length);
break;
case 0:
length=LoadRecord1(ck);
Load1(ck);
system(“cls”);
Load(ck,length);
break;
case 10: exit(0);
}
} }
int Menu_select(){ int c;
printf(“按任意键进入仓库管理菜单n”);
getchar();
system(“cls”);
system(“color F0”);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(c10);return c;}
int Input(Cangku t[]){ int i,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);}
void List(Cangku t[],int n){ int i;
printf(“
*********************************************************************n”);
printf(“
**
编号
名称
面积
说明n”);
printf(“
-------n”);for(i=0;i
printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);}
printf(“
*********************************************************************n”);
printf(“n”);getchar();} void SearchOnName(Cangku t[],int n){ char s[20];
int i,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(“nn要查找的仓库信息如下:n”);
printf(“n”);
printf(“
*********************************************************************n”);
printf(“
**
编号
名称
面积
说明n”);
printf(“
-------n”);{
printf(“%17d%13s%20f%14sn”,t[i].num,t[i].name,t[i].square,t[i].introdution);}
printf(“
*********************************************************************n”);
printf(“n”);
} }
if(flag==0)
printf(“要查找的仓库不存在!n”);getchar();} int DeleteRecord(Cangku t[],int n){
char s[20];
char ch;
int i,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(“nn要删除的仓库信息如下:n”);
printf(“n”);
printf(“
*********************************************************************n”);
printf(“
**
编号
名称
面积
说明n”);
printf(“
-------n”);{
printf(“%17d%13s%20f%14sn”,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;j
t[j]=t[j+1];
n--;
i--;
printf(“删除成功.n”);
}
}
}
if(flag==0)
printf(“要删除的仓库不存在!n”);
getchar();
return n;}
int AlterRecord(Cangku t[],int n){
int i,flag=0;
char s[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(“nn要修改的仓库信息如下:n”);
printf(“n”);
printf(“
*********************************************************************n”);
printf(“
**
编号
名称
面积
说明n”);
printf(“
-------n”);
{
printf(“%17d%13s%20f%14sn”,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();
return n;}
int AddRecord(Cangku t[],int n){
int i,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);}
void SortOnName(Cangku t[],int n){ int i,j;
struct cangku temp;
for(j=1;j
for(i=0;i
if((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);}
void SortOnSquare(Cangku t[],int n){ int i,j;
struct cangku temp;
for(j=1;j
for(i=0;i
if(t[i].square
{
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
printf(“排序成功!!n”);
printf(“排序后仓库信息列表如下:n”);
List(t,n);}
void SaveRecord(Cangku t[],int n){ int i;
FILE *fp;
if((fp=fopen(“record.txt”,“w”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);}
for(i=0;i
{
fwrite(&t[i],sizeof(struct cangku),1,fp);
}
fclose(fp);}
int LoadRecord(Cangku t[]){
int n=0;
FILE *fp;
if((fp=fopen(“record.txt”,“a+”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);}
while(fread(&t[n],sizeof(struct cangku),1,fp))n++;
fclose(fp);
printf(“从文件中成功读出记录!!n”);
return n;} int LoadRecord1(Cangku t[]){
int n=0;
FILE *fp;
if((fp=fopen(“bkrecord.txt”,“a+”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);}
while(fread(&t[n],sizeof(struct cangku),1,fp))n++;
fclose(fp);
printf(“从文件中成功读出记录!!n”);
return n;} void Save(Cangku t[],int n){ int i;
FILE *fp;
if((fp=fopen(“bkrecord.txt”,“w”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);}
for(i=0;i
{
fwrite(&t[i],sizeof(struct cangku),1,fp);
}
fclose(fp);
printf(“备份成功.n”);
getchar();}
void Load1(Cangku t[]){
int n=0;
FILE *fp;
if((fp=fopen(“bkrecord.txt”,“a+”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);
} while
(fread(&t[n],sizeof(struct cangku),1,fp))n++;
fclose(fp);
getchar();}
void Load(Cangku t[],int n){ int i;
FILE *fp;
if((fp=fopen(“record.txt”,“w”))==NULL)
{
printf(“不能打开文件!n”);
exit(1);}
for(i=0;i
{
fwrite(&t[i],sizeof(struct cangku),1,fp);
}
fclose(fp);
printf(“恢复成功.n”);}1