《C语言课程设计-设备管理系统(共9页).doc》由会员分享,可在线阅读,更多相关《C语言课程设计-设备管理系统(共9页).doc(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上#include #include #include #include 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()
2、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
3、, %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;itot;i+) if (!di.dlt) fprintf(fp,%s %s %s %s %s %s %sn,di.dno,di.dname,di.downer,di.ddpartment,di.damoun
4、t,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:prin
5、tf(您输入的信息有误!请检查后重新输入n); void lkp()system(cls);int i;printf( 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n);for(i=0;itot;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键返回菜单栏)
6、n);printf( 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n);for(i=0;i=1 & i=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
7、);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 ch2
8、0,s;int i;printf(请输入你要删除的设备的编号:(0键返回菜单烂)n);printf( 设备号 设备名称 领用人 所属部门 数量 购买时间 价格n);for(i=0;i=1 & i=1 & j=3)break;else if(j=0)system(cls);return;else puts(您输入的信息有误!请检查后重新输入n);system(cls);switch (j) case 1:lkp();for(i=0;itot;i+)if(di.dlt=0)sum=atoi(di.dprice)*atoi(di.damount)+sum;printf(当前设备的总价值为%d。n,s
9、um);break; case 2:lkp();printf(设备所属部门统计结果为:n 所属部门 数量 总价值n);for(i=0;itot;i+)sum=0;n=0;strcpy(temp,di.ddpartment);for(j=0;jj)break;else if(strcmp(temp,dj.ddpartment)=0&ij)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.ddpart
10、ment,n,sum);break; case 3:lkp();printf(设备种类统计结果为:n 设备名 数量 总价值n);for(i=0;itot;i+)sum=0;n=0;strcpy(temp,di.dname);for(j=0;jj)break;else if(strcmp(temp,dj.dname)=0&ij)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);专心-专注-专业