2020-03-03 03:47:57 来源:范文大全收藏下载本文
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%14s\\n\",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(\"\\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(); } 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(\"\\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;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(\"\\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();
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
1
人人范文网 m.inrrp.com.cn 手机版