文档详情

仪器仪表管理c语言仪器仪表管理课程设计报告书

无***
实名认证
店铺
DOC
462KB
约47页
文档ID:152382173
仪器仪表管理c语言仪器仪表管理课程设计报告书_第1页
1/47

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. 主函数主函数一般设计得比较简洁,只提供输入、处理和输出部分的函数调用其中各功能模块用菜单方式选择本题main()函数体的界面选择部分语句单独抽取出来作为一独立函数,目的在于系统执行完每部分功能后能够方便返回到系统界面其流程图如下:结束根据n的值调用各功能模块函数输入n,判断m是否是0~9?显示一系列功能选项开始NY图1-2 主函数流程图[程序]main(){ menu();} menu(){ int n,w;/*变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字围*/do { printf("\t\t**********************MENU*****************************\n\n"); printf("\n\t\t\t\t1.Enter new data"); printf("\n\t\t\t\t2.add new data"); printf("\n\t\t\t\t3.modify data"); printf("\n\t\t\t\t4.delete data"); printf("\n\t\t\t\t5.search data"); printf("\n\t\t\t\t6.exit"); printf("\n\n\t\t********************************************************\n"); printf("choose number(1-6): [ ]\b\b"); scanf("%d",&n); if(n<1||n>6) /*对选择的数字做判断*/ { 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).输入模块[数据结构][分析]单独看各数据信息,仪器仪表名是字符型,可采用字符型数组;仪器仪表编号、购买时间、借出时间、借入时间、归还时间、维修时间应采用实型;状态信息是整数,应采用整型;实际上操作时发现只有字符型的数据才可以在文件中成功保存,故本题所有数据均采用字符型。

struct equip { char num[10];char name[50];char pt[10]; char bt[10];char lt[10]; char rt[10]; char mt[10]; char st[5]; char time[5];  /*为下面程序中按时间查找和修改时记录输入的时间*/}eq[N]; /*eq[N]中每个数组元素对应一台仪器信息*/[注意]eq[N]中的N是仪器仪表个数,程序采用宏定义的方式,可以随时在源程序宏定义中修改,本程序宏定义#define N 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 录入日期\n\n"); printf("\n 名称 编号 购买时间 借出时间 借入时间 归还时间 维修时间 状态\n"); for(i=0;i

追加模块流程图如下:开始结束保存增加的记录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",&m); /*输入要添加的数量*/ k=m+n; for(i=n;i

显示完所有纪录后,用户输入要修改的仪器仪表编号,根据编号查找仪器的记录,并提示用户修改该记录的那部分信息,是借出时间、归还时间、维修时间还是状态,根据用户的选择修改相应信息修改模块流程图如下:开始提示没有找到结束返回主菜单询问用户是否继续修改?显示找到的记录调用修改记录i!=0?输入要修改的编号显示所有记录,让用户看那条信息需要修改NYYYN图1-5 修改模块流程图[程序]/***********************修改模块**********************/void modify() { struct equip q; /* FILE *fp;*/ int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; printf_face(); for(i=0;i

基本查找模块的流程图如下:调用加载函数n=load(),并计算可以查找的记录个数n输入仪器仪表编号输入仪器仪表名称用户选择12返回主菜单让用户选择1.查找另一个 2.修改 3.删除 4.返回主菜单询问用户是否继续查找提示没有找到显示找到的记录是否找到该仪器仪表记录YNYN图1-7 基本查找流程图[程序]    /*********************基本查找模块**************************/void commom_search(){int i,n,k,w1=1,w2,w3,w4;struct equip q;n=load();printf("\n 通过名称还是编号查找? 1.名称 2.编号: [ ]\b\b");scanf("%d",&i);if(i==1){ do{do{k=-1; printf("\n\n请输入名称!  名称 [ ]\b\b"); scanf("%s",q.name); printf_face(); for(i=0;i

删除模块的流程图如下:开始提示没有找到结束返回主菜单询问用户是否继续删除?显示找到的记录调用删除记录i!=0?输入要删除的编号显示所有记录,让用户看那条信息需要删除NYYYN图1-9 删除模块流程图[程序]/*********************删除模块**************************/void delet(){ struct equip q;/* FILE *fp;*/ int i,n,k,w0=1,w1,w2=0; n=load(); do { k=-1; printf_face();for(i=0;i'9') { printf("输入错误!请输入1到9的数字\n");w1=1;break; }if(w1!=1) for(k=0;k4||c<1){ printf("\n选择错误!请重新选择"); getchar(); } } while(c>4||c<1); do {switch(c){ case 1:printf("借出时间:");scanf("%s",eq[i].bt);break; case 2:printf("归还时间:");scanf("%s",eq[i].rt);break; case 3:printf("维修时间:");scanf("%s",eq[i].mt);break; case 4:printf("状态:");scanf("%s",eq[i].st);break;}printf("\nNow:\n");printf_face();printf_one(i);printf("\n确认修改\n\n\t1).Yes 2).No and remodify 3).Back without save [ ]\b\b");scanf("%d",&w); } while(w==2); return(w);}1.5 上机操作1. 数据源为了保存数据,需要建立一个eq.txt文件。

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 附录:部分/主要程序模块清单#include#include#define N 100 struct equip { char num[10]; char name[50]; char pt[10]; char bt[10]; char lt[10]; char rt[10]; char mt[10]; char st[5]; char time[5];}eq[N]; void menu(); void save(int n) { FILE *fp; int i; if((fp=fopen("eq.txt","wb"))==NULL) { printf("\n无法打开该文件\n"); /* return NULL;*/ } for(i=0;i'9') { printf("输入错误!请输入1到9的数字\n"); w1=1;break; } if(w1!=1) for(k=0;k4||c<1) { printf("\n选择错误!请重新选择"); getchar(); } } while(c>4||c<1); do { switch(c) { case 1:printf("借出时间:");scanf("%s",eq[i].bt);break; case 2:printf("归还时间:");scanf("%s",eq[i].rt);break; case 3:printf("维修时间:");scanf("%s",eq[i].mt);break; case 4:printf("状态:");scanf("%s",eq[i].st);break; } printf("\nNow:\n"); printf_face(); printf_one(i); printf("\n确认修改\n\n\t1).Yes 2).No and remodify 3).Back without save [ ]\b\b"); scanf("%d",&w); } while(w==2); return(w);}void commom_search(){int i,n,k,w1=1,w2,w3,w4;struct equip q;n=load();printf("\n 通过名称还是编号查找? 1.名称 2.编号: [ ]\b\b");scanf("%d",&i);if(i==1){ do { do { k=-1; printf("\n\n请输入名称!  名称 [ ]\b\b"); scanf("%s",q.name); printf_face(); for(i=0;i

下载提示
相关文档
正为您匹配相似的精品文档