c语言实习仪器仪表管理

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1C语言课程实习与报告——《仪器仪表管理》制作人:庞明制作时间:2010年7月13日一.题目要求仪器仪表管理【要求】系统功能的基本要求:(1)新的仪器仪表信息的录入;(2)在借出、归还、维修时对仪器仪表信息的修改;(3)对报废仪器仪表信息的删除;(4)按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计,按仪器仪表的基本信息统计等。(5)对查询,统计结果的打印输出。【提示】数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。二.分析需求根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。系统功能图如下:系统功能模块图三.详细设计需调用的函数名:voidsave(intn,intm);intload_equ();voidmenu();voidadd_new_message();voidinput(inti);仪器仪表管理系统添加显示修改统计退出查询删除2voidload_record();voidprintf_one(inti);voidprintf_n(intn);voidmodify();voiddelete();voidsearch();voidsb_buy_tq();voidsb_gb_tq();voidsb_par_number();voidsb_name();voidstatistic();voidtb_par_number();voidtb_name();voidtb_buy_tq();voidtb_gb_tq();1.主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。其各功能模块用菜单方式选择。本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。菜单部分设计如下:【流程图】NOYES主函数的菜单流程图【程序】对应如下:main(){system(cls);/**********清屏************/menu();}voidmenu(){intw,n;do显示一系列功能选项输入n,判断n是否是1-7根据n的值调用各功能模块函数3{system(cls);printf(\t\tWELCOMETOTHEEQUIPMENTMANAGEMENTSYSTEM\n\n\n);printf(\n\n\t\t====================******====================\n\n\n);printf(\t\t\t1:Addmessageofnewequipmen\n\n);printf(\t\t\t2:Loadthemessageofallequipment\n\n);printf(\t\t\t3:Correctthemessageofequipment\n\n);printf(\t\t\t4:Deletethemessageofbrokenequipment\n\n);printf(\t\t\t5:Searchthemessageofequipment\n\n);printf(\t\t\t6:Searchofalltheequipment\n\n);printf(\t\t\t7:Exit\n);printf(\n\n\t\t====================******====================\n\n\n);printf(Pleasechoiceyournumber:[]\b\b);scanf(%d,&n);if(n1||n7)w=1;elsew=0;}while(w==1);/****************选择功能****************/switch(n){case1:add_new_message();break;/*添加模块*/case2:load_record();break;/*显示模块*/case3:modify();break;/*修改模块*/case4:search();break;/*查询模块*/case5:statistic();break;/*统计模块*/case6:delete();break;/*删除模块*/case7:exit(0);break;/*退出模块*/}}2.各功能模块设计(1)添加信息模块【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。实际上操作时发现只有字符型的数据可以在文件中成功被保存,所以本题所有数据一律采用字符型。structequip{charnumber[4];charname[11];4charb_time[11];charbin_time[11];charbout_time[11];chargiveb_time[11];charrepair_time[11];intstate;}equ[M];/*equ[M]中每个数组元素对应一个仪表仪器*/【注意】equ[M]中的M是仪表仪器个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#defineM50。【流程图】Y输入模块流程图【程序】/*************************添加模块***********************/voidadd_new_message(){intt,i,m;system(cls);t=load_equ();printf(Howmanygroupsdatasdoyouwanttoadd?\n);printf(inputthenumber:[]\b\b\b);scanf(%d,&m);for(i=0;im;i++){printf(\nInput%dthequipmentrecord.\n,i+1);input(t+i);/*调用输入函数*/}save(t+m,0);/*调用保存函数保存t+m组数据*/system(cls);/**********清屏************/menu();/*返回登陆界面*/}用户要添加仪器的个数m显示添加仪器的信息i从0到m-1调用输入函数voidinput(inti)i!=05/****************输入函数****************/voidinput(inti){printf(Pleaseinput:\nnumbernameb_timeb_in_timeb_out_timeg_back_timerepair_timestate\n);scanf(%s%s%s%s%s%s%s%d,&equ[i].number,&equ[i].name,&equ[i].b_time,&equ[i].bin_time,&equ[i].bout_time,&equ[i].giveb_time,&equ[i].repair_time,&equ[i].state);}(2)显示记录模块分析:通过调用函数显示所有仪器的一切信息,最后将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。流程图:Yvoidload_record(){intt;t=load_equ();printf_n(t);printf(\n\n\nPressanykeytogoback...\n\n);getchar();menu();/*返回登陆界面*/}/*显示一个仪器记录的函数*/voidprintf_one(inti){printf(%-3s%-10s%-10s%-10s%-10s%-10s%-10s%d.\n\n,equ[i].number,equ[i].name,equ[i].b_time,equ[i].bin_time,equ[i].bout_time,equ[i].giveb_time,equ[i].repair_time,equ[i].显示记录仪器的个数ti从0到t-1调用显示函数voidprintf_n(intn)i!=0显示仪器记录6state);}/**显示n个仪器记录的函数*/voidprintf_n(intn){intj;system(cls);/*清屏*/printf(numbernameb_timeb_in_timeb_out_timeg_back_timerepair_times\n);for(j=0;jn;j++){printf_one(j);/*调用显示一个仪器记录的函数*/}}(3)修改模块[需求分析]用户输入要修改的仪器仪表编号或名称,根据编号或名称查找仪器仪表记录,并提示用户修改该记录的哪部分信息,是仪器仪表的借出时间、归还时间、修理时间还是状态,根据用户选择修改相应信息。[流程图]YNYN修改模块流程图[程序]voidmodify(){structequipmod;intt,i,m,w,addr=-1;charnumber[4]={''},name[11]={''};显示找到的记录,调用修改函数提示没有找到返回主菜单是否找到此记录保存修改后的记录输入要修改的仪器仪表编号或名称7system(cls);/*清屏*/t=load_equ();do{printf(\nInputtheequipment'numberorname(1:thenumber2:thename):\n\n);printf(Whatisyourchoice:[]\b\b);scanf(%d,&m);if(m==1||m==2)w=0;elsew=1;}while(w==1);switch(m){case1:printf(\n\nPleaseinputtheequipment'snumber:[___]\b\b\b\b);scanf(%s,number);break;case2:printf(Pleaseinputtheequipment'sname:[__________]\b\b\b\b\b\b\b\b\b\b\b);scanf(%s,name);break;}for(i=0;it;i++)/*查找要修改的仪器*/{if(strcmp(equ[i].name,name)==0||strcmp(equ[i].number,number)==0){addr=i;printf(\n\nPleaseinputthenewinformation:\n\n);printf(numbernameb_timeb_in_timeb_out_timeg_back_timerepair_times\n);scanf(%s%s%s%s%s%s%s%d,mod.number,mod.name,mod.b_time,mod.bin_time,mod.bout_time,mod.giveb_time,mod.repair_time,&mod.state);strcpy(equ[i].number,mod.number);strcpy(equ[i].name,mod.name);strcpy(equ[i].b_time,mod.b_time);strcpy(equ[i].bin_time,mod.bin_time);strcpy(equ[i].bout_time,mod.bout_time);strcpy(equ[i].giveb_time,mod.giveb_time);strcpy(equ[i].repair_time,mod.repair_time);equ[i].state=mod.state;printf(%-3s%-10s%-10s%-

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功