C语言知识课程规划设计设备管理计划系统.doc
-+#include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void menu();/功能选择void lkp();/查看信息void chng();/修改信息void dlt();/删除信息void add();/添加信息void read();/读取文件void write();/写入文件void count();/统计信息struct dvc char dno20,dname20,downer20,ddpartment20,damount20,dtime20,dprice20; int dlt; d200;int tot,sum;int main()system("color fc");system("mode con cols=146 lines=40");puts(" *"); puts(" *欢迎使用设备管理系统!*");puts(" *");read();/将保存至外存中的文件读进内存 menu(); /用户功能选择 write(); /将内存里的所有信息覆写回外存文件中system("cls");puts("感谢您的使用"); return 0;void read() tot=0; FILE *fp=fopen("D:inf.txt","r");if(fp=NULL)fp=fopen("D:inf.txt","w");fclose(fp);while (fscanf(fp," %s %s %s %s %s %s %s",dtot.dno,dtot.dname,dtot.downer,dtot.ddpartment,dtot.damount,dtot.dtime,dtot.dprice)!=EOF) dtot+.dlt=0; fclose(fp);void write() int i; FILE *fp=fopen("D:inf.txt","w"); for (i=0;i<tot;i+) if (!di.dlt) fprintf(fp,"%s %s %s %s %s %s %sn",di.dno,di.dname,di.downer,di.ddpartment,di.damount,di.dtime,di.dprice); fclose(fp);void menu() char a; while (1) puts("请选择需要的功能:"); puts(" 1.查看所有设备信息n 2.修改设备信息n 3.删除设备信息n 4.增加设备信息n 5.统计设备信息n 0.退出系统"); a=getch(); switch (a) case 0:return; case 1:lkp();break; case 2:chng();break; case 3:dlt();break; case 4:add();break; case 5:count();break; default:printf("您输入的信息有误!请检查后重新输入n"); void lkp()system("cls");int i;printf(" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<tot;i+)if(di.dlt=0)printf("%20s%20s%20s%20s%20s%20s%20sn",di.dno,di.dname,di.downer,di.ddpartment,di.damount,di.dtime,di.dprice);void chng()system("cls");char s,ch20;int i,j;printf("请输入您要修改的设备的编号:(0键返回菜单栏)n");printf(" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<tot;i+)printf("%4d.%20s%20s%20s%20s%20s%20s%20sn",i+1,di.dno,di.dname,di.downer,di.ddpartment,di.damount,di.dtime,di.dprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=tot)break;else if(i=0)system("cls");return;else puts("您输入的信息有误!请检查后重新输入n");if(di-1.dlt=1)printf("该设备已经被删除!n");return;printf("请输入您要修改的内容的编号:n1.设备号n2.设备名称n3.领用人n4.所属部门n5.数量n6.购买时间n7.价格n0.返回菜单栏n");while (1)scanf("%s",ch);j=atoi(ch);if (j>=1 && j<=7)break;else if(i=0)system("cls");return;else puts("您输入的信息有误!请检查后重新输入n");printf("请输入您要修改的信息:n");switch (j) case 1:scanf("%s",di-1.dno);break; case 2:scanf("%s",di-1.dname);break; case 3:scanf("%s",di-1.downer);break; case 4:scanf("%s",di-1.ddpartment);break; case 5:scanf("%s",di-1.damount);break;case 6:scanf("%s",di-1.dtime);break;case 7:scanf("%s",di-1.dprice);break; printf("请问是否要继续修改?(Y/N)n");while (1)getchar();gets(&s);if (s=Y|s=N|s=y|s=n)break;else puts("您输入的信息有误!请检查后重新输入n");if(s=Y|s=y)chng();else if(s=N|s=n)system("cls");void dlt()system("cls");char ch20,s;int i;printf("请输入你要删除的设备的编号:(0键返回菜单烂)n");printf(" 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n");for(i=0;i<tot;i+)if(di.dlt=0)printf("%4d.%20s%20s%20s%20s%20s%20s%20sn",i+1,di.dno,di.dname,di.downer,di.ddpartment,di.damount,di.dtime,di.dprice);while (1)scanf("%s",ch);i=atoi(ch);if (i>=1 && i<=tot)break;else if(i=0)system("cls");return;else puts("您输入的信息有误!请检查后重新输入n");di-1.dlt=1;printf("请问是否要继续删除?(Y/N)n");while (1)getchar();gets(&s);if (s=Y|s=N|s=y|s=n)break;else puts("您输入的信息有误!请检查后重新输入n");if(s=Y|s=y)dlt();else if(s=N|s=n)system("cls");void add()char s;system("cls");printf("请输入您要添加的设备号:n");scanf("%s",dtot.dno);printf("请输入您要添加的设备的名称:n");scanf("%s",dtot.dname);printf("请输入您要添加的设备的领用人:n"); scanf("%s",dtot.downer);printf("请输入您要添加的设备的所属部门:n"); scanf("%s",dtot.ddpartment);printf("请输入您要添加的设备的数量:n"); scanf("%s",dtot.damount);printf("请输入您要添加的设备的购买时间:n");scanf("%s",dtot.dtime);printf("请输入您要添加的设备的价格:n");scanf("%s",dtot.dprice);dtot.dlt=0;tot+=1;printf("请问是否要继续添加?(Y/N)n");while (1)getchar();gets(&s);if (s=Y|s=N|s=y|s=n)break;else puts("您输入的信息有误!请检查后重新输入n");if(s=Y|s=y)add();else if(s=N|s=n)system("cls");void count()system("cls");char ch20,temp20,s;int i,j,n;sum=0;printf("请选择统计的方式:n1.所有设备的总价值。n2.设备所属部门。n3.设备种类。n0.返回菜单栏n");while (1)scanf("%s",ch);j=atoi(ch);if (j>=1 && j<=3)break;else if(j=0)system("cls");return;else puts("您输入的信息有误!请检查后重新输入n");system("cls");switch (j) case 1:lkp();for(i=0;i<tot;i+)if(di.dlt=0)sum=atoi(di.dprice)*atoi(di.damount)+sum;printf("当前设备的总价值为%d。n",sum);break; case 2:lkp();printf("设备所属部门统计结果为:n 所属部门 数量 总价值n");for(i=0;i<tot;i+)sum=0;n=0;strcpy(temp,di.ddpartment);for(j=0;j<tot;j+)if(strcmp(temp,dj.ddpartment)=0&&i>j)break;else if(strcmp(temp,dj.ddpartment)=0&&i<j&&dj.dlt=0)sum=sum+atoi(dj.damount)*atoi(dj.dprice);n=n+atoi(dj.damount);if(strcmp(temp,dj.ddpartment)=0&&i>j)continue;if(di.dlt=0)sum=sum+atoi(di.damount)*atoi(di.dprice);n=n+atoi(di.damount);if(sum=0)continue;printf("%20s%20d%20dn",di.ddpartment,n,sum);break; case 3:lkp();printf("设备种类统计结果为:n 设备名 数量 总价值n");for(i=0;i<tot;i+)sum=0;n=0;strcpy(temp,di.dname);for(j=0;j<tot;j+)if(strcmp(temp,dj.dname)=0&&i>j)break;else if(strcmp(temp,dj.dname)=0&&i<j&&dj.dlt=0)sum=sum+atoi(dj.damount)*atoi(dj.dprice);n=n+atoi(dj.damount);if(strcmp(temp,dj.dname)=0&&i>j)continue;if(di.dlt=0)sum=sum+atoi(di.damount)*atoi(di.dprice);n=n+atoi(di.damount);if(sum=0)continue;printf("%20s%20d%20dn",di.dname,n,sum);break;printf("请问是否要继续统计?(Y/N)n");while (1)getchar();gets(&s);if (s=Y|s=N|s=y|s=n)break;else puts("您输入的信息有误!请检查后重新输入n");if(s=Y|s=y)count();else if(s=N|s=n)system("cls");