




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中国地质大学(武汉) 计算机学院信息安全专业 C语言课程设计指导老师: 专业: 班号: 学号: 姓名: 题目要求:仪器仪表管理 要求 系统功能的基本要求:(1) 新的仪器仪表信息录入。(2) 在借出、归还、维修时对仪器仪表信息的修改。(3) 对报废仪器仪表信息的删除。(4) 按照一定的条件查询、统计符合条件的仪器仪表信息;查询功能至少应包括仪器仪表基本信息的查询、按时间段(如在2004年1月1日到2004年10月10日购买、借出、维修的仪器仪表等)查询、按时间点(借入时间、借出时间、归还时间)查询等,统计功能至少包括按时间段统计、安仪器仪表的基本信息统计等。(5) 对查询、统计的结果打印输出。 提示 数据结构采用结构体。仪器仪表信息包括仪器仪表名、仪器仪表编号、购买时间、借入时间、借出时间、归还时间、维修时间、状态信息(0代表可借出,1代表可借入,2代表正在维修)等。需求分析:根据题目要求,由于仪器仪表信息是存放在文件,所以应提供文件的输入、输出等操作;在程序中要浏览仪器仪表的信息。应提供录入、显示、查找,修改等操作;另外还应提供键盘式选择菜单实现功能选择。总体设计:根据上面的需求分析,可以将这个系统的设计分为三个大的模块:仪表仪器录入、仪表仪器修改(删除)、仪表仪器查询详细设计:1. 主函数 主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其中流程图如下: 程序 其中为主函数设定了一个菜单函数,方便用于选择其他模块函数。用getch();获得所按下的键值,用函数内的局部静态变量储存键值对应的其他功能函数。void menu(char c)static int n=0;if (c=s|c=S) n+;if (c=w|c=W) n-;if (n=5) n=1;if (n=0) n=4;if (c=13)switch (n)case 1: if (insert()=0) insert(); break;case 2: change(); break;case 3: search(); break;case 4: exit(0);system(cls);printf(nnnn); printf( |-仪器仪表管理系统-|n); printf( | |n); printf( | 姓名:XXX |n); printf( | 班级:XXXXX 19 |n); printf( | 学号:XXXXXX |n); printf( | |n);printf( | |n);printf( | |n);if (n=1)printf( | - 仪表仪器录入 仪表仪器借还/删除 仪表仪器查询 退出 仪表仪器借出 仪表仪器归还 仪表仪器开始维修 仪表仪器报废 返回主菜单 -n); else printf( 返回主菜单n); printf(n); printf(n); printf( |-|n); c=getch(); /*while*/ else system(cls); printf(nnnn); printf( |-仪器仪表管理系统-|n); printf(n);printf( 请输入仪器的名字:%sn,equ_input); printf(n);printf(n);printf( 对不起,找不到该仪器n);printf(n);printf( 可能是由于您输入仪器的名称错误n);printf(n);printf( 也可能是由于无此仪器,还未购买n);printf(n);printf(n);printf(n);printf( 修改失败,请按任意键返回主菜单n);printf(n);printf(n);printf( |-|n);getch(); /*if(strcmp(equ_input,)=0)else*/ return; 借出模块首先输入借出的时间,然后在仪器仪表的结构体数组中查找该仪器仪表在这个输入的时间点上有无其他状态。若无其他状态则可以借出,否者不可借出。开始输入借出时间是否空闲返回主菜单标记状态为借出结束是 否 程序int mylean(int n)int year,month,day;system(cls); printf(nnnn);printf( |-仪器仪表管理系统-|n);printf(n); printf(n); printf(n);printf( 请输入借出时间(以此格式年/月/日):);scanf(%d/%d/%d,&year,&month,&day);if (equn.timeyearmonthday=inlib) printf(n); printf(n); printf(n); printf(n);printf( 借出成功,请按任意键返回上一级菜单n);printf(n); printf(n); printf(n); printf(n);printf( |-|n);state(year,month,day,n,lean);getch(); return(1); else printf(n); printf(n); printf( 对不起!n);printf( 此仪器还没有购买或还没有归还或正在维修中,n);printf( 故无法借出。n);printf(n); printf(n);printf( 借出失败,请按任意键返回上一级菜单n);printf(n);printf( |-|n);getch();return(0); /* mylean */归还模块 与借出模块相同,首先输入归还的时间,然后在仪器仪表的结构体数组中查找该仪器仪表在这个归还的时间点上有无借出状态。若有借出状态则可以归还,否者不可归还。开始输入归还时间是否借出返回主菜单标记状态为归还结束是 否 程序int myback(int n) int year,month,day; system(cls); printf(nnnn); printf( |-仪器仪表管理系统-|n); printf(n); printf(n); printf(n); printf( 请输入归还时间(以此格式年/月/日):); scanf(%d/%d/%d,&year,&month,&day); if (equn.timeyearmonthday=lean) printf(n); printf(n); printf(n); printf(n); printf( 归还成功,请按任意键返回上一级菜单n); printf(n); printf(n); printf(n); printf(n); printf( |-|n); state(year,month,day,n,inlib); getch(); return(1); else printf(n); printf(n); printf( 对不起!n); printf( 此仪器还没有购买或还没有借出或正在维修中,n); printf( 故无法归还。n); printf(n); printf(n); printf( 归还失败,请按任意键返回上一级菜单n); printf(n); printf( |-|n); getch(); return(0); /* myback */维修模块同样是首先输入维修开始的时间和维修结束的时间,然后在仪器仪表的结构体数组中查找该仪器仪表在这个归还的时间点上有其他状态。若有为空闲状态则可以维修,否者不可维修。开始输入维修开始、结束时间是否空闲返回主菜单标记状态为维修结束是 否 程序int myrepair(int n) int year,month,day; system(cls); printf(nnnn); printf( |-仪器仪表管理系统-|n); printf(n); printf(n); printf(n); printf( 请输入开始维修时间(以此格式年/月/日):); scanf(%d/%d/%d,&year,&month,&day); if (equn.timeyearmonthday=inlib) state(year,month,day,n,repair); printf(n); printf(n); printf( 请输入结束维修时间(以此格式年/月/日):); scanf(%d/%d/%d,&year,&month,&day); state(year,month,day,n,inlib); printf(n); printf(n); printf( 维修成功,请按任意键返回上一级菜单n); printf(n); printf(n); printf( |-|n); getch(); return(1); else printf(n); printf(n); printf( 对不起!n); printf( 此仪器还没有购买或还没有借出或正在维修中,n); printf( 故无法维修。n); printf(n); printf(n); printf( 维修失败,请按任意键返回上一级菜单n); printf(n); printf( |-|n); getch(); return(0); /* myrepair */删除模块删除模块将删除本仪器仪表,具体删除过程为将需要删除的后一项覆盖至删除的这一项,即需删除以后的每一个结构体元素都向前移一个单位。开始是否删除返回主菜单循环将需删除的后面所有元素整体向前移动一个单位结束是 否 程序int mydel(int n) char c=s; int x=0; while (1) system(cls); if (c=s|c=S) x+; if (c=w|c=W) x-; if (x=3) x=1; if (x=0) x=2; if (c=13) if(x=1) int i; for (i=n;i 确定要报废仪器仪表 我要再考虑考虑 按名称查询 按时间段查询 按时间点查询 返回主菜单 -n);elseprintf( 返回主菜单n);printf(n);printf(n);printf(n);printf( |-|n);c=getch(); /* while(1) */因不管查找条件是什么,最终都会对应到需查找的仪器仪表上,故补充一个公共函数condi_p();,输出查找一个仪器仪表的结果程序void condi_p(int year,int month,int day,int n,int *bool_lean,int *bool_repair) if (equn.timeyearmonthday=buy) printf( %4d年%2d月%2d日购买%s仪器仪表n,year,month,day,); /* 借出&归还 */ if (equn.timeyearmonthday=lean&(*bool_lean)=0) printf( %4d年%2d月%2d日借出%s仪器仪表n,year,month,day,); (*bool_lean)=1; if (equn.timeyearmonthday=inlib&(*bool_lean)=1) printf( %4d年%2d月%2d日归还%s仪器仪表n,year,month,day,); (*bool_lean)=0; /* 借出&归还 */ /* 维修&修完 */ if (equn.timeyearmonthday=repair&(*bool_repair)=0) printf( %4d年%2d月%2d日开始维修%s仪器仪表n,year,month,day,); (*bool_repair)=1; if (equn.timeyearmonthday=inlib&(*bool_repair)=1) printf( %4d年%2d月%2d日结束维修%s仪器仪表n,year,month,day,); (*bool_repair)=0; /* 维修&修完 */ 按名称查询首先输入仪器仪表的名称,然后在结构体数组中查找是否存在这个仪器仪表,若是则循环该仪器仪表的所有时间点来判断改时间点处于什么状态,并用公共函数condi_p();来输出。开始输入仪器仪表名称是否存在返回主菜单循环查找并输出结束是 否 程序int name() char equ_input100; int i; system(cls); printf(n); printf( |-仪器仪表管理系统-|n); printf(n);printf( 请输入仪器的名字:);scanf(%s,equ_input);printf(n);i=presence(equ_input); if (i!=0) int j_y,j_m,j_d,bool_lean=0,bool_repair=0; for (j_y=0;j_y=year_max;j_y+) for (j_m=0;j_m=month_max;j_m+) for (j_d=0;j_d=day_max;j_d+) /P(j_y,j
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 会计领域求职宝典:工资会计面试模拟试题与解析资源
- 学习新修订《高等学校新冠肺炎疫情防控技术方案(第六版)》全文
- 2022第九个烈士纪念日专题
- 叶县教师招聘面试实战模拟题库
- 品牌服装成本体系解析
- 物质进出细胞
- 【开题报告】小学语文高段课堂随文小练笔的策略研究
- 软件绘画教学体系构建
- 十二指肠溃疡治疗要点
- 校庆庆典活动策划与执行框架
- 建筑工程安全管理提升方案
- 肩关节脱位-课件
- 对新员工保密基本培训
- 2025届湖北省部分学校新高三新起点暑期效果联合质量检测数学试卷(解析版)
- GB/T 6553-2024严酷环境条件下使用的电气绝缘材料评定耐电痕化和蚀损的试验方法
- 2024年苏教版四年级数学上册全册教案
- 2024新科普版英语七年级上单词默写表
- 金融行业高质量发展专题研究报告
- 2024年首届全国“红旗杯”班组长大赛考试题库(单选、多选、判断题)
- 知识题库-人社练兵比武竞赛测试题及答案(五)
- 五年级上册科学青岛版全册教案
评论
0/150
提交评论