还剩45页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
C程序设计实习报告题目仪器仪表管理学院机电学院专业机械设计制造及其自动化目录1.题目要求················第3页2.需求分析················第4页3.总体设计················第4页4.详细设计················第5页5.上机操作···············第25页6.总结·················第32页7.____···············第33页8.附录部分/主要程序模块函数清单····第34页
1.1题目要求仪器仪表管理[要求]系统功能的基本要求
1.新的仪器仪表信息录入
2.在借出、归还、维修时对仪器仪表信息的修改
3.对报废仪器仪表信息的删除
4.按照一定的条件查询、统计符合条件的仪器仪表信息;查询功能至少应包括仪器仪表基本信息的查询、按时间段(如在2004年1月1日到2004年10月10日__、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计、安仪器仪表的基本信息统计等
5.对查询、统计的结果打印输出[提示]数据结构采用结构体仪器仪表信息包括仪器仪表名、仪器仪表编号、__时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表可借入,2代表正在维修)等
1.2需求分析根据题目要求,需要把仪器仪表信息的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改、删除、查找等操作;另外还应该提供键盘式选择输入菜单来实现功能选择
1.3总体设计根据上面的需求分析,可以将系统的设计分为五个模块,即输入模块、添加模块、修改模块、查找模块、删除模块图1-1系统功能模块图
1.4详细设计1.主函数主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用其中各功能模块用菜单方式选择本题__in函数体内的界面选择部分语句单独抽取出来作为一__函数,目的在于系统执行完每部分功能后能够方便返回到系统界面其流程图如下:NY图1-2主函数流程图【程序】__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********************************************************\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;/*退出*/}}
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输入模块流程图如下图1-3输入模块流程图【程序】/****************************输入模块***************************/voidnewin/*输入模块*/{intin;printf录入仪器仪表的数量:N-1;scanf%dn;/*要输入的记录个数*/printf\n录入日期\n\n;printf\n名称 编号 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;fori=0;in;i++{inputi;/*调用输入函数*/}ifi!=0s__en;/*调用保存函数*/printf_back;/*一个任务结束时让用户选择是浏览还是返回*/}
2.添加模块【需求分析】 该模块的功能是用户需要增加新的仪器仪表的信息,从键盘输入并逐条写到原来的输入文件中,注意采用追加而不是覆盖的方式追加模块流程图如下图1-4添加模块流程图【程序】/**********************添加模块***************************/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;}
3.修改模块【需求分析】 该模块考虑到是显示所有仪器仪表信息,考虑到记录较多,建建议采用分屏显示显示完所有纪录后,用户输入要修改的仪器仪表编号,根据编号查找仪器的记录,并提示用户修改该记录的那部分信息,是借出时间、归还时间、维修时间还是状态,根据用户的选择修改相应信息修改模块流程图如下NYYYN图1-5 修改模块流程图【程序】/***********************修改模块**********************/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.查找模块NY图1-6查找模块流程图【程序】/*************************查找功能*************************/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.
1.基本查找【需求分析】基本信息查找包含仪器仪表的名称以及编号的查找,所以该子功能模块的功能是先让用户选择是按仪器仪表的名称还是按仪器仪表的编号查找,根据用户的选择进行查找,找到以后增加修改和删除功能基本查找模块的流程图如下12YNYN图1-7基本查找流程图【程序】 /*********************基本查找模块**************************/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按时间点查找123YNYN图1-8按时间点查找流程图【程序】/***********************按时间点查找模块*************************/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;*/}
5.删除模块【需求分析】 该模块与修改模块一样采用分屏显示,显示完所有记录后,由用户进行选择要删除的编号,经查找后可进行删除删除模块的流程图如下NYYYN图1-9删除模块流程图【程序】/*********************删除模块**************************/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;}
5.公用函数
5.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;}
5.2加载函数load【程序】 intload{FILE*fp;inti;iffp=fopeneq.___rb==NULL{printf\n无法打开该文件\n;}fori=0;!feoffp;i++freadeq[i]sizeofstructequip1fp;fclosefp;returni-1;}
5.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;}
5.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;}(
5.5)显示数据结构项目函数voidprintf_fa__{printf\n编号 名称 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;}
5.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;}
5.7一个任务结束时选择浏览还是返回的函数voidprintf_back{intw;printf\n\n成功\n\n;printf操作\n\n\t
1.返回\t
2.退出:[]\b\b;scanf%dw;ifw==1menu;elseexit0;}(
5.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;}
1.5上机操作1.数据源为了保存数据,需要建立一个eq.___文件
2.编译、连接和运行2.结果
1.主菜单函数图 1-10主菜单2输入模块在主界面出现后输入1并按Enter键,结果如下图 1-11输入模块图 1-12输入模块3添加模块图 1-13添加模块图 1-14添加模块4修改模块图 1-15修改模块图 1-16修改模块5删除模块图 1-17 删除模块图 1-18删除模块6查找模块图1-19查找模块图 1-20查找模块
1.6总结 课程设计是培养学生综合运用所学知识发现提出分析和解决实际问题锻炼实践能力的重要环节是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在因此作为__一世纪的大学来说掌握程序__技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一周之内的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识 通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和__思考的能力在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机
1.7____【1】谭浩强,C程序设计,清华大学出版社,
2005.7【2】张冬梅,刘远兴,陈晶,王媛妮,C语言课程设计与学习指导,中国铁道出版社,
2008.
61.8附录部分/主要程序模块清单#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%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;}voidprintf_fa__{printf\n编号 名称 __时间 借出时间 借入时间 归还时间 维修时间 状态\n;}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;}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********************************************************\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输入要删除的编号显示所有记录,让用户看那条信息需要删除。