版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言课程设计院系: 姓名: 学号: 班号: 指导教师:日期:目录一. 题目要求(1)二. 需求分析(1)三. 总体设计(1)四. 详细设计(1)五. 完整程序(12)六. 上机操作(21)七. 结束语(24)一. 题目要求实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期等。试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询二. 需求分析实验室设备信息用文件存储, 提供文件的输入输出操作; 要能够完成设备的录入和修改,需要提供设备添加和修改操作;实现对设备进行分类统计,
2、 需要提供排序操作;实现对设备的插叙需要提供查找操作,设备的查询可根据设备编号、设备种类、设备名称、设备购入日期、正常设备(未报废的)等多种方式查询;另外还要提供键盘式选择菜单以实现功能选择。三. 总体设计根据上面的需求分析,可以将这个系统的设计分为以下模块四. 详细设计1 主函数流程图程序mai n()主函数 *intn , w, t; for(t=0;t6)/*对选择的数字作出判断*/ w=1; getchar(); else w=0; while(w=1);switch( n)case 1:t=enter();break;/*输入模块 */case 2:t=enter(); break;
3、/* 追加模块*/case 3:t=modifty();break;/* 修改模块*/case 4:t=total();break;/*统计模块*/case 5:t=search();break;/*搜索模块*/case 6:exit(0);/* 退出 */2.各功能模块设计(1)输入模块流程图程序/*int enter()FILE *fp;EQ newequ;输入模块*/* 输入模块 */int i,j; int c;printf( * printf(Add new equimentn);printf( * printf(How many equiments do you want to a
4、dd?n); scanf(%d,&i); /* 输入要输入的设备个数 */ for(j=0;ji;j+)printf(n);printf(Input equipcoden);scanf(%s,newequ.equipCode);printf(Input equiptypen); scanf(%s,newequ.equipType);printf(Input equipnamen); scanf(%s,newequ.equipName);printf(Input equipPricen); scanf(%f,&newequ.equipPrice); printf(Input buyYearn);
5、 scanf(%d,&newequ.buyYear); printf(Input buyMonthn); scanf(%d,&newequ.buyMonth); printf(Input buyDayn); scanf(%d,&newequ.buyDay);/* 打开文件,输入保存 */printf(Input scrapn); scanf(%d,&newequ.scrap); printf(Input scrapYearn); scanf(%d,&newequ.scrapYear); printf(Input scrapMonthn); scanf(%d,&newequ.scrapMonth
6、); printf(Input scrapDayn); scanf(%d,&newequ.scrapDay);if(fp=fopen(test.txt,w)=NULL)printf(Can not open file!n); fprin tf(fp,%s %s %s %f %d %d %d %d %d %d %d, newequ.equipCode, newequ.equipType, new equ.equipName ,n ewequ.equipPrice ,n ewequ.buyYear, newequ.buy Month,n ewequ.buyDay ,n ewequ. scrap ,
7、n ewequ.scrapYear, newequ.scrapM onth,n ewequ.scrapDay);fclose(fp);printf(nn);prin tf(Return to main menu?n);prin tf(1.YES n);printf(2.NO,l want to quit nown);sca nf(%d,&c);if(c=1)return(-1);if(c=2)return(0);/*任务结束选择是返回主菜单还是跳出*/(2)追加模块流程图程序/*int en ter()FILE *fp;EQ n ewequ;追加模块 */*追加模块*/int i,j;int
8、c;printf( *prin tf(Add new equime ntn);printf( *prin tf(How many equime nts do you want to add?n);scan f(%d,&i);/*输入要追加的设备个数 */for(j=0;ji;j+) 4 printf(n);printf(Input equipcoden);scanf(%s,newequ.equipCode);printf(Input equiptypen);scanf(%s,newequ.equipType);printf(Input equipnamen);scanf(%s,newequ.e
9、quipName);printf(Input equipPricen);scanf(%f,&newequ.equipPrice);printf(Input buyYearn);scanf(%d,&newequ.buyYear);printf(Input buyMonthn);scanf(%d,&newequ.buyMonth);printf(Input buyDayn);scanf(%d,&newequ.buyDay);printf(Input scrapn);scanf(%d,&newequ.scrap);printf(Input scrapYearn);scanf(%d,&newequ.s
10、crapYear);printf(Input scrapMonthn);scanf(%d,&newequ.scrapMonth);printf(Input scrapDayn);scanf(%d,&newequ.scrapDay);if(fp=fopen(test.txt,w)=NULL) /* 打开文件,输入保存 */printf(Can not open file!n);fprintf(fp,%s %s %s %f %d %d %d %d %d %d %d,newequ.equipCode,newequ.equipType,new equ.equipName,newequ.equipPri
11、ce,newequ.buyYear,newequ.buyMonth,newequ.buyDay,newequ. scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf(nn);printf(Return to main menu? n);printf(1.YES n);printf(2.NO,I want to quit nown);scanf(%d,&c); 5/*任务结束选择是返回主菜单还是跳出*/if(c=1)return(-1); if(c=2)return(0);(3)修改模块需求分析此模
12、块可以根据客户需要对以记录在文件中的信息进行修改流程图/* *int modifty()/* 修改模块 */EQ equ50;char code10;int i,j,c;彳修改模块 *FILE *fp;printf(*n);prin tf(Modifty for the equime ntn ”);printf(*n);prin tf(Please in put the equipcode for modifty ingn);sca nf(%s,code);/*输入要修改的设备编号 */printf(n “);if(fp=fope n( test.txt,r)=NULL) printf(nCa
13、n not open test!n);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equi.equipCode,equi.equipType,equi.eq uipName,&equi.equipPrice,&equi.buyYear,&equi.buyMonth,&equi.buyDay,&equi.scrap, &equi.scrapYear,&equi.scrapMonth,&equi.scrapDay);if(strcmp(equi.equipCode,code)=0)printf(n);printf(
14、Input new equipcoden);scanf(%s,equi.equipCode);printf(Input new equiptypen);scanf(%s,equi.equipType);printf(Input new equipnamen);scanf(%s,equi.equipName);printf(Input equipPricen);scanf(%f,&equi.equipPrice);printf(Input new buyYearn);scanf(%d,&equi.buyYear);printf(Input new buyMonthn);scanf(%d,&equ
15、i.buyMonth);printf(Input new buyDayn);scanf(%d,&equi.buyDay);printf(Input new scrapn);scanf(%d,&equi.scrap);printf(Input new scrapYearn);scanf(%d,&equi.scrapYear);printf(Input new scrapMonthn);scanf(%d,&equi.scrapMonth);printf(Input new scrapDayn);scanf(%d,&equi.scrapDay); /* 将修改后的信息写如文件中 */fclose(f
16、p);j=i;if(fp=fopen(test.txt,w)=NULL)printf(nCan not open test!n);for(i=0;ij;i+)prin tf(nwrite!n);fprintf(fp,%s %s %s %f %d %d %d %d %d %d %d,equi.equipCode,equi.equipType,equi.e quipName,equi.equipPrice,equi.buyYear,equi.buy Mon th,equi.buyDay,equi.scrap,equi.sc rapYear,equi.scrapM on th,equi.scrapD
17、ay);fclose(fp);printf(nn);prin tf(Return to main menu?n);prin tf(1.YES n);printf(2.NO,l want to quit nown);sca nf(%d,&c);if(c=1)return(-1);if(c=2)return(0);(4)统计模块需求分析将已经输入的设备信息进行统计,并显示设备总数、价格总额等信息流程图程序int total()int c;float sum=0;int coun t=0;float aver=0;char type20;EQ equ;int i;FILE *fp;if(fp=fop
18、e n(test.txt,r)=NULL) prin tf(nWro ngn);printf(please input equipType:n); scanf(%s,type);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d%d %d %d %d %d,equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,&equ.scra pMonth,&equ.scr
19、apDay);printf(nOK!n);printf(%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ. buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scr apDay);if(strcmp(equ.equipType,type)=0) count+;sum+=equ.equipPrice; aver=sum/count;fclose(fp);pri
20、ntf(Statist-Result);printf(nnthe number of this type is:%d,count); printf(nnthe total sum of price is:%f,sum); printf(nnthe aver of total price is:%f,aver); printf(nPress any key to exit);getch();printf(nn);printf(Return to main menu? n); printf(1.YES n);printf(2.NO,I want to quit nown); scanf(%d,&c
21、);if(c=1)return(-1); if(c=2)return(0);需求分析设备种类、设备名称、该模块的功能是查找用户需要的对应记录,可以分别根据设备编号、设备购入日期、正常设备(未报废的)等多种方式查询。流程图y询问用户想要选择的搜索方式设备编号设备种类设备名称设备购入日期是否报废V1fi ryni r显示找到的文件提示没有找到让用户选择1)返回主菜单2)跳 出系统程序/*搜索模块 *int search()/*搜索模块 */char code10;char n ame20;float price;int choice;int c;FILE *fp;EQ equ;int i;fp=f
22、ope n( test.txt,r);if(fp=NULL)exit(0);prin tf(please choose the way of search:nn);prin tf(1.search by equipCodenn);prin tf(2.search by equipName nn ”);prin tf(3.search by equipPricenn);prin tf(0.returnnn);prin tf(please in put nu mber 0-5:);sca nf(%d,&choice);if(choice=0)exit(0);switch(choice)case 0
23、:exit(0);break;case 1:printf(please input equipCode:n);scanf(%s,code);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,e qu.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ. scrap,&equ.scrapYear,&equ.scrapMonth,&equ.scrapDay);if(strcmp(
24、equ.equipCode,code)=0)printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,sc rap,scrapYear,scrapMonth,ScrapDayn);printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType, equ.equipName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,eq u.scrapYear,equ.s
25、crapMonth,equ.scrapDay);getch();break;case 2:printf(please input equipName:n);scanf(%s,name);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,e qu.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ. scrap,&equ.scrapYear,&equ.scrapMonth,&e
26、qu.scrapDay);if(strcmp(equ.equipName,code)=0)printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,sc rap,scrapYear,scrapMonth,ScrapDayn);11printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.sc
27、rap,eq u.scrapYear,equ.scrapMonth,equ.scrapDay);getch();break;case 3:printf(please input equipPrice:n);scanf(%d,&price);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,e qu.equipName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ. scrap,&equ.s
28、crapYear,&equ.scrapMonth,&equ.scrapDay);if(equ.equipPrice=price)printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,sc rap,scrapYear,scrapMonth,ScrapDayn);printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType, equ.equipName,equ.equipPrice,equ.buyYear,equ.buyMonth
29、,equ.buyDay,equ.scrap,eq u.scrapYear,equ.scrapMonth,equ.scrapDay);getch();break;fclose(fp);printf(nn);printf(Return to main menu? n);printf(1.YES n);printf(2.NO,I want to quit nown);scanf(%d,&c);if(c=1)return(-1);if(c=2)return(0);五. 完整程序#include#include#includetypedef struct epuipmentInfo char equip
30、Code10;char equipType20; char equipName20; float equipPrice;intbuyYear;intbuyMonth;intbuyDay;intscrap;intscrapYear;intscrapMonth;intscrapDay;EQ;int enter()FILE *fp; EQ newequ;int i,j; int c;printf(*n);printf(Add new equimentn);printf(H*n);printf(How many equiments do you want to add?n);scanf(%d,&i);
31、for(j=0;ji;j+)printf(n);printf(Input equipcoden); scanf(%s,newequ.equipCode);printf(Input equiptypen); scanf(%s,newequ.equipType);printf(Input equipnamen); scanf(%s,newequ.equipName);printf(Input equipPricen); scanf(%f,&newequ.equipPrice);printf(Input buyYearn); scanf(%d,&newequ.buyYear);printf(Inpu
32、t buyMonthn); scanf(%d,&newequ.buyMonth); printf(Input buyDayn);scanf(%d,&newequ.buyDay);printf(Input scrapn);scanf(%d,&newequ.scrap);printf(Input scrapYearn);scanf(%d,&newequ.scrapYear);printf(Input scrapMonthn);scanf(%d,&newequ.scrapMonth);printf(Input scrapDayn);scanf(%d,&newequ.scrapDay);if(fp=f
33、open(test.txt,w)=NULL)printf(Can not open file!n);fprintf(fp,%s %s %s %f %d %d %d %d %d %d %d,newequ.equipCode,newequ.equipType, newequ.equipName,newequ.equipPrice,newequ.buyYear,newequ.buyMonth,newequ.buyDay, newequ.scrap,newequ.scrapYear,newequ.scrapMonth,newequ.scrapDay);fclose(fp);printf(nn);pri
34、ntf(Return to main menu? n);printf(1.YES n);printf(2.NO,I want to quit nown);scanf(%d,&c);if(c=1)return(-1);if(c=2)return(0);int modifty()EQ equ50; char code10; int i; int j;int c;FILE *fp;printf(*n);printf(Modifty for the equimentn);printf(*n);printf(Please input the equipcode for modiftyingn);scan
35、f(%s,code);n);printf( if(fp=fopen(test.txt,r)=NULL)printf(nCan not open test!n); for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equi.equipCode,equi.equipType,equ i.equipName,&equi.equipPrice,&equi.buyYear,&equi.buyMonth,&equi.buyDay,&equ i.scrap,&equi.scrapYear,&equi.scrapMonth,&equ
36、i.scrapDay);if(strcmp(equi.equipCode,code)=0)printf(n);printf(Input new equipcoden); scanf(%s,equi.equipCode); printf(Input new equiptypen); scanf(%s,equi.equipType); printf(Input new equipnamen); scanf(%s,equi.equipName);printf(Input equipPricen);scanf(%f,&equi.equipPrice);printf(Input new buyYearn
37、); scanf(%d,&equi.buyYear);printf(Input new buyMonthn); scanf(%d,&equi.buyMonth);printf(Input new buyDayn);scanf(%d,&equi.buyDay);printf(Input new scrapn);scanf(%d,&equi.scrap);printf(Input new scrapYearn);scanf(%d,&equi.scrapYear); 15 printf(Input new scrapMonthn);scanf(%d,&equi.scrapMonth);printf(
38、Input new scrapDayn);scanf(%d,&equi.scrapDay);fclose(fp);j=i;if(fp=fopen(test.txt,w)=NULL)printf(nCan not open test!n);for(i=0;ij;i+)printf(nwrite!n);fprintf(fp,%s %s %s %f %d %d %d %d %d %d %d,equi.equipCode,equi.equipType,equ i.equipName,equi.equipPrice,equi.buyYear,equi.buyMonth,equi.buyDay,equi.
39、scrap,e qui.scrapYear,equi.scrapMonth,equi.scrapDay);fclose(fp);printf(nn);printf(Return to main menu?n);printf(1.YES n);printf(2.NO,I want to quit nown);scanf(%d,&c);if(c=1)return(-1);if(c=2)return(0);int search()char code10;char name20;float price;int choice;int c;FILE *fp;EQ equ;int i;fp=fopen(te
40、st.txt,r);16if(fp=NULL)exit(0);printf(please choose the way of search:nn); printf(1.search by equipCodenn); printf(2.search by equipName nn); printf(3.search by equipPricenn);printf(0.returnnn); printf(please input number 0-5:);scanf(%d,&choice); if(choice=0)exit(0);switch(choice)case 0:exit(0);brea
41、k;case 1: printf(please input equipCode:n); scanf(%s,code);for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,equ.equi pName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scra pYear,&equ.scrapMonth,&equ.scrapDay);if(strcmp(equ.equipC
42、ode,code)=0) printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,scrap,scra pYear,scrapMonth,ScrapDayn);printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType,equ.equi pName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.s crapMonth
43、,equ.scrapDay); getch();break;case 2:printf(please input equipName:n);scanf(%s,name); for(i=0;!feof(fp);i+) 17 fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,equ.equi pName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scra pYear,&equ.scrapMonth,&equ.
44、scrapDay);if(strcmp(equ.equipName,code)=0)printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,scrap,scra pYear,scrapMonth,ScrapDayn);printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType,equ.equi pName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ.buyDay,equ.scrap,
45、equ.scrapYear,equ.s crapMonth,equ.scrapDay);getch();break;case 3:printf(please input equipPrice:n);scanf(%d,&price);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d %d %d %d %d,equ.equipCode,equ.equipType,equ.equi pName,&equ.equipPrice,&equ.buyYear,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scra p
46、Year,&equ.scrapMonth,&equ.scrapDay);if(equ.equipPrice=price)printf(nequipCode,equipType,equipName,equipPrice,buyYear,buyMonth,buyDay,scrap,scra pYear,scrapMonth,ScrapDayn);printf(n%s,%s,%s,%f,%d,%d,%d,%d,%d,%d,%dn,equ.equipCode,equ.equipType,equ.equi pName,equ.equipPrice,equ.buyYear,equ.buyMonth,equ
47、.buyDay,equ.scrap,equ.scrapYear,equ.s crapMonth,equ.scrapDay);getch();break;fclose(fp);printf(nn); 18printf(Return to main menu? n);printf(1.YES n);printf(2.NO,I want to quit nown);scanf(%d,&c);if(c=1)return(-1); if(c=2)return(0); int total()int c;float sum=0;int count=0;float aver=0;char type20;EQ
48、equ;int i;FILE *fp;if(fp=fopen(test.txt,r)=NULL)printf(nWrongn);printf(please input equipType:n); scanf(%s,type);for(i=0;!feof(fp);i+)fscanf(fp,%s %s %s %f %d %d %d%d %d %d %d,equ.equipCode,equ.equipType,equ.equipName,&equ.equipPrice,&equ.buyYe ar,&equ.buyMonth,&equ.buyDay,&equ.scrap,&equ.scrapYear,
49、&equ.scrapMonth,&equ.scrap Day);printf(nOK!n);printf(%s,%s,%s,%f,%d,%d,%d,%d, %d,%d,%dn,equ.equipCode,equ.equipType,equ.equipName,equ.equipPrice,equ.buyYear,equ .buyMonth,equ.buyDay,equ.scrap,equ.scrapYear,equ.scrapMonth,equ.scrapDay);if(strcmp(equ.equipType,type)=0)count+;sum+=equ.equipPrice; 19 aver=sum/count;fclose(fp);printf(Statist-Result);printf(nnthe number of this type is:%d,count); printf(nn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 回避制度的适用和程序
- 基础设施建设质量验收标准
- 工业安全培训教材(标准版)
- 网络安全防护方案设计与实施指南
- 商业物业清洁维护操作指南
- 服装设计与制作规范
- 电信网络故障处理与应急响应流程
- 学校教育教学管理规范手册
- 能源行业安全生产教育与培训手册
- 企业信息安全管理体系构建与实施(标准版)
- 2025至2030中国电子设备电磁防护解决方案市场调研与商业机会分析报告
- 2026年芜湖职业技术学院高职单招职业适应性测试参考题库带答案解析
- 2026年春节放假安全培训:平安过大年防风险保祥和
- 矛盾纠纷排查调处台账管理规范文件
- 猪肉儿童营养食品创新创业项目商业计划书
- 2025至2030年中国干葡萄酒行业发展研究报告
- 北京市建设工程施工现场安全生产标准化管理图集(2019版)
- DZ/T 0462.8-2023 矿产资源“三率”指标要求 第8部分:硫铁矿、磷、硼、天然碱、钠硝石(正式版)
- 提高治疗前肿瘤TNM评估率工作方案
- 庆阳网约车考试指南
- 航空餐饮服务课件
评论
0/150
提交评论