1西安郵電大学软件课程设计报告题目:实验室设备管理系统院系名称:电子工程学院专业名称:电子信息工程班级:1204班内序号:5学生姓名:诺贝尔杨时间:2013年3月18日至2013年3月29日21.课程设计目的实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。主要功能:1.录入设备信息2.修改设备信息3.查询设备信息(1)按设备编号查询(2)按设备名称查询4.对设备按种类进行分类统计5.报废设备登记。6.报废设备统计。2.设计思路需求分析实验室设备信息用文件存储,提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备查询需要提供查找操作,设备的查询可根据设备编号设备种类设备购入日期正常设备(未报废的)等多种方式查询;另外还要根据键盘式选择菜单以实现功能选择。整个系统可设计为实验设备信息输入模块实验设备信息修改模块实验设备分类统计模块实验设备查询模块和实验设备报废信息模块。建立实验设备信息结构体,结构体成员包括设备编号设备种类设备名称设备价格设备购入日期是否报废报废日期。3.功能模块图实验报废设备信息模块实验设备信息输入模块实验设备信息修改模块实验设备信息查询模块实验设备分类统计模块退出实验设备管理系统设计3读取数据主菜单退出系统1录入信息2修改信息3查询信息4分类统计5报废登记6查询信息7报废统计退出系统开始选择错误退出系统,break;4.主函数模块流程图密码45.程序代码#includestdio.h#includestring.h#definenull0intt=0;intmmcsz=0;intmima;intmenu();//菜单voidlr();//录入信息voidxg();//修改voidcx();//查询voidcx_sbh();//设备号查询voidcx_mc();//设备名称查询voidtj();//统计voidbf();//报废信息voidbf_dj();//报废登记voidbf_tj();//报废统计voidchoose();typedefstructshebei{charid[10];charname[15];charkind[15];charover[15];intyesno;chartime[10];charprice[10];}shebei;shebeisb[200];voidlr()//录入信息{while(1){printf(提示:输入0则返回主菜单!\n);printf(\n请你输入设备ID号:);scanf(%s,sb[t].id);if(strcmp(sb[t].id,0)==0)main();printf(\n请输入设备名称:);scanf(%s,sb[t].name);printf(\n请输入设备种类:);scanf(%s,sb[t].kind);printf(\n请输入报废日期:);5scanf(%s,sb[t].over);printf(\n请输入设备是否报废,1、没报废,0、报废:);scanf(%d,&sb[t].yesno);printf(\n请输入设备购买时间:);scanf(%s,sb[t].time);printf(\n请输入设备价格:);scanf(%s,sb[t].price);printf(提示:已经完成一条记录的添加。\n);t++;}}voidxg()//修改{charfind[20];intx;t=0;printf(请输入要修改的设备ID号:);scanf(%s,find);while(1){if(strcmp(sb[t].id,find)==0)//如果找到的话返回的是符合要求{break;}elset++;}while(1){printf(确认修改请输入任意数字否则输入0重新输入设备原id:);scanf(%d,&x);if(x==0)break;else{printf(请输入新设备号(原来是%s):,sb[t].id);scanf(%s,sb[t].id);printf(请输入新设备名称(原来是%s):,sb[t].name);scanf(%s,sb[t].name);printf(请输入新设备设备种类名称(原来是%s):,sb[t].kind);scanf(%s,sb[t].kind);printf(请输入新设备报废日期名称(原来是%s):,sb[t].over);scanf(%s,sb[t].over);printf(请输入新设备是否报废,1、没报废,0、报废(原来是%d):,sb[t].yesno);scanf(%d,&sb[t].yesno);printf(请输入新设备购买时间(原来是%s):,sb[t].time);6scanf(%s,sb[t].time);printf(请输入新设备价格(原来是%s):,sb[t].price);scanf(%s,sb[t].price);printf(\n提示:该项记录资料已经成功修改!\n);printf(退回主菜单请输入0\n);printf(继续操作请输入1\n);scanf(%d,&x);switch(x){case0:choose();break;case1:xg();break;default:printf(输入无效,自动返回主菜单\n);choose();break;}}}}voidcx()//查询{intchoice;do{printf(\t\t\t----------------------------------\n);printf(\t\t\t*[1]----按设备号查找*\n);printf(\t\t\t*[2]----按设备名称查找*\n);printf(\t\t\t*[0]----退出*\n);printf(\t\t\t*·*·*·*·*·*·*·*·*·*·*·*|\n);scanf(%d,&choice);getchar();switch(choice){case0:menu();break;case1:cx_sbh();break;case2:cx_mc();break;default:printf(输入无效请重新输入\n);cx();break;}}while(choice!=0);}voidcx_sbh()//设备号查询{intchoice;charfind[20];intt=0;printf(请输入您要查询的设备号:);7scanf(%s,find);getchar();do{if(strcmp(sb[t].id,find)==0&&sb[t].yesno==1)//1表示设备没报废{printf(设备号设备名称设备种类报废日期是否报废购买时间价格\n);printf(\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n,sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);t++;}elset++;}while(t100);printf(键入数字1返回主菜单\n);printf(键入数字任意键返回上层菜单\n);scanf(%d,&choice);if(choice==1)choose();elsecx();}voidcx_mc()//设备名称查询{intchoice;charming[20];t=0;printf(\n输入你要查询的设备名称:);scanf(%s,ming);do{if(strcmp(sb[t].name,ming)==0&&sb[t].yesno==1)//1表示设备没报废{printf(设备号设备名称设备种类报废日期是否报废购买时间价格\n);printf(\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n,sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);t++;}elset++;8}while(t100);printf(键入数字1返回主菜单\n);printf(键入数字任意键返回上层菜单\n);scanf(%d,&choice);if(choice==1)choose();elsecx();}voidtj()//统计{intchoice;chartong[20];printf(\n输入你要统计的设备种类:);scanf(%s,tong);do{if(strcmp(sb[t].kind,tong)==0&&sb[t].yesno==1)//1表示设备没报废{printf(设备号设备名称设备种类报废日期是否报废购买时间价格\n);printf(\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n,sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].yesno,sb[t].time,sb[t].price);t++;}elset++;}while(t100);printf(键入数字1返回主菜单\n);printf(键入数字任意键返回上层菜单\n);scanf(%d,&choice);if(choice==1)choose();}voidbf()//报废信息{intchoice;do{printf(\t\t\t----------------------------------\n);printf(\t\t\t*[1]----登记报废信息*\n);printf(\t\t\t*[2]----报废设备统计*\n);printf(\t\t\t*[0]----退出*\n);printf(\t\t\t*·*·*·*·*·*·*·*·*·*·*·*|\n);9scanf(%d,&choice);getchar();switch(choice){case0:menu();break;case1:bf_dj();break;case2:bf_tj();break;default:printf(输入无效请重新输入\n);bf();break;}}while(choice!=0);}voidbf_dj()//报废登记{charfind[20];intx;t=0;printf(请输入要登记的设备ID号:);scanf(%s,find);while(1){if(strcmp(sb[t].id,find)==0)//如果找到的话返回的是符合要求{break;}elset++;}while(1){printf(完成登记请输入0否则输入任意数再进行修改:);scanf(%d,&x);if(x==0)break;{printf(请输入新设备是否报废1、没报废,0、报废(原来是%d):,sb[t].yesno);scanf(%d,&sb[t].yesno);printf(\n提示:该项记录资料已经成功登记!\n);scanf(%d,&x);switch(x){case0:choose();break;case1:bf();break;default:printf(输入无效,自动返回主菜单\n);choose();break;}}10}}voidbf_tj()//报废统计{intchoice;charfind[20];t=0;printf(\n输入你要统计的报废设备种类:);scanf(%s,find);do{if(strcmp(sb[t].kind,find)==0&&sb[t].yesno==0)//0表示设备报废{printf(设备号设备名称设备种类报废日期是否报废购买时间价格\n);printf(\n%-13s%-11s%-7s%-10s%-13d%-10s%-5s\n,sb[t].id,sb[t].name,sb[t].kind,sb[t].over,sb[t].