版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计课程设计报告 专业: 电气工程及其自动化 班级:电气121 姓名:孙亮 指导教师:杨莉 完成日期: 2013年 07月 15日山东工商学院 信息与电子工程学院一、课程设计的目的1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;3)培养学生在项目开发中团队合作精神、创新意识及能力。二、设计题目及实现题目仪器仪表管理系统一、 需求分析仪器仪表信息用文件存储,故要提供文件的输入输出操作;要能够完成对仪器仪表
2、信息的修改和删除,需要对提供仪器仪表信息修改和删除操作;实现对仪器仪表信息的查询和统计及显示操作;另外还要提供键盘式选择菜单以实现功能选择。二、总体设计整个仪器仪表管理系统分为仪器表信息输入模块、仪器表信息修改和删除模块、仪器表信息查询和统计模块。三、详细设计 数据结构采用结构体: Struct instrumentInfo Char instrName20; /仪器仪表名Char instrNo10; /仪器仪表编号Char buyDate20; /购买时间Char borrowDate20; /借入时间Char lendDate20; /借出时间Char returnDate20; /归还
3、时间Char repairDate20; /维修时间Int state; /状态信息(0代表可借出,1代表已借出,2代表正在维修) InstrInfo;(1)输入模块把仪器仪表信息写入仪器仪表信息文件。(2)修改和删除模块通过菜单选择借出操作,查找文件仪器仪表信息,找到相应的仪器仪表,如果仪器仪表状态为0,则允许借出,在文件中更改仪器仪表状态为1,更改借出时间;否则,即仪器仪表借出或正在维修,则输出“抱歉,仪器仪表已借出(正在维修)!”这个过程是一个对文件查找(读文件、判断是否是要查找的纪录)、重新写入的过程。删除操作只需读文件,判断所读纪录是不是要删除的记录,如果是,则舍弃;否则重新写入文件
4、。(3)查询和统计模块 通过菜单选择查询或统计操作,若选择查询,则需要再选择查询方式:基本信息、时间段、时间点。基本信息查询,就显示所有记录,这是一个读文件和输出的过程。时间段查询,则要输入起止时间和表征字段(可以用0表示购买起止时间,1表示借出起止时间,2表示维修起止时间)。例如输入2004 1 1 2004 10 10 0 表示查询2004年1月1日到2004年10月10日之间购买的仪器仪表信息。则读一条记录,判断购买时间是否处于起止时间之间,如果处于,则打印输出,否则舍弃。借出和维修查询与此类似。程序:#include<stdio.h>int main()menu(); vo
5、id menu()int n,w;doputs("tt*仪器仪表信息管理系统*nn"); puts("tttt 1.仪器信息录入"); puts("tttt 2.添加新的仪器"); puts("tttt 3.修改仪器信息"); puts("tttt 4.删除仪器信息"); puts("tttt 5.查询仪器信息"); puts("tttt 6.浏览"); puts("tttt 7.退出"); puts("nntt*n"
6、;); printf("选择您需要的服务(1-7):bb"); scanf("%d",&n); if(n<1|n>7) w=1; getchar(); else w=0;while(w=1);switch(n)case 1:enter();break; case 2:add();break; case 3:modify();break; case 4:del();break; case 5:search();break; case 6:browse();break; case 7:exit(0);void enter()int i,n
7、;printf("你要输入的仪器数量(1-%d)",N);scanf("%d",&n);printf("n请输入相关信息nn");for(i=0;i<n;i+)printf("n输入第%d台仪器的信息.n",i+1);input(i);if(i!=0) save(n);menu();void add()int i,n,b,k;FILE*fp;n=load();printf("你想要添加的仪器的数量(0-%d)?:",N-1-n);scanf("%d",&
8、b);k=b+n;for(i=n;i<k;i+)printf("n请输入第%d台仪器的信息.n",i-n+1);input(i);if(fp=fopen("machine.txt","ab")=NULL) printf("不能打开文件n");exit(0);for(i=n;i<k;i+) if(fwrite(&mi,sizeof(struct machine),1,fp)!=1)printf("文件书写错误n")fclose(fp);printf_back();void mo
9、dify()struct machine s;int i,n,k,w0=1,w1,w2=0;n=load();dok=-1;printf face();for(i=0;i<n;i+)if(i!=0)&&(i%10=0)printf("nn Remember NO. which needed modify.n");getchar();getchar();puts("nn");printf one(i); doprintf("nn请输入您想修改的仪器编号! NO.:");sacanf("%s"),
10、s.num);for(i=0;i<n;i+)if(strcmp(s.num,mi.num)=0)k=1;s=mi;if(k=-1)printf("nn该仪器已借出!请再次查询");while(k=-1);printf face();printf one(k);w1=modify data(k);if(w1=1)printf("n信息修改成功.nn请问您想修改其他仪器信息吗?nnt 1).是 2).储存并返回tbb");scanf("%d",&w0);w2=1;elsew0=0;if(w2=1)mk=s;if(w0!=1&
11、amp;&w2=1)save(n);while(w0=1);menu();void del()struct machine s;int i,n,k,w0=1,w1,w2=0;n=load();dok=-1; /*给用户看全部记录以便去确认要删除的记录*/printf face();for(i=0;i<n;i+)if(i!=o)&&(i%10=0)printf("nn remember NO.which needed deleted.n按任意键继续.");getchar();getchar();puts("nn");print
12、f one(i);doprintf("nn输入您要删除的仪器编号! 第:");scanf("%s",s.sum);for(i=0;i<n;i+)if(strcmp(s.num,mi.num)=0)k=i;s=mi;if(k=-1)printf("nn仪器不存在!请再次输入");while(k=-1);printf face();printf one(k);printf("您确定吗?nntt1).确定ntt2).返回而不存储n");printf("请选择? bb");scanf("
13、%d",&w1);if(w1=1)mk.condition=-1;printf("n删除成功nn您还想删除其他仪器吗?nnt 1).是的 2).储存并返回tbb");scanf("%d",&w0);w2=1;elsew0=0;if(w2=1)mk=s;if(w0!=1|w2=1)save(n);while(w0=1);menu();void browse()int i,n;n=load();printf face();for(i=0;i<n;i+)if(i!=0)&&i%10=0)printf("
14、nn按任意键继续.");getchar();getchar();puts("nn");printf one(i); /*调用显示一个记录的函数*/printf("t有%d台仪器的记录.n",n);printf("n按任意键继续.n");getchar(); /*按任意键*/menu();void search()int n,w;doputs("tt=菜单=nn");puts("tttt 查询与统计 ");puts("tttt 1.按名称");puts("t
15、ttt 2.按编号");puts("tttt 3.按仪器状态信息");puts("tttt 4.按时间段");puts("tttt 5.按时间点");puts("tttt 6.返回");puts("nntt =n");printf("请选择查询方式(1-6):bb");scanf("%d",&n);if(n<1|n>6)w=1;printf("input error!n");getchar();else w
16、=0;while(w=1);switch(n)case 1:case 2:case 3:sbmnc(n);break;case 4:sbptime();break;case 5:sbdtime();break;case 6:menu();void sbmc(int c)int i,n,j,k,w1=1,w2;struct machine t;n=load();do do k=-1; if(c=1) printf("nn输入仪器名称 名称:"); scanf("%s",); printf face(); for(i=0,j=0;j<n;i
17、+) if(strcmp(,)=0) k=i; printf one(k);j+; printf("n 有%d %s.台仪器符合这一名称"); if(c=2) printf("nn输入仪器编号 编号:"); scanf("%s",t.num); printf face(); for(i=0,j=0;i<n;i+) if(strcmp(t.num,mi.num)=0) k=i; printf one(k);j+; printf("n有%d %s.台仪器符合这一编号"); if(c=3)
18、 printf("nn请输入您想要查询的仪器的状态信息 状态信息:"); scanf("%d",&t.condition); printf face(); for(i=0,j=0;i<n;j+) if(t.condition=mi.condition) k=i;printf one(k);j+ printf("n 有%d台仪器处于这种状态"); if(k=-1) printf("nn找不到符合要求的结果"); printf("nn您想再次尝试吗?nt 1再次搜索 2 返回 bb")
19、; scanf("%d",&w1); if(w1!=1) break; while(k=-1&&w1=1); printf("您还想做什么 nt 1再次搜索 2返回 bb"); scanf("%d",&w2); while(w2=1);search();void sbparttime(int c)int i,j,n;long t,s;FILE *fp;printf("nn输入您想查询的时间段");printf("n从:");scanf("%1d"
20、;,&t);printf("到:");scanf("%1d",&s);printf face();if(c=1)n=load(); for(i=0,j=0;i<n;i+) if(t<=mi.buy time&&i.buy time<=s) printf one(i);j+; if(j=0)puts("这段时间没有仪器购入"); else printf("在这段时间内有%d台仪器购入.nn",j);if(c=2)n=load(); for(i=0,j=0;i<n
21、;i+) if(t<=mi.borrow time&&mi.borrow time<=s) printf one(i);i+ if(t<=mi.borrow time&&mi.borrow time<=s) printf one(i);j+ if(j=0)puts("这段时间没有仪器借入."); else printf("在这段时间内有%d台仪器借入.nn",j);if(c=3) if(fp=fopen("lended.txt","rb")=NULL) pri
22、ntf("n打不开文件n"); for(n=0;!feof(fp);n+); fread(&mn,sizeof(struct machine),1,fp); fclose(fp); for(i=0,j=0;i<n-1;i+) if(t<=mi.lend time&&mi.lend time<=s) printf one(i);j+ if(j=0)puts("这段时间没有机器借出"); else printf("在这段时间内有%d台仪器借出.nn",j);if(c=4) if(fp=fopen(
23、"returned.txt","rb")=NULL) printf("n打不开文件n"); for(n=0;!feof(fp);n+); fread(&mn,sizeof(struct machine),1,fp); fclose(fp); for(i=0,j=0;i<n-1;i+) if(t<=mi.return time&&mi.return time<=s) printf one(i);j+ if(j=0)puts("这段时间没有机器返还"); else printf
24、("在这段时间内有%d台仪器返还.nn",j);if(c=5) if(fp=fopen("mended.txt","rb")=NULL) printf("n打不开文件n"); for(n=0;!feof(fp);n+) fread(&mn,sizeof(struct machine),1,fp); fclose(fp); for(i=0,j=0;i<n-1;i+) if(t<=mi.mend time&&mi.mend time<=s) printf one(i);j+;
25、if(j=0)puts("这段时间没有一起在维修"); else printf("这段时间有%d台仪器在维修.nn",j);void sbdtime()int n,w,m2;dodoputs("tt=menu=nn");puts("tttt 查询与统计");puts("tttt 1.按购买时间");puts("tttt 2.按借入时间");puts("tttt 3.按解出时间");puts("tttt 4.按返回时间");puts(&q
26、uot;tttt 5.按修理时间");puts("tttt 6.返回");puts("nntt=n");printf("选择要查询的内容(1-6):bb");scanf("%d",&n);if(n<1|n>6)w=1;printf("无效输入!n");getchar();else w=0;while(w=1);if(n=6)search();else bdetailtime(n);printf("您想做什么?nt 1)再搜索一次 2)返回 bb"
27、);scanf("%d",&w2);while(w2=1);search();void bdetailtime(int c)int i,n,j,k,w2;long t;FILE *fp;if(c=1|c=2) n=load();else if(c=3)if(fp=fopen("lended.txt","rb")=NULL) printf("n打不开文件n")if(c=4)if(fp=fopen("returned.txt"."rb")=NULL) printf(&qu
28、ot;n打不开文件n");if(c=5)if(fp=fopen("mended.txt"."rb")=NULL) printf("n打不开文件n");for(n=0;!feof(fp);n+) fread(&mn,sizeof(sturct machine),1,fp);fclose(fp);n-=1;doprintf("nn输入您想要搜索的时间点!");scanf("%ld",&t);printf face();if(c=1) puts("nt=buy=&q
29、uot;); for(i=0,j=0,k=-1;i<n;i+) if(t=mi.buy time) k=i;printf one(k);j+; if(j=0)puts("这一时间没有仪器购入.n"); else printf("这一 时间有%d台仪器购入.n",j);if(c=2) puts("nt=borrow="); for(i=0,j=0,k=-1;i<n;i+) if(t=mi.borrow_time) k=i;printf_one(k);j+; if(j=0)puts("这一时间没有仪器借入.n&quo
30、t;); else printf("这一 时间有%d台仪器借入.n",j);if(c=3) puts("nt=lend="); for(i=0,j=0,k=-1;i<n;i+) if(t=mi.lend_time) k=i;printf_one(k);j+ if(j=0)puts("这一时间没有仪器借出.n"); else printf("这一 时间有%d台仪器借出.n",j);if(c=4) puts("nt=return="); for(i=0,j=0,k=-1;i<n;i+)
31、if(t=mi.return_time) k=i;printf_one(k);j+ if(j=0)puts("这一时间没有仪器返还.n"); else printf("这一 时间有%d台仪器返还.n",j);if(c=5) puts("nt=mend="); for(i=0,j=0,k=-1;i<n;i+) if(t=mi.mend_time) k=i;printf_one(k);j+ if(j=0)puts("这一时间没有仪器在维修.n"); else printf("这一 时间有%d台仪器在维修
32、.n",j);if(k=-1)printf("找不到符合要求的记录!n");printf("您还想做什么?nt 1)再次搜索 2).返回 bb");scanf("%d",&w2);while(w2=1);sbdtime();int load()FILE*fp;int i;if(fp=fopen("machine.txt","rb")=NULL)printf("n打不开文件n");return 0;for(i=0;!feof(fp);i+)fread(&
33、;mi,sizeof(struct machine),1,fp);fclose(fp);return(i-1);int modify data(int i)int c,w1;FILE *fp;doputs("n该仪器 1)已借出 2)已返还 3)正在维修 n");printf("您需要修改什么(1-3)?: bb");scanf("%d",&c);if(c>3|c<1)puts("无效输入!请再次尝试!");getchar();while(c>3|c<1);doswitch(c) c
34、ase1:puts("借出时间:");scanf("%1d",&mi.lend time); mi.condition=1;break; case2:puts("返还时间:");scanf("%1d",&mi.return time);mi.condition=0;break; case3:puts("维修时间:");scanf("%1d",&mi.mend time);mi.condition=2;break;puts("n Now:n&q
35、uot;);printf face();printf one(i);printf("您确定吗?nnt1).确定 2).重新修改 3).返回而不储存bb");scanf("%d",&w1);while(w1=2);if(w1=1)if(c=1)if(fp=fopen("lended.txt","ab")=NULL)printf("打不开文件n");exit(0);if(c=2)if(fp=fopen("returned.txt","ab")=NULL
36、)printf("打不开文件n");exit(0);if(c=3)if(fp=fopen("mended.txt","ab")=NULL)printf("打不开文件n");exit(0);if(fwrite(&mi,sizeof(struct machine),1,fp)!=1)printf("文件书写错误n");fclose(fp);return(w1);void printf one(int i)printf("%-5s %4s",,mi.num);printf("%91d %91d %91d %91d %3dn",mi.buy time,mi.borrow time,mi.lend time,mi.return time,mi.mend.time,mi.condition);void printf face()printf("名称 编号 购入时间 借出时间 返还时间 修理时间 状态信息n");void input(int i)printf("名称:");scanf("%s&qu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咳嗽咳痰护理评估的标准
- 新型职业者劳动合同范本下载
- 2026年劳动合同解除与赔偿标准全解读
- 2026年国际贸易合同风险防范指南
- 2025年下半年军队文职公共课-基础知识(马克思主义理论)-考前密训3课件(11.11)
- 2026年党支部思想政治工作报告分析(2篇)
- 医疗护理文件书写的职业道德
- 宝宝饮食与家庭习惯
- 外科护理课件制作中的品牌管理
- 护理服务:护理团队建设与激励
- 地质科普知识讲座
- 地理科学的发展及其对人类社会的贡献
- GB/T 43683.1-2024水轮发电机组安装程序与公差导则第1部分:总则
- 2024年江苏南京紫金投资集团有限责任公司招聘笔试参考题库含答案解析
- 物料降本规划方案
- Python经济大数据分析 课件 第7章 Python应用航空公司客户价值分析
- 云南德福环保有限公司2000t-a含油硅藻土处理和综合利用工程 环评报告
- 【实用资料】马克思主义基本原理绪论PPT
- 安全检查流程图
- GB/T 1921-2004工业蒸汽锅炉参数系列
- 基于web计算机应用竞赛管理系统论文
评论
0/150
提交评论