《C语言课程设计仓库管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计仓库管理系统.doc(11页珍藏版)》请在三一文库上搜索。
1、C 语言课程设计仓库管理系统#includestruct cangkuint num;char name20;char introdution50;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 Sort
2、OnName(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 ck50;int i,l,length,w=1;int q4=5,2,1,0;system("
3、;cls");printf(" 请输入第 1 个密码 :n");for (i=0;i<4;i+)scanf("%d",&l);system("cls");if(l=qi)printf(" 正确 ,继续输入第 %d 个密码 :.n",i+2);elsew=0;printf (" 输入错误 !n");break;while(w)switch(Menu_select()case 1:length=Input(ck);SaveRecord(ck,length);break;cas
4、e 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(c
5、k,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;c
6、ase 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");pr
7、intf("*仓 库管 理*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");print
8、f("*9.备 份*n");printf("*0.恢 复*n");printf("*10.退 出*n");printf("*n");doprintf("n 输入您想要进行的操作选项键(0-10):");if(scanf("%d",&c)!=1)while(getchar()!='n')continue;while(c<0|c>10);return c;int Input(Cangku t)int i,n;system("cls&q
9、uot;);printf("n 请输入要输入的仓库数目:n");scanf("%d",&n);printf(" 开始输入仓库信息 :n");for(i=0;i<n;i+)system("cls");printf("n 第 %d 个仓库的编号 :",i+1);scanf ("%d",&ti.num);printf(" 第%d 个仓库的名称 :",i+1);scanf ("%s",ti.name);printf(&qu
10、ot; 第%d 个仓库的面积 :",i+1);scanf ("%f",&ti.square);printf(" 第%d 个仓库的说明 :",i+1);scanf ("%s",ti.introdution);return (n);void List(Cangku t,int n)int i;printf("*n");printf("*编 号名称面积说明 n");printf("-n");for(i=0;i<n;i+)printf("%17d%1
11、3s%20f%14sn",ti.num,ti.name,ti.square,ti.introdution);printf("* n");printf ("n");getchar();void SearchOnName(Cangku t,int n)char s20;int i,flag=0;system("cls");printf(" 请输入要查找的仓库名称:n");scanf("%s",s);for(i=0;i<n;i+)if(strcmp(s,ti.name)=0)flag=
12、1;system("cls");printf("nn 要查找的仓库信息如下 :n");printf("n");printf("*n");printf("*编 号名称面积说明 n");printf("-n");printf("%17d%13s%20f%14sn",ti.num,ti.name,ti.square,ti.introdution);printf("*n");printf ("n");if(flag=0)pr
13、intf(" 要查找的仓库不存在 !n");getchar();int DeleteRecord(Cangku t,int n)char s20;char ch;int i,j,flag=0;system("cls");printf(" 请输入要删除的仓库名称n");scanf("%s",s);for(i=0;i<n;i+)if(strcmp(s,ti.name)=0)flag=1;system("cls");printf("nn 要删除的仓库信息如下 :n");pri
14、ntf("n");printf("*n");printf("*编 号名称面积说明 n");printf("-n");printf("%17d%13s%20f%14sn",ti.num,ti.name,ti.square,ti.introdution);printf("*n");printf ("n");printf(" 确定删除仓库信息吗 ?(Y/N)n");ch=getchar();ch=getchar();if(ch='Y&
15、#39;|ch='y')for(j=i;j<n-1;j+)tj=tj+1;n-;i-;printf (" 删除成功 .n");if(flag=0)printf(" 要删除的仓库不存在 !n");getchar();return n;int AlterRecord(Cangku t,int n)int i,flag=0;char s20,ch;system("cls");printf(" 请输入要修改的仓库名称n");scanf("%s",s);for(i=0;i<n;
16、i+)if(strcmp(s,ti.name)=0)flag=1;system("cls");printf("nn 要修改的仓库信息如下:n");printf("n");printf("*n");printf("*编号名称面积说明 n");printf("-n");printf("%17d%13s%20f%14sn",ti.num,ti.name,ti.square,ti.introdution);printf("*n");printf
17、 ("n");printf(" 确定修改仓库信息吗? (Y/N)n");ch=getchar();ch=getchar();if(ch='y'|ch='Y')system("cls");printf(" 请输入修改后的信息 :n");printf(" 请输入仓库新的名称 :");scanf("%s",ti.name);printf(" 请输入 %s仓库新的编号 :",ti.name);scanf("%d"
18、,&ti.num);printf(" 请输入 %s仓库新的面积 :",ti.name);scanf("%f",&ti.square);printf(" 请输入 %s仓库新的说明 :",ti.name);scanf("%s",ti.introdution);if(flag=0)printf(" 要修改的仓库不存在!n");getchar();return n;int AddRecord(Cangku t,int n)int i,m;system("cls");p
19、rintf("n 请输入再增加的记录数:n");scanf("%d",&m);printf(" 开始追加记录 n");for(i=n;i<n+m;i+) system("cls");printf("n 第%d 个仓库的编号 :",i+1);scanf("%d",&ti.num);printf(" 第%d 个仓库的名称 :",i+1);scanf("%s",ti.name);printf(" 第%d 个仓库
20、的面积 :",i+1);scanf("%f",&ti.square);printf(" 第%d 个仓库的说明 :",i+1);scanf("%s",ti.introdution);return (n+m);void SortOnName(Cangku t,int n)int i,j;struct cangku temp ;for(j=1;j<n;j+)for(i=0;i<n-j;i+)if(strcmp(ti.name,ti+1.name)>0)temp=ti;ti=ti+1;ti+1=temp;p
21、rintf(" 排序成功 !n");printf(" 排序后仓库信息列表如下:n");List(t,n);void SortOnSquare(Cangku t,int n)int i,j;struct cangku temp ;for(j=1;j<n;j+)for(i=0;i<n-j;i+)if(ti.square<ti+1.square)temp=ti;ti=ti+1;ti+1=temp;printf(" 排序成功 !n");printf(" 排序后仓库信息列表如下:n");List(t,n);
22、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<n;i+)fwrite(&ti,sizeof(struct cangku),1,fp);fclose(fp);int LoadRecord(Cangku t)int n=0;FILE *fp;if(fp=fopen("record.txt","a+&quo
23、t;)=NULL)printf(" 不能打开文件 !n");exit(1);while(fread(&tn,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(f
24、read(&tn,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<n;i+)fwrite(&ti,sizeof(struct cangku),1,fp);fclo
25、se(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(&tn,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<n;i+)fwrite(&ti,sizeof(struct cangku),1,fp);fclose(fp);printf(" 恢复成功 .n");111