资源预览内容
第1页 / 共19页
第2页 / 共19页
第3页 / 共19页
第4页 / 共19页
第5页 / 共19页
第6页 / 共19页
第7页 / 共19页
第8页 / 共19页
第9页 / 共19页
第10页 / 共19页
亲,该文档总共19页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
C语言课程设计实验报告班级 姓名 学号 11130730实验课程 C实验名称 实验设备管理系统实验成绩 实验日期 2014.3.5任课教师一、 目的(本次课程设计 所涉及并要求掌握的知识点。)课程设计在学校实验室的设备管理工作中,设备的编排是一项十分复杂、棘手的工作。在编排过程中,由于数量多容易出错。利用计算机辅助进行设备编排工作,既提高了编排的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而教学设备管理现代化迈上了一个新台阶。实验室设备信息用文件存储,故要提供文件的输入输出操作;要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择总体设计整个系统被设计为实验设备信息输入模块、实验设备信息添加模块、实验设备信息修改模块、实验设备分类统计模块和实验设备查询模块。知识点1.对于结构体数组的定义使用2.指针变量的使用3.以文件方式输入输出,熟练掌握文件的各种方式4.对于循环的应用格式5.一些函数的应用,如strcmp函数总结:提高程序设计能力与课堂知识内容的应用,掌握程序设计的基本方法和调 试技能。对指针,数组,文件了解更加深刻。二、使用环境 (本次上机实践所使用的平台和相关软件。 )Visual C+三、内容与设计思想 (1 设计思路 2 主要数据结构 3 主要代码结构 4 主要代码段分析 。 )1 设计思路 如下图所示实验设备管理系统添加追加修改统计搜索按编号按名称按价格2 主要数据结构typedef struct EquInfo /定义结构体 char equipCode10; /编号 char equipType20; /种类 char equipName20; /名称 float equipPrice; /价格 char buyDate20; /购买日期 int scrap; /是否报废 char scrapDate20; /报废日期EquInfo;3 主要代码结构 1.主函数 开 始显 示 一 系 列 功 能 选 项输入n,判断n是否是05? 调 用 与 n 相 应 的 模 块NY 输入用户要输入设备的个数i2.添加模块输入设备的各项详细信息退出将输入的信息存储到文件的中21返回主菜单3.修改模块输入要修改的设备编号是否找到该设备资料显示找到的记录,调用修改函数显示没有找到对该设备的信息进行修改返回主菜单返回主菜单y n输入设备类型退出21返回主菜单输出统计结果文件中的设备信息进行统计4.统计模块5.搜索模块 询问用户想要选择的搜索方式4 主要代码段分析(1).添加模块主要是实现设备的添加,输入添加的设备个数,然后用for循环语句,循环次数是你输入的设备个数。循环输出设备的编号,种类名称,用fopen打开文件,w写方式实现首次添加。int addition() /*添加模块*/ EquInfo news50; int i,j,c; FILE *fp; system(cls); printf(你想输入多少个设备?n); scanf(%d,&i); /*输入要添加的设备个数*/ for(j=0;ji;j+) printf(-n); printf(输入设备编号n); scanf(%s,&newsj.equipCode); printf(输入设备种类n); scanf(%s,newsj.equipType); if(fp=fopen(swy.txt,w)=NULL) /*打开文件,输入保存*/ printf(不能打开文件!n);for (j=0;ji;j+) fprintf(fp,%s %s %s %f %s %d %s ,newsj.equipCode,newsj.equipType,newsj.equipName,newsj.equipPrice,newsj.buyDate,newsj.scrap,newsj.scrapDate);fclose(fp);printf(n-n);printf(返回主菜单? n);printf(1.是n);printf(2.不,退出n);scanf(%d,&c);if(c=1)return(-1);if(c=2)return(0); /*任务结束选择是返回主菜单还是跳出*/(2).修改模块用for循环使用feof函数从文件头逐个读取文件字符直到文件结尾,其中用了strcmp函数,比较文件中的数据与输入数是否匹配,若是匹配,返回0,说明你输入的编号正确,键面进入请输入新的编号、种类、名称等,将修改后的信息写入文件中,成功后输出write。int modifty() /*修改模块*/if(fp=fopen(swy.txt,r)=NULL)printf(n不能打开文件!n);for(i=0;!feof(fp);i+) /文件头逐个读取文件字符直到文件结尾fscanf(fp,%s %s %s %f %s %d %s ,equi.equipCode,equi.equipType,equi.equipName,&equi.equipPrice,&equi.buyDate,&equi.scrap,&equi.scrapDate);if(strcmp(equi.equipCode,code)=0)/判断文件的数据与输入数是否匹配printf(-n);printf(输入新设备编号n);scanf(%s,equi.equipCode);printf(输入新设备种类n); /*将修改后的信息写入文件 fclose(fp);j=i;for(i=0;ij;i+)fprintf(fp,%s %s %s %f %s %d %s ,equi.equipCode,equi.equipType,equi.equipName,equi.equipPrice,equi.buyDate,equi.scrap,equi.scrapDate);printf(nwrite!n);fclose(fp); (3).统计模块先输入设备类型,判断是否匹配,是的话输出ok,并把相应的内容输出,定义一个计数器count,每循环一次,自加1int total()/统计模块 float sum=0;int count=0; float aver=0;char type20; EquInfo equ;if(strcmp(equ.equipType,type)=0) printf(nOK!n);printf(%s,%s,%s,%f,%s,%d,%sn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyDate,equ.scrap,equ.scrapDate);count+;sum+=equ.equipPrice;aver=sum/count; fclose(fp);printf(-统计-返回结果-); printf(nn这个类型的是:%d,count); printf(nn统计的总价格:%f,sum); printf(nn平均价格是:%f,aver);(4).搜索模块分为按编号搜索,设备名搜索,设备价格搜索,用switch循环,来判断进入哪个,比如若输入为1 ,就会按编号搜索。switch(choice) case 0:exit(0);break;case 1:printf(请输入设备编号:n);scanf(%s,code);for(i=0;!feof(fp);i+)/从文本中读取设备编号fscanf(fp,%s %s %s %f %s %d %s ,equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyDate,&equ.scrap,&equ.scrapDate);if(strcmp(equ.equipCode,code)=0) printf(nequipCode,equipType,equipName,equipPrice,buyDate,scrap,ScrapDaten); printf(n%s,%s,%s,%f,%s,%d,%sn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyDate,equ.scrap,equ.scrapDate);getchar();break;case 2:printf(请输入设备名称:n);scanf(%s,name);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %s %d %s ,equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyDate,&equ.scrap,&equ.scrapDate);if(strcmp(equ.equipName,name)=0) printf(nequipCode,equipType,equipName,equipPrice,buyDate,scrap,ScrapDaten); printf(n%s,%s,%s,%f,%s,%d,%sn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyDate,equ.scrap,equ.scrapDate); getcha
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号