ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:272.50KB ,
资源ID:1143365      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1143365.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(仪器仪表管理系统C语言课程实习报告.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

仪器仪表管理系统C语言课程实习报告.doc

1、C语言课程实习报告学 院: 计算机学院专 业: 计算机科学与技术班 级: 191114学 号: 20111002635姓 名: 高跃攀题目要求19、仪器仪表管理【要求】 系统功能的基本要求:(1) 新的仪器仪表信息的录入;(2) 在借出、归还、维修时对仪器仪表信息的修改;(3) 对报废仪器仪表信息的删除;(4) 按照一定的条件查询符合条件的仪器仪表信息;查询功能至少应该包括仪器仪表基本信息(如仪器仪表名字、仪器仪表编等)的查询、按时间点(借入时间、借出时间、归还时间)查询等(5) 对查询结果的输出。 【提示】 数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借

2、出时间、归还时间、维修时间、状态信息(0代表可借出,1代表已借出,2代表正在维修)等。二、 需求分析根据题目要求,需要把仪器仪表信息的的数据存储在文件里,所以需要提供文件的输入输出等操作;在程序中要提供修改,删除,查找等操作;另外还应该提供键盘式选择菜单实现功能选择。三、 总体设计 仪器仪表管理系统输入查找修改删除退出系统功能模块图四、 详细设计1. 主函数主函数一般设计得比较简洁,只提供输入输出和功能处理的函数调用。其各功能模块用菜单方式选择。本题将main()函数体内的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能模块后能够方便返回到系统界面。【程序】 main(

3、)menu();菜单部分设计如下:【流程图】显示一系列功能选项 输入n,判断n是否是15 N Y根据n的值调用各功能模块函数 主函数的菜单流程图【程序】 menu() int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内*/ do puts(tt*MENU*nn); puts(tttt 1.enter); puts(tttt 2.modify); puts(tttt 3.search); puts(tttt 4.delete); puts(tttt 5.exit); puts(nntt *n); printf(Choice your number(1-5):

4、 bb); scanf(%d,&n); if(n5) /*对选择的数字作判断*/ w=1; getchar(); else w=0; while(w=1); switch(n) case 1:enter();break; /*输入模块*/ case 2:modify();break; /*修改模块*/ case 3:search();break; /*查找模块*/ case 4:delete();break; /*删除模块*/ case 5:exit(0); /*退出*/ 2. 各功能模块设计(1)输入模块 【数据结构】 【分析】 单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪

5、表编号、购买时间、借入时间、借出时间、归还时间、维修时间应采用实型;状态信息是整数,采用整型。实际上操作时发现只有字符型的数据可以在文件中成功被保存,所以本题所有数据一律采用字符型。 struct machinechar name5; char number5; char buy_time5; char borrowin_time5; char borrowout_time5; char return_time5; char repair_time5; char sta5; char time5;/*time为下面程序中按时间查找和修改时记录输入的时间*/macN;/* macN中每个数组元素

6、对应一个仪表仪器*/【注意】macN中的N是仪表仪器个数,程序中采用宏定义的方式,可以随时在源程序宏定义中改,本程序宏定义#define N 50。输入用户要输入仪器的个数n 【流程图】i从0到n1调用输入函数input(i) i!0 Y保存调用函数save(n)输入模块流程图【程序】 /*输入模块*/enter() /*输入模块*/ int i,n; printf(How many machines do you want to enter(0-%d)?:,N-1); scanf(%d,&n); /*要输入的记录个数*/ printf(nEnter data nown); printf(nn

7、ame number buy_time borrowin_time borrowout_time return_time repair_time staten); for(i=0;in;i+) input(i); /*调用输入函数*/ if(i!=0)save(n); /*调用保存函数*/ printf_back(); /*一个任务结束时让用户选择是浏览还是返回*/(2)修改模块需求分析 该模块的功能是显示所有仪器仪表信息,考虑到记录较多,建议采用分屏显示。显示完所有记录后,用户输入要修改的仪器仪表编号,根据编号查找仪器仪表记录,并提示用户修改该记录的哪部分信息,是仪器仪表的借出时间、归还时间

8、、修理时间还是状态,根据用户选择修改相应信息。显示所有记录,让用户看哪个要修改流程图输入要修改的仪器仪表编号是否找到此记录 Y N显示找到的记录,调用修改函数提示没有找到询问用户是否继续修改Y N返回主菜单修改模块流程图程序/*修改模块*/modify() /*修改模块*/ struct machine m; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; /*给用户看全部记录以便确认要修改的记录*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) if(i!=0)&(i%10=0) /*分

9、屏显示*/ printf(nnpass any key to continue.); getch(); puts(nn); printf_one(i); /*调用显示一个记录的函数*/ do printf(nplease enter machine number:);scanf(%s,m.number); /*输入要修改的仪器仪表的编号*/ for(i=0;in;i+) /*查找要修改的仪器仪表的记录*/ if(strcmp(m.number,maci.number)=0) k=i; /*找到要修改的记录*/ m=maci; /*把maci备份给m,以便用户后悔时恢复*/ if(k=-1)pr

10、intf(nnNO exist!Try again); while(k=-1); /*k=-1时表示没有找到*/ printf_face(); /*调用显示数据结构项目函数*/ printf_one(k); /*调用显示一个记录的函数*/ w1=modify_data(k); /*修改仪器仪表记录并且返回保存控制值w1,w1=1则表示用户以确认修改*/ if(w1=1) /*w1=1表示用户确定这次修改*/ printf(nSuccessful_.nnAre you modify another?nnt1).Yes 2).Back with savetbb); scanf(%d,&w0); w

11、2=1; /*控制保存,使w2=1是标记已有过修改*/ else w0=0; if(w2=1) mack=m; /*走到这里是由于用户没有确认这次修改(在调用修改函数w1=modify_data(k)时没有确认),使w0=0,为了终止循环; mack=m 则把备份的m恢复给mack,这样的好处是确保在此之前修改过的成功保存,而本次不修改*/ if(w0!=1&w2=1) /*w0!=1则表示正常返回,w2=1表示在此之前有过修改,此时就保存用户已经确认修改的并返回*/ save(n); /*w2!=1表示在此次之前没有修改过,而又反悔这次修改,则不保存返回*/ while(w0=1); pri

12、ntf_back();说明:调用w1=modify_data(k)修改函数时,若返回值为1则表示用户在修改函数里面确认了这次修改,其中i表示第i个记录(要修改的);若返回值不为1则不保存这次修改,但保存这次之前的修改,这由w2来控制,w2=1则表示有过用户修改确认史。(3)查找模块显示一系列功能选项流程图输入n,判断n是否是1-3 N Y根据n的值调用各子功能模块函数查找模块流程图程序 /*查找模块*/int search() int m; puts(tt*nn); puts(tttt mon_search); puts(tttt 2.point_search); puts(tttt 3.ex

13、it); puts(nntt *n); printf(Please choice your number(1-3): bb); scanf(%d,&m); switch(m) case 1:common_search();break; case 2:point_search();break; case 3:exit(0); (1.1) 基本查找 分析 基本信息查找包括了仪器仪表的名称以及编号的查找,所以该子功能模块的功能是先让用户选择是按仪器仪表名称还是按仪器仪表编号查找,根据用户选择的进行查找,找到以后增加删除和修改功能。 流程图调用加载函数n=load();并计算可以查找的记录个数n 用户

14、选择1 2输入仪器仪表名称输入仪器仪表编号 是否找到该仪器仪表记录Y N 提示没有找到显示找到的记录询问用户是否继续查找Y N让用户选择1).查找另一个2).修改3).删除4).返回主菜单返回主菜单基本查找模块流程图程序 /*基本查找模块*/ int common_search() /*基本查找模块*/ int i,n,k,w1=1,w2,w3,w4; struct machine m; n=load(); printf(Search the machine by name or number?1-name,2-number:); scanf(%d,&i); if(i=1) do do k=-

15、1; printf(nnEnter the machine name that you want to search! name:); scanf(%s,m.name); /*输入要查找的仪器仪表的名称*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找想要的记录*/ if(strcmp(m.name,maci.name)=0) k=i; /*找到要查找的记录*/ printf_one(k); /*调用显示一个记录的函数*/ if(k=-1) printf(nnNO exist! please); printf(nnAre you aga

16、in?nt1).again 2).NO and back bb); scanf(%d,&w1); while(w1=1) menu();/*保证第一次查找的基础上再查找找不到时能退出*/ while(k=-1&w1=1); /*如果w1!=1则直接返回*/ w4=0;w3=0; if(k!=-1) /*k!=-1表示找到,如果找到则选择操作*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Delete 4).Back menu bb); scanf(%d,&w2); switch(w2) case 2:w3=

17、modify_data(k);break; /*调用修改数据函数*/ case 3:printf(nAre you sure?nt1).Sure 2).No and back bb); scanf(%d,&w4); if(w3=1|w4=1) save(n); printf(nnSuccessful._.); printf(nnWhat do you want to do?nt1).Search another 2).Back bb); scanf(%d,&w2); while(w2=1); if(i=2) do do k=-1; printf(nnEnter the machine numb

18、er that you want to search! number:); scanf(%s,m.number); /*输入要查找的仪器仪表编号*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找想要的记录*/ if(strcmp(m.number,maci.number)=0) k=i; /*找到要查找的记录*/ printf_one(k); /*调用显示一个记录的函数*/ if(k=-1) printf(nnNO exist! please); printf(nnAre you again?nt1).again 2).NO and b

19、ack bb); scanf(%d,&w1); while(w1=1)menu();/*保证第一次查找的基础上再查找找不到时能退出*/ while(k=-1&w1=1); /*如果w1!=1则直接返回*/ w4=0;w3=0; if(k!=-1) /*k!=-1表示找到,如果找到则选择操作*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Delete 4).Back menu bb); scanf(%d,&w2); switch(w2) case 2:w3=modify_data(k);break; /*调用

20、修改数据函数*/ case 3:printf(nAre you sure?nt1).Sure 2).No and back bb); scanf(%d,&w4); if(w3=1|w4=1) save(n); printf(nnSuccessful._.); printf(nnWhat do you want to do?nt1).Search another 2).Back bb); scanf(%d,&w2); while(w2=1); menu(); /*调用菜单函数*/(1.2) 按时间点查找 流程图调用加载函数n=load();并计算可以查找的记录个数n 用户选择1 2输入仪器仪表借

21、出时间输入仪器仪表借入时间 3 输入仪器仪表归还时间是否找到该仪器仪表记录Y N 提示没有找到显示找到的记录询问用户是否继续查找Y N让用户选择1).查找另一个2).修改3).删除4).返回主菜单返回主菜单时间点查找模块流程图程序/*时间点查找模块*/int point_search() /*时间点查找模块*/ int i,n,k,w1=1,w2,w3,w4; struct machine m; n=load(); printf(Press 1-borrowin_time 2-borrowout_time or 3-return_time); scanf(%d,&i); /*选择要查找的是哪个

22、时间点*/ if(i=1) do do k=-1; printf(nnEnter the machine borrowin time that you want to search! borrowin time:); scanf(%s,m.time); /*输入要查找的仪器仪表的借入时间*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找想要的记录*/ if(strcmp(m.time,maci.borrowin_time)=0) k=i; /*找到要查找的记录*/ printf_one(k); /*调用显示一个记录的函数*/ if(k=

23、-1) printf(nnNO exist! please); printf(nnAre you again?nt1).again 2).NO and back bb); scanf(%d,&w1); while(w1=1) menu();/*保证第一次查找的基础上再查找找不到时能退出*/ while(k=-1&w1=1); /*如果w1!=1则直接返回*/ w4=0;w3=0; if(k!=-1) /*k!=-1表示找到,如果找到则选择操作*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Delete 4)

24、.Back menu bb); scanf(%d,&w2); switch(w2) case 2:w3=modify_data(k);break; /*调用修改数据函数*/ case 3:printf(nAre you sure?nt1).Sure 2).No and back bb); scanf(%d,&w4); if(w3=1|w4=1) save(n); printf(nnSuccessful._.); printf(nnWhat do you want to do?nt1).Search another 2).Back bb); scanf(%d,&w2); while(w2=1);

25、 if(i=2) do do k=-1; printf(nnEnter borrowout time:); scanf(%s,m.time); /*输入要查找的仪器仪表的借出时间*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找想要的记录*/ if(strcmp(m.time,maci.borrowout_time)=0) k=i; /*找到要查找的记录*/ printf_one(k); /*调用显示一个记录的函数*/ if(k=-1) printf(nnNO exist! please); printf(nnAre you again

26、?nt1).again 2).NO and back bb); scanf(%d,&w1); while(w1=1)menu();/*保证第一次查找的基础上再查找找不到时能退出*/ while(k=-1&w1=1); /*如果w1!=1则直接返回*/ w4=0;w3=0; if(k!=-1) /*k!=-1表示找到,如果找到则选择操作*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Delete 4).Back menu bb); scanf(%d,&w2); switch(w2) case 2:w3=mod

27、ify_data(k);break; /*调用修改数据函数*/ case 3:printf(nAre you sure?nt1).Sure 2).No and back bb); scanf(%d,&w4); if(w3=1|w4=1) save(n); printf(nnSuccessful._.); printf(nnWhat do you want to do?nt1).Search another 2).Back bb); scanf(%d,&w2); while(w2=1); if(i=3) do do k=-1; printf(nnEnter return time:); scan

28、f(%s,m.time); /*输入要查找的仪器仪表的归还时间*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0;in;i+) /*查找想要的记录*/ if(strcmp(m.time,maci.return_time)=0) k=i; /*找到要查找的记录*/ printf_one(k); /*调用显示一个记录的函数*/ if(k=-1) printf(nnNO exist! please); printf(nnAre you again?nt1).again 2).NO and back bb); scanf(%d,&w1); while(w1=1) menu();/*保证第一次查找的基础上再查找找不到时能退出*/ while(k=-1&w1=1); /*如果w1!=1则直接返回*/ w4=0;w3=0; if(k!=-1) /*k!=-1表示找到,如果找到则选择操作*/ printf(nnWhat do you want to do?nt1).Search another 2).Modify 3).Delete 4).Back menu bb); scanf(%d,&w2); switch(w2) case 2:w3=modify_data(k);break; /*调用修改数据函数*/

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922