还剩37页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
仪器仪表管理系统目录TOC\o1-3\u1.题目要求12.需求分析13.总体设计14.详细设计
14.1主函数
14.2各功能模块设计
34.
2.1输入模块
34.
2.2添加模块
44.
2.3修改模块
64.
2.4查找模块
84.
2.5删除模块
154.
2.6公用函数175.上机操作
205.1数据源说明
205.2操作步骤
205.3运行结果
205.
3.1主菜单函数
215.
3.2输入模块
215.
3.3添加模块
225.
3.4修改模块
225.
3.5删除模块
235.
3.6查找模块
245.
3.7退出模块246.总结
256.1编程中遇到的困难及解决方法
256.2心得及建议257.致谢25____251.题目要求题目仪器仪表管理系统系统功能的基本要求
(1)新的仪器仪表信息的录入
(2)在借出、归还、维修时对仪器仪表信息的修改
(3)对报废仪器仪表信息的删除
(4)按照一定的条件查询符合条件的仪器仪表信息查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间段(如在2004年1月1日到2004年10月10日__、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等;统计功能至少包括按时间段(如在2004年1月1日到2004年10月10日__、借出、维修的仪器仪表等)统计、按仪器仪表基本信息统计等
(5)对查询、统计的结果打印输出2.需求分析根据题目要求,仪器仪表信息用文件存储,故要提供文件的输入/输出操作;要完成对仪器仪表信息的修改和删除,需要提供仪器仪表信息修改和删除操作;要实现对仪器仪表的信息查询和统计,需要提供查询、统计及显示功能;另外,还要提供键盘式选择菜单以实现功能选择3.总体设计整个仪器仪表管理系统分为仪器仪表信息输入模块、仪器仪表信息添加、修改和查收模块、仪器仪表信息删除和退出模块图3-1功能模块划分及其结构流程图4.详细设计
4.1主函数主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用其中各功能模块用菜单方式选择本题__in函数体内的界面选择部分语句单独抽取出来作为一__函数,目的在于系统执行完每部分功能后能够方便返回到系统界面其流程图如下:NY图4-1-1主函数流程图【程序】__in{menu;}menu{intnw;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/do{printf\t\t**********************MENU*****************************\n\n;printf\n\t\t\t\t
1.Enternewdata;printf\n\t\t\t\t
2.addnewdata;printf\n\t\t\t\t
3.modifydata;printf\n\t\t\t\t
4.deletedata;printf\n\t\t\t\t
5.searchdata;printf\n\t\t\t\t
6.exit;printf\n\n\t\t***************011102王家林20101001934**************\n;printfchoosenumber1-6:[]\b\b;scanf%dn;ifn1||n6/*对选择的数字做判断*/{w=1;getchar;}elsew=0;}whilew==1;switchn{case1:newin;break;/*输入模块*/case2:add;break;/*添加模块*/case3:modify;break;/*修改模块*/case4:delet;break;/*删除模块*/case5:search;break;/*查找模块*/case6:exit0;/*退出*/}}
4.2各功能模块设计
4.
2.1输入模块【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、__时间、借出时间、借入时间、归还时间、维修时间应采用实型;状态信息是整数,应采用整型;实际上操作时发现只有字符型的数据才可以在文件中成功保存,故本题所有数据均采用字符型structequip{charnum
[10];charname
[50];charpt
[10];charbt
[10];charlt
[10];charrt
[10];charmt
[10];charst
[5];chartime
[5]; /*为下面程序中按时间查找和修改时记录输入的时间*/}eq[N];/*eq[N]中每个数组元素对应一台仪器信息*/【注意】eq[N]中的N是仪器仪表个数,程序采用宏定义的方式,可以随时在源程序宏定义中修改,本程序宏定义#defineN100输入模块流程图如下图4-2-1输入模块流程图【程序】/****************************输入模块***************************/voidnewin/*输入模块*/{intin;printf录入仪器仪表的数量:N-1;scanf%dn;/*要输入的记录个数*/printf\n录入日期\n\n;printf\n名称 编号 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;fori=0;in;i++{inputi;/*调用输入函数*/}ifi!=0s__en;/*调用保存函数*/printf_back;/*一个任务结束时让用户选择是浏览还是返回*/}
4.
2.2添加模块【需求分析】该模块的功能是用户需要增加新的仪器仪表的信息,从键盘输入并逐条写到原来的输入文件中,注意采用追加而不是覆盖的方式追加模块流程图如下图1-4添加模块流程图图4-2-2添加模块流程图【程序】/**********************添加模块***************************/voidadd{intinmk;FILE*fp;n=load;printf请输入所要增加仪器仪表信息的数量:N-1-n;scanf%dm;/*输入要添加的数量*/k=m+n;fori=n;ik;i++{printf\n请输入仪器仪表信息\ni-n+1;inputi;}/*调用输入函数*/iffp=fopeneq.___ab==NULL/*以ab方式打开文件,追加保存*/{printf无法打开该文件\n;}fori=n;ik;i++iffwriteeq[i]sizeofstructequipifp!=1/*输出到文件中*/printf文件写入错误\n;fclosefp;printf_back;}
4.
2.3修改模块【需求分析】该模块考虑到是显示所有仪器仪表信息,考虑到记录较多,建议采用分屏显示显示完所有纪录后,用户输入要修改的仪器仪表编号,根据编号查找仪器的记录,并提示用户修改该记录的那部分信息,是借出时间、归还时间、维修时间还是状态,根据用户的选择修改相应信息修改模块流程图如下NYYN图4-2-3修改模块流程图【程序】/***********************修改模块**********************/voidmodify{structequipq;/*FILE*fp;*/intinkw0=1w1w2=0;n=load;do{k=-1;printf_fa__;fori=0;in;i++{ifi!=0i%10==0{printf\n\n记住所要修改的编号!按任意键继续;getchar;puts\n\n\n;}printf_onei;}do{printf\n\n请输入所要修改的编号:;scanf%sq.num;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;q=eq[i];}ifk==-1printf\n\n编号不存在!请重新输入;}whilek==-1;printf_fa__;printf_onek;w1=modify_datak;ifw1==1{printf\n修改成功!\n\n是否修改下一个?\n\n\t
1.是
2.否\t[]\b\b;scanf%dw0;w2=1;}else{w0=0;ifw2==1eq[k]=q;}ifw0!=1w2==1s__en;}whilew0==1;menu;}
4.
2.4查找模块NY图4-2-4查找模块流程图【程序】/*************************查找功能*************************/voidsearch{intm;puts\t\t********************************************************\n\n;puts\t\t\t\t
1.commonsearch;puts\t\t\t\t
2.pointsearch;puts\t\t\t\t
3.exit;puts\n\n\t\t*****************************************************\n;printf\nchooseyournumber1-3:[]\b\b;scanf%dm;switchm{case1:commom_search;break;case2:p_search;case3:exit0;}}
4.
2.
4.1基本查找【需求分析】基本信息查找包含仪器仪表的名称以及编号的查找,所以该子功能模块的功能是先让用户选择是按仪器仪表的名称还是按仪器仪表的编号查找,根据用户的选择进行查找,找到以后增加修改和删除功能基本查找模块的流程图如下12YNNYN图4-2-5基本查找流程图【程序】 /*********************基本查找模块**************************/voidcommom_search{intinkw1=1w2w3w4;structequipq;n=load;printf\n 通过名称还是编号查找
1.名称
2.编号:[]\b\b;scanf%di;ifi==1{do{do{k=-1;printf\n\n请输入名称! 名称[]\b\b;scanf%sq.name;printf_fa__;fori=0;in;i++ifstrcmpq.nameeq[i].name==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==2{do{do{k=-1;printf\n\n请输入编号 编号:[]\b\b;scanf%sq.num;printf_fa__;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\nSure\n\t
1.Yes
2.Back[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}/*menu;*/}
4.
2.
4.2按时间点查找123YNYYN图4-2-6按时间点查找流程图【程序】/***********************按时间点查找模块*************************/voidp_search{intinkw1=1w2w3w4;structequipq;n=load;printf\n
1.借入时间
2.借出时间
3.归还时间[]\b\b;scanf%di;ifi==1{do{do{k=-1;printf\n\n请输入时间! 借入时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].lt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==2{do{do{k=-1;printf\n\n请输入借出时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].bt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==3{do{do{k=-1;printf\n\n请输入归还时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].rt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}/*menu;*/}
4.
2.5删除模块【需求分析】该模块与修改模块一样采用分屏显示,显示完所有记录后,由用户进行选择要删除的编号,经查找后可进行删除删除模块的流程图如图4-2-7所示【程序】/*********************删除模块**************************/voiddelet{structequipq;/*FILE*fp;*/intinkw0=1w1w2=0;n=load;do{k=-1;printf_fa__;fori=0;in;i++{ifi!=0i%10==0{printf\n\n记住所要修改的编号!按任意键继续;getchar;puts\n\n\n;}NYYN图4-2-7删除模块流程图printf_onei;}do{printf\n\n请输入所要修改的编号:;scanf%sq.num;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;q=eq[i];}ifk==-1printf\n\n编号不存在!请重新输入;}whilek==-1;printf_fa__;printf_onek;printf\n确认删除?\n\n\t
1.是
2.不保存返回 []\b\b;scanf%dw1;ifw1==1{eq[k].num
[10]=0;printf\n成功\n\n还要删除其他吗?\n\n\t
1.是
2.保存退出\t[]\b\b;scanf%dw0;w2=1;}else{w0=0;ifw2==1eq[k]=q;}ifw0!=1w2==1s__en;}whilew0==1;printf_back;}
4.
2.6公用函数
4.
2.
6.1保存函数s__eintn【程序】voids__eintn{FILE*fp;inti;iffp=fopeneq.___wb==NULL{printf\n无法打开该文件\n;/*returnNULL;*/}fori=0;in;i++ifeq[i].num
[10]!=0iffwriteeq[i]sizeofstructequip1fp!=1printf文件写入错误\n;fclosefp;}
4.
2.
6.2加载函数load【程序】 intload{FILE*fp;inti;iffp=fopeneq.___rb==NULL{printf\n无法打开该文件\n;}fori=0;!feoffp;i++freadeq[i]sizeofstructequip1fp;fclosefp;returni-1;}
4.
2.
6.3编号输入函数num_inputintIintn【程序】voidnum_inputintiintn{intjkw1;do{w1=0;printf请输入编号:;scanf%seq[i].num;forj=0;eq[i].num[j]!=\0;j++ifeq[i].num[j]0||eq[i].num[j]9{printf输入错误!请输入1到9的数字\n;w1=1;break;}ifw1!=1fork=0;kn;k++ifk!=istrcmpeq[k].numeq[i].num==0{printf该编号已存在!请重新输入\n;w1=1;break;}}whilew1==1;}
4.
2.
6.4整条输入函数inputinti【程序】voidinputinti{num_inputii;printf名称:;scanf%seq[i].name;printf请输入__时间:;scanf%seq[i].pt;printf请输入借出时间:;scanf%seq[i].bt;printf请输入借入时间:;scanf%seq[i].lt;printf请输入归还时间:;scanf%seq[i].rt;printf请输入维修时间:;scanf%seq[i].mt;printf请输入状态信息(0代表可借出,1代表已借出,2代表正在维修):;scanf%seq[i].st;}
4.
2.
6.5显示数据结构项目函数voidprintf_fa__{printf\n编号名称__时间借出时间借入时间归还时间维修时间状态\n;}
4.
2.
6.6显示一个记录函数voidprintf_oneinti{printf%1s%s%s%s%s%s%s%5s\neq[i].numeq[i].nameeq[i].pteq[i].bteq[i].lteq[i].rteq[i].mteq[i].st;}
4.
2.
6.7一个任务结束时选择浏览还是返回的函数voidprintf_back{intw;printf\n\n成功\n\n;printf操作\n\n\t
1.返回\t
2.退出:[]\b\b;scanf%dw;ifw==1menu;elseexit0;}
4.
2.
6.8修改记录函数modify_dataintIintnmodify_datainti{intcw;do{printf\n你想修改:\n\n
1.借出时间
2.归还时间
3.维修时间
4.状态;printf你想选择?:[]\b\b;scanf%dc;ifc4||c1{printf\n选择错误!请重新选择;getchar;}}whilec4||c1;do{switchc{case1:printf借出时间:;scanf%seq[i].bt;break;case2:printf归还时间:;scanf%seq[i].rt;break;case3:printf维修时间:;scanf%seq[i].mt;break;case4:printf状态:;scanf%seq[i].st;break;}printf\nNow:\n;printf_fa__;printf_onei;printf\n确认修改\n\n\t
1.Yes
2.Noandremodify
3.Backwithouts__e[]\b\b;scanf%dw;}whilew==2;returnw;}5.上机操作
5.1数据源说明为了保存数据,需要建立一个eq.___文件
5.2操作步骤启动VisualC++
6.0后,首先建立C源程序文件,然后编译运行;程序编译好后进行动态调试(主要方法有断点跟踪、调试函数等);编译调试后进行链接和运行,检验程序设计是否符合设计需求,若不符合或存在缺陷,则进行修改,修改后重复上述步骤,直至所设计的程序满足要求为止
5.3运行结果根据程序,将主函数和各功能函数运行结果列述如下
5.
3.1主菜单函数
5.
3.2输入模块在主界面出现后输入1并按Enter键,结果如下
5.
3.3添加模块
5.
3.4修改模块
5.
3.5删除模块
5.
3.6查找模块
5.
3.7退出模块每一模板中均有退出模块,在此仅例举一个,如图所示6.总结
6.1编程中遇到的困难及解决方法在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍
6.2心得及建议课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在因此作为__一世纪的大学来说掌握程序__技术是十分重要的,而C语言又是最常见、功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整三天时间里,学到了很多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和__思考的能力通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它方面的知识都要重在实践,所以后在学习过程中,我会更加注重实践操作,使自己更好地学好计算机知识和专业知识7.致谢在这次课程设计中,孔春芳老师和助教老师给予了我极大的帮助,他们耐心而仔细的帮助我修改、调试程序,并且对程序的修改提出了很多宝贵的建议,在此衷心的感谢孔春芳和助教老师的耐心指导,谢谢你们!同时,在这三天里,班级同学也给予了我很大帮助,我们一起探讨程序设计、调试和运行中存在的问题与不足,对他们也一并表示感谢____
[1]谭浩强.C程序设计第三版[M].北京:清华大学出版社
2005.
[2]张冬梅刘远兴陈晶等.基于PBL的C语言课程设计及学习指导[M].北京:清华大学出版社
2011.附录仪器仪表管理系统程序#includestdio.h#includestring.h#defineN100structequip{charnum
[10];charname
[50];charpt
[10];charbt
[10];charlt
[10];charrt
[10];charmt
[10];charst
[5];chartime
[5];}eq[N];voidmenu;voids__eintn{FILE*fp;inti;iffp=fopeneq.___wb==NULL{printf\n无法打开该文件\n;/*returnNULL;*/}fori=0;in;i++ifeq[i].num
[10]!=0iffwriteeq[i]sizeofstructequip1fp!=1printf文件写入错误\n;fclosefp;}intload{FILE*fp;inti;iffp=fopeneq.___rb==NULL{printf\n无法打开该文件\n;}fori=0;!feoffp;i++freadeq[i]sizeofstructequip1fp;fclosefp;returni-1;}voidnum_inputintiintn{intjkw1;do{w1=0;printf请输入编号:;scanf%seq[i].num;forj=0;eq[i].num[j]!=\0;j++ifeq[i].num[j]0||eq[i].num[j]9{printf输入错误!请输入1到9的数字\n;w1=1;break;}ifw1!=1fork=0;kn;k++ifk!=istrcmpeq[k].numeq[i].num==0{printf该编号已存在!请重新输入\n;w1=1;break;}}whilew1==1;}voidinputinti{num_inputii;printf名称:;scanf%seq[i].name;printf请输入__时间:;scanf%12seq[i].pt;printf请输入借出时间:;scanf%10seq[i].bt;printf请输入借入时间:;scanf%10seq[i].lt;printf请输入归还时间:;scanf%10seq[i].rt;printf请输入维修时间:;scanf%14seq[i].mt;printf请输入状态信息(0代表可借出,1代表已借出,2代表正在维修):;scanf%2seq[i].st;}voidprintf_fa__{printf\n编号 名称 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;}voidprintf_oneinti{printf%1s%12s%10s%10s%10s%10s%10s%5s\neq[i].numeq[i].nameeq[i].pteq[i].bteq[i].lteq[i].rteq[i].mteq[i].st;}voidprintf_back{intw;printf\n\n成功\n\n;printf操作\n\n\t
1.返回\t
2.退出:[]\b\b;scanf%dw;ifw==1menu;elseexit0;}modify_datainti{intcw;do{printf\n你想修改:\n\n
1.借出时间
2.归还时间
3.维修时间
4.状态;printf你想选择?:[]\b\b;scanf%dc;ifc4||c1{printf\n选择错误!请重新选择;getchar;}}whilec4||c1;do{switchc{case1:printf借出时间:;scanf%seq[i].bt;break;case2:printf归还时间:;scanf%seq[i].rt;break;case3:printf维修时间:;scanf%seq[i].mt;break;case4:printf状态:;scanf%seq[i].st;break;}printf\nNow:\n;printf_fa__;printf_onei;printf\n确认修改\n\n\t
1.Yes
2.Noandremodify
3.Backwithouts__e[]\b\b;scanf%dw;}whilew==2;returnw;}voidcommom_search{intinkw1=1w2w3w4;structequipq;n=load;printf\n 通过名称还是编号查找
1.名称
2.编号:[]\b\b;scanf%di;ifi==1{do{do{k=-1;printf\n\n请输入名称! 名称[]\b\b;scanf%sq.name;printf_fa__;fori=0;in;i++ifstrcmpq.nameeq[i].name==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==2{do{do{k=-1;printf\n\n请输入编号 编号:[]\b\b;scanf%sq.num;printf_fa__;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\nSure\n\t
1.Yes
2.Back[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}/*menu;*/}voidp_search{intinkw1=1w2w3w4;structequipq;n=load;printf\n
1.借入时间
2.借出时间
3.归还时间[]\b\b;scanf%di;ifi==1{do{do{k=-1;printf\n\n请输入时间! 借入时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].lt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==2{do{do{k=-1;printf\n\n请输入借出时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].bt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}ifi==3{do{do{k=-1;printf\n\n请输入归还时间:[]\b\b;scanf%sq.time;printf_fa__;fori=0;in;i++ifstrcmpq.timeeq[i].rt==0{k=i;printf_onek;}ifk==-1{printf\n\n不存在;printf\n\n重试\n\t
1.是
2.返回[]\b\b;scanf%dw1;ifw1==2menu;}}whilek==-1w1==1;w4=0;w3=0;ifk!=-1{printf\n\n操作\n\t
1.重新搜索
2.修改
3.删除
4.返回[]\b\b;scanf%dw2;switchw2{case2:w3=modify_datak;break;case3:printf\n确定\n\t
1.是
2.返回[]\b\b;scanf%dw4;}}ifw3==1||w4==1{s__en;printf\n成功\n\n;printf\n操作\n\t
1.重新搜索
2.返回[]\b\b;scanf%dw2;}}whilew2==1;}/*menu;*/}voidnewin{intin;printf录入仪器仪表的数量:N-1;scanf%dn;printf\n录入日期\n\n;printf\n名称 编号 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;fori=0;in;i++{inputi;}ifi!=0s__en;printf_back;}voidadd{intinmk;FILE*fp;n=load;printf请输入所要增加仪器仪表信息的数量:N-1-n;scanf%dm;k=m+n;fori=n;ik;i++{printf\n请输入仪器仪表信息\ni-n+1;inputi;}iffp=fopeneq.___ab==NULL{printf无法打开该文件\n;}fori=n;ik;i++iffwriteeq[i]sizeofstructequipifp!=1printf文件写入错误\n;fclosefp;printf_back;}voidmodify{structequipq;/*FILE*fp;*/intinkw0=1w1w2=0;n=load;do{k=-1;printf_fa__;fori=0;in;i++{ifi!=0i%10==0{printf\n\n记住所要修改的编号!按任意键继续;getchar;puts\n\n\n;}printf_onei;}do{printf\n\n请输入所要修改的编号:;scanf%sq.num;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;q=eq[i];}ifk==-1printf\n\n编号不存在!请重新输入;}whilek==-1;printf_fa__;printf_onek;w1=modify_datak;ifw1==1{printf\n修改成功!\n\n是否修改下一个?\n\n\t
1.是
2.否\t[]\b\b;scanf%dw0;w2=1;}else{w0=0;ifw2==1eq[k]=q;}ifw0!=1w2==1s__en;}whilew0==1;menu;}voidsearch{intm;puts\t\t********************************************************\n\n;puts\t\t\t\t
1.commonsearch;puts\t\t\t\t
2.pointsearch;puts\t\t\t\t
3.exit;puts\n\n\t\t*****************************************************\n;printf\nchooseyournumber1-3:[]\b\b;scanf%dm;switchm{case1:commom_search;break;case2:p_search;break;case3:exit0;}}voiddelet{structequipq;/*FILE*fp;*/intinkw0=1w1w2=0;n=load;do{k=-1;printf_fa__;fori=0;in;i++{ifi!=0i%10==0{printf\n\n记住所要删除的编号!按任意键继续;getchar;puts\n\n\n;}printf_onei;}do{printf\n\n请输入所要删除的编号:;scanf%sq.num;fori=0;in;i++ifstrcmpq.numeq[i].num==0{k=i;q=eq[i];}ifk==-1printf\n\n编号不存在!请重新输入;}whilek==-1;printf_fa__;printf_onek;printf\n确认删除?\n\n\t
1.是
2.不保存返回 []\b\b;scanf%dw1;ifw1==1{eq[k].num
[10]=0;printf\n成功\n\n还要删除其他吗?\n\n\t
1.是
2.保存退出\t[]\b\b;scanf%dw0;w2=1;}else{w0=0;ifw2==1eq[k]=q;}ifw0!=1w2==1s__en;}whilew0==1;printf_back;}voidmenu{intnw;do{printf\t\t**********************MENU*****************************\n\n;printf\n\t\t\t\t
1.Enternewdata;printf\n\t\t\t\t
2.addnewdata;printf\n\t\t\t\t
3.modifydata;printf\n\t\t\t\t
4.deletedata;printf\n\t\t\t\t
5.searchdata;printf\n\t\t\t\t
6.exit;printf\n\n\t\t***************011102王家林20101001934**************\n;printfchoosenumber1-6:[]\b\b;scanf%dn;ifn1||n6{w=1;getchar;}elsew=0;}whilew==1;switchn{case1:newin;break;case2:add;break;case3:modify;break;case4:delet;break;case5:search;break;case6:exit0;}}__in{menu;}仪器仪表管理系统输入模块删除模块退出模块查找模块修改模块添加模块结束根据n的值调用各功能模块函数输入n判断m是否是0~9显示一系列功能选项开始结束返回主菜单保存调用函数s__eni!=0I从0到n-1调用输入函数inputi输入用户要输入的仪器仪表数量n开始开始结束保存增加的记录i从n到k调用输入函数inputiK=m+n输入用户要增加的仪器仪表数量m调用加载函数n=load并计算可以记录个数开始提示没有找到结束返回主菜单询问用户是否继续修改?显示找到的记录调用修改记录i!=0输入要修改的编号显示所有记录,让用户看那条信息需要修改显示一系列功能选项根据的值调用各子功能模块函数输入n判断是11否为1-3调用加载函数n=load,并计算可以查找的记录个数n输入仪器仪表编号输入仪器仪表名称用户选择是否找到该仪器仪表记录显示找到的记录提示没有找到询问用户是否继续查找让用户选择1.查找另一个 2.修改 3.删除 4.返回主菜单返回主菜单调用加载函数n=load,并计算可以查找的记录个数n用户选择按借出时间查找按维修时间查找按仪器归还时间查找是否找到该仪器仪表记录提示没有找到显示找到的记录询问用户是否继续查找让用户选择1.查找另一个 2.修改 3.删除 4.返回主菜单返回主菜单开始提示没有找到结束返回主菜单询问用户是否继续删除?显示找到的记录调用删除记录i!=0输入要删除的编号显示所有记录,让用户看那条信息需要删除。