仪器仪表管理c语言仪器仪表管理课程设计.doc
《仪器仪表管理c语言仪器仪表管理课程设计.doc》由会员分享,可在线阅读,更多相关《仪器仪表管理c语言仪器仪表管理课程设计.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流仪器仪表管理c语言仪器仪表管理课程设计.精品文档.C程序设计实习报告题目:仪器仪表管理学 院: 机电学院 专 业:机械设计制造及其自动化目录 题目要求第页 需求分析第页 总体设计第页 详细设计第页 上机操作第页 总结第页 参考文献第页 附录:部分/主要程序模块函数清单第页1.1 题目要求仪器仪表管理 要求 系统功能的基本要求:(1).新的仪器仪表信息录入。(2).在借出、归还、维修时对仪器仪表信息的修改。(3).对报废仪器仪表信息的删除。(4).按照一定的条件查询、统计符合条件的仪器仪表信息;查询功能至少应包括仪器仪表基本信息的查询、按时间段
2、(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计、安仪器仪表的基本信息统计等。(5).对查询、统计的结果打印输出。 提示 数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表可借入,2代表正在维修)等。1.2 需求分析根据题目要求,需要把仪器仪表信息的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改、删除、查找等操作;另外还应该提供键盘式选择输入菜单来实现功能选择。1.3
3、总体设计根据上面的需求分析,可以将系统的设计分为五个模块,即输入模块、添加模块、修改模块、查找模块、删除模块。仪器仪表管理系统添加修改查找删除】输入退出图1-1 系统功能模块图1.4 详细设计 主函数主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。本题main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能后能够方便返回到系统界面。其流程图如下:结束根据n的值调用各功能模块函数输入n,判断m是否是09?显示一系列功能选项开始NY图1-2 主函数流程图【程序】main()menu(); menu()int n,w
4、;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ do printf(tt*MENU*nn); printf(ntttt1.Enter new data); printf(ntttt2.add new data); printf(ntttt3.modify data); printf(ntttt4.delete data); printf(ntttt5.search data); printf(ntttt6.exit); printf(nntt*n); printf(choose number(1-6): bb); scanf(%d,&n); if(n6)/*对选
5、择的数字做判断*/ w=1; getchar(); else w=0; while(w=1); switch(n) case 1:newin();break;/*输入模块*/ case 2:add();break;/*添加模块*/ case 3:modify();break;/*修改模块*/ case 4:delet();break;/*删除模块*/ case 5:search();break;/*查找模块*/ case 6:exit(0);/*退出*/2.各功能模块设计(1).输入模块【数据结构】【分析】单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借出时间
6、、借入时间、归还时间、维修时间应采用实型;状态信息是整数,应采用整型;实际上操作时发现只有字符型的数据才可以在文件中成功保存,故本题所有数据均采用字符型。struct equip char num10;char name50;char pt10; char bt10;char lt10; char rt10; char mt10; char st5; char time5;/*为下面程序中按时间查找和修改时记录输入的时间*/eqN;/*eqN中每个数组元素对应一台仪器信息*/【注意】 eqN中的N是仪器仪表个数,程序采用宏定义的方式,可以随时在源程序宏定义中修改,本程序宏定义#define N
7、 100。输入模块流程图如下:结束返回主菜单保存调用函数save(n)i!=0?I从0到n-1调用输入函数input(i)输入用户要输入的仪器仪表数量n开始图1-3 输入模块流程图【程序】 /*输入模块*/void newin()/*输入模块*/ int i,n; printf(录入仪器仪表的数量:,N-1); scanf(%d,&n);/*要输入的记录个数*/ printf(n 录入日期nn);printf(n 名称编号购买时间借出时间借入时间归还时间维修时间状态n);for(i=0;in;i+)input(i);/*调用输入函数*/if(i!=0) save(n);/*调用保存函数*/pr
8、intf_back();/*一个任务结束时让用户选择是浏览还是返回*/(2).添加模块【需求分析】该模块的功能是用户需要增加新的仪器仪表的信息,从键盘输入并逐条写到原来的输入文件中,注意采用追加而不是覆盖的方式。追加模块流程图如下:开始结束保存增加的记录i从n到k调用输入函数input(i)K=m+n输入用户要增加的仪器仪表数量m调用加载函数n=load()并计算可以记录个数图1-4 添加模块流程图【程序】/*添加模块*/void add() int i,n,m,k; FILE *fp; n=load(); printf( 请输入所要增加仪器仪表信息的数量:,N-1-n); scanf(%d,
9、&m); /*输入要添加的数量*/ k=m+n; for(i=n;ik;i+) printf(n 请输入仪器仪表信息n,i-n+1); input(i); /*调用输入函数*/ if(fp=fopen(eq.txt,ab)=NULL)/*以ab方式打开文件,追加保存*/ printf(无法打开该文件n); for(i=n;ik;i+) if(fwrite(&eqi,sizeof(struct equip),i,fp)!=1)/*输出到文件中*/ printf(文件写入错误n); fclose(fp);printf_back();(3).修改模块【需求分析】该模块考虑到是显示所有仪器仪表信息,考
10、虑到记录较多,建建议采用分屏显示。显示完所有纪录后,用户输入要修改的仪器仪表编号,根据编号查找仪器的记录,并提示用户修改该记录的那部分信息,是借出时间、归还时间、维修时间还是状态,根据用户的选择修改相应信息。修改模块流程图如下:开始提示没有找到结束返回主菜单询问用户是否继续修改?显示找到的记录调用修改记录i!=0?输入要修改的编号显示所有记录,让用户看那条信息需要修改图1-5修改模块流程图【程序】/*修改模块*/void modify() struct equip q;/* FILE *fp;*/ int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; print
11、f_face(); for(i=0;in;i+) if(i!=0)&(i%10=0) printf(nn记住所要修改的编号!按任意键继续); getchar();puts(nnn); printf_one(i);do printf(nn请输入所要修改的编号:); scanf(%s,q.num); for(i=0;in;i+) if(strcmp(q.num,eqi.num)=0) k=i; q=eqi; if(k=-1) printf(nn编号不存在!请重新输入); while(k=-1); printf_face();printf_one(k); w1=modify_data(k); if(
12、w1=1) printf(n修改成功!nn是否修改下一个?nnt1).是2).否t bb); scanf(%d,&w0); w2=1; else w0=0; if(w2=1) eqk=q; if(w0!=1&w2=1) save(n); while(w0=1); menu();显示一系列功能选项(4).查找模块根据的值调用各子功能模块函数输入n,判断是11否为1-3图1-6 查找模块流程图【程序】/*查找功能*/void search() int m; puts(tt*nn); puts(tttt mon search); puts(tttt 2.point search); puts(ttt
13、t 3.exit); puts(nntt*n); printf(n choose your number(1-3): bb); scanf(%d,&m); switch(m) case 1:commom_search();break; case 2:p_search(); case 3:exit(0);(4.1).基本查找【需求分析】基本信息查找包含仪器仪表的名称以及编号的查找,所以该子功能模块的功能是先让用户选择是按仪器仪表的名称还是按仪器仪表的编号查找,根据用户的选择进行查找,找到以后增加修改和删除功能。基本查找模块的流程图如下:调用加载函数n=load(),并计算可以查找的记录个数n输入
14、仪器仪表编号输入仪器仪表名称用户选择返回主菜单让用户选择查找另一个修改删除返回主菜单询问用户是否继续查找提示没有找到显示找到的记录是否找到该仪器仪表记录Y图1-7 基本查找流程图【程序】/*基本查找模块*/void commom_search()int i,n,k,w1=1,w2,w3,w4;struct equip q;n=load();printf(n通过名称还是编号查找? 1.名称 2.编号: bb);scanf(%d,&i);if(i=1)dodok=-1; printf(nn请输入名称!名称 bb); scanf(%s,q.name); printf_face(); for(i=0;
15、in;i+)if(strcmp(q.name,eqi.name)=0) k=i; printf_one(k); if(k=-1) printf(nn不存在); printf(nn重试nt1).是 2).返回 bb);scanf(%d,&w1); if(w1=2) menu(); while(k=-1&w1=1); w4=0;w3=0;if(k!=-1) printf(nn 操作nt1.重新搜索2.修改 3.删除 4.返回 bb); scanf(%d,&w2); switch(w2) case 2:w3=modify_data(k);break; case 3:printf(n确定nt1).是
16、2).返回 bb); scanf(%d,&w4); if(w3=1|w4=1) save(n); printf(n成功nn); printf(n操作nt1.重新搜索 2.返回 bb); scanf(%d,&w2); while(w2=1); if(i=2) do do k=-1; printf(nn请输入编号编号: bb); scanf(%s,q.num); printf_face(); for(i=0;in;i+)if(strcmp(q.num,eqi.num)=0) k=i;printf_one(k); if(k=-1) printf(nn不存在); printf(nn重试nt1).是 2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 仪器仪表 管理 语言 课程设计
限制150内