版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上高级语言程序设计课程设计说明书设计题目:实验设备管理系统设计设计任务:1、需求分析:实验室设备信息用文件存储, 故要提供文件的输入输出操作; 要能够完成设备的录入和 修改,需要提供设备添加和修改操作;实现对设备进行分类统计,需要提供排序操作;实现 对设备的查询需要提供查找操作;另外还要提供键盘式选择菜单以实现功能选择。 2、总体设计:整个系统被设计为实验设备信息输入模块、 实验设备信息添加模块、 实验设备信息修改 模块、实验设备分类统计模块和实验设备查询模块。 3、详细设计 数据结构采用结构体,设计实验设备信息结构体: Struct equipmentInfo Cha
2、r equipCode10; /设备编号 Char equipType20; /设备总类 Char equipName20; /设备名称 float equipPrice; /设备价格 char buyDate20; /设备购入日期 int scrap; /是否报废,0 表示没有报废,1 表示报废 char scrapDate20; /报废日期 EquInfo; (1) 实验设备信息输入模块 把实验设备基本信息写入实验设备信息文件。 (2) 实验设备信息添加模块 添加设备时,把添加的设备基本信息采用追加的方式写入设备信息文件。 (3) 实验设备信息修改模块 修改设备信息,则需要读文件,判断信息
3、是否是要修改的设备的信息,如果是,修改, 重新写入文件;否则直接重新写入文件。(4) 实验设备分类统计模块 根据给定的分类标准(设备种类、设备名、设备购入日期)对文件的记录进行排序,排 序方法可以选择冒泡、插入、选择等方法。然后采用查找算法查找同类设备,采用基本的数 学运算即可统计同类设备的相关信息,比如数量、价钱等。 (5) 实验设备查询模块 通过菜单选择查询方式,提供按设备编号、设备种类、设备名称、设备购入日期和设备状态为正常(scrap 字段值为 0)这些查询方式查询。采用基本查找算法即可。 源程序:#include<stdio.h>#include<stdlib.h&
4、gt;#include "conio.h"typedef struct equipmentInfo char equipCode10; /设备编号 char equipType20; /设备总类 char equipName20; /设备名称 int equipPrice; /设备价格 char buyDate20; /设备购入日期 int scrap; /是否报废,0 表示没有报废,1 表示报废 char scrapDate20; /报废日期 EquInfo;EquInfo head100;int n=0;/*向文件中输入数据*/int cmp ( const void
5、*a , const void *b )return strcmp(*(EquInfo *)a).equipType,(*(EquInfo *)b).equipType);input()int i,a;system("cls");printf("你要输入的设备数:");scanf("%d",&n);while(n<1)system("cls");printf("你输入的数据有误,请重新输入:n");printf("你要输入的设备数:");scanf("
6、%d",&n);for(i=0;i<n;i+) printf("设备编号:");scanf("%s",headi.equipCode);printf("设备总类:");scanf("%s",headi.equipType);printf("设备名称:");scanf("%s",headi.equipName);printf("设备价格:");scanf("%d",&headi.equipPrice);pr
7、intf("设备购入日期:");scanf("%s",headi.buyDate);printf("设备是否报废:1.是 0.不是: ");scanf("%d",&headi.scrap);printf("报废日期:没有报废填“空”: ");scanf("%s",headi.scrapDate);input_2();printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n");printf("请输入你要选择的操
8、作:");scanf("%d",&a);while(a<1 | a>7)system("cls");printf("你输入的数据有误,请重新输入:n");printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n"); printf("n请输入你要选择的操作:"); scanf("%d",&a);if(a=1)input();if(a=2)add();if(a=3)sort();if(a=4)serach();i
9、f(a=5)stats();if(a=6)modify();if(a=7)exit(0);/*输入的数据存入文件*/input_2()FILE *fp; int i;if(fp=fopen("file2.txt","w")=NULL)printf("Cannot open the file!n");return; for(i=0;i<n;i+) if(fwrite(&headi,sizeof(EquInfo),1,fp)!=1)printf("File error!n"); fclose(fp);/*
10、追加信息*/add()int k,i,a;system("cls");printf("输入你要追加的设备数:");scanf("%d",&k);while(k<1)system("cls");printf("你输入的数据有误,请重新输入:n");printf("输入你要追加的设备数:");scanf("%d",&k);for(i=n;i<n+k;i+)printf("设备编号:");scanf("%
11、s",headi.equipCode);printf("设备总类:");scanf("%s",headi.equipType);printf("设备名称:");scanf("%s",headi.equipName);printf("设备价格:");scanf("%d",&headi.equipPrice);printf("设备购入日期:");scanf("%s",headi.buyDate);printf("
12、设备是否报废:1.是 0.不是: ");scanf("%d",&headi.scrap);printf("报废日期:没有报废填“空”: ");scanf("%s",headi.scrapDate);input_3(k);printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n");printf("请输入你要选择的操作:");scanf("%d",&a);while(a<1 | a>7)system("
13、cls");printf("你输入的数据有误,请重新输入:n");printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n"); printf("n请输入你要选择的操作:"); scanf("%d",&a);if(a=1)input();if(a=2)add();if(a=3)sort();if(a=4)serach();if(a=5)stats();if(a=6)modify();if(a=7)exit(0);/*追加信息写入文件*/input_3(int k)FIL
14、E *fp; int i;if(fp=fopen("file2.txt","a")=NULL)printf("Cannot open the file!n");return; for(i=n;i<n+k;i+)if(fwrite(&headi,sizeof(EquInfo),1,fp)!=1)printf("File error!n"); fclose(fp); n=n+k;/*排序*/sort()int k,a;system("cls");printf("按1.设备总类
15、排序 2.设备名 3.设备购入日期:");scanf("%d",&k);while(k<1 | k>3)system("cls");printf("你输入的数据有误,请重新输入:n");printf("按1.设备总类排序 2.设备名 3.设备购入日期排序:"); scanf("%d",&k);if(k=1)sort_1();if(k=2)sort_2();if(k=3)sort_3();printf("1.输入 2.追加 3.排序 4查询 5.统计
16、 6.修改 7.退出n");printf("请输入你要选择的操作:");scanf("%d",&a);while(a<1 | a>7)system("cls");printf("你输入的数据有误,请重新输入:n");printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n"); printf("n请输入你要选择的操作:"); scanf("%d",&a);if(a=1)input();if(
17、a=2)add();if(a=3)sort();if(a=4)serach();if(a=5)stats();if(a=6)modify();if(a=7)exit(0);sort_1()int i=0,j,k,s=0;EquInfo temp,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n&quo
18、t;);return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;fclose(fp);qsort(b,s,sizeof(b0),cmp);printf("-n");printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");for(i=1;i<s;i+)printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipNam
19、e);printf("%dt",bi.equipPrice);printf("%st",bi.buyDate);printf("%dt ",bi.scrap);printf("%s",bi.scrapDate);printf("nn");printf("-n");sort_2()int i=0,j,k,s=0;EquInfo temp,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*siz
20、eof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)k=i;for(j=i+1;j<s;j+)if(strcmp(bk.equipName,bj.equipName)>0)k=j;if(k!=i)temp=bi;bi=bk;bk=temp;printf(&
21、quot;-n");printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");for(i=1;i<s;i+)printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName);printf("%dt",bi.equipPrice);printf("%st",bi.buyDate);printf("%dt ",bi.scrap);p
22、rintf("%s",bi.scrapDate);printf("nn");printf("-n");fclose(fp);sort_3()int i=0,j,k,s=0;EquInfo temp,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file
23、!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)k=i;for(j=i+1;j<s;j+)if(strcmp(bk.buyDate,bj.buyDate)>0)k=j;if(k!=i)temp=bi;bi=bk;bk=temp;printf("-n");printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");for(i=1;i<s;i+)printf("%st",
24、bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName);printf("%dt",bi.equipPrice);printf("%st",bi.buyDate);printf("%dt ",bi.scrap);printf("%s",bi.scrapDate);printf("nn");printf("-n");fclose(fp);/*设备查询*/sera
25、ch()int k,a;system("cls");printf("查询1.编号 2.总类 3.名称 4.购入日期 5.状态: ");scanf("%d",&k);while(k<1 | k>5)system("cls");printf("你输入的数据有误,请重新输入:n");printf("查询1.编号 2.总类 3.名称 4.购入日期 5.状态: "); scanf("%d",&k);if(k=1)serach_1();if
26、(k=2)serach_2();if(k=3)serach_3();if(k=4)serach_4();if(k=5)serach_5();printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n");printf("请输入你要选择的操作:");scanf("%d",&a);while(a<1 | a>7)system("cls");printf("你输入的数据有误,请重新输入:n");printf("1.输入 2.追加 3.排序 4查询
27、 5.统计 6.修改 7.退出n"); printf("n请输入你要选择的操作:"); scanf("%d",&a);if(a=1)input();if(a=2)add();if(a=3)sort();if(a=4)serach();if(a=5)stats();if(a=6)modify();if(a=7)exit(0);serach_1()int i=0,d=0,s=0;EquInfo m,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*size
28、of(EquInfo);printf("你要查询的设备编号是:");scanf("%s",m.equipCode);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)if(strcmp(bi.equipCode,m.equipCode)=0)print
29、f("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf(&quo
30、t;%s",bi.scrapDate);printf("nn");printf("-n");d+;if(d=0)printf("没有你要查询的设备号nn");serach_2()int i=0,d=0,s=0;EquInfo m,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);printf("你要查询的设备总类是:");scanf("%s",m.equipType);
31、if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)if(strcmp(bi.equipType,m.equipType)=0)printf("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf(&quo
32、t;%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf("%s",bi.scrapDate);printf("nn");printf("-n");d+;if(d
33、=0)printf("没有你要查询的设备号nn");serach_3()int i=0,d=0,s=0;EquInfo m,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);printf("你要查询的设备名称是:");scanf("%s",m.equipName);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open
34、 the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)if(strcmp(bi.equipName,m.equipName)=0)printf("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%s
35、t",bi.equipName); printf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf("%s",bi.scrapDate);printf("nn");printf("-n");d+;if(d=0)printf("没有你要查询的设备号nn");serach_4()int i=0,d=0,s=0;EquInfo m,*b;FIL
36、E *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);printf("你要查询的设备购入日期是:");scanf("%s",m.buyDate);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);
37、s+;for(i=0;i<s-1;i+)if(strcmp(bi.buyDate,m.buyDate)=0)printf("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("%st&quo
38、t;,bi.buyDate); printf("%dt ",bi.scrap); printf("%s",bi.scrapDate);printf("nn");printf("-n");d+;if(d=0)printf("没有你要查询的设备号nn");serach_5()int i=0,d=0,s=0;EquInfo m,*b;FILE *fp;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);prin
39、tf("你要查询的设备状态是:");scanf("%d",&m.scrap);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s-1;i+)if(bi.scrap=m.scrap)printf("-n"); printf("编
40、号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf("%s",bi.scrapDate);printf(&
41、quot;nn");printf("-n");d+;if(d=0)printf("没有你要查询的设备号nn");/*统计*/stats()int k,a;system("cls");printf("统计价格:n");printf("1.1000<x<4000 2.4000<x<8000 3.8000<x<12000 :");scanf("%d",&k);while(k<1 | k>3)system("
42、cls");printf("你输入的数据有误,请重新输入:n");printf("统计价格:n");printf("1.1000<x<4000 2.4000<x<8000 3.8000<x<12000 :");scanf("%d",&n);if(k=1)stats_1();if(k=2)stats_2();if(k=3)stats_3();printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n");printf(
43、"请输入你要选择的操作:");scanf("%d",&a);while(a<1 | a>7)system("cls");printf("你输入的数据有误,请重新输入:n");printf("1.输入 2.追加 3.排序 4查询 5.统计 6.修改 7.退出n"); printf("n请输入你要选择的操作:"); scanf("%d",&a);if(a=1)input();if(a=2)add();if(a=3)sort();if
44、(a=4)serach();if(a=5)stats();if(a=6)modify();if(a=7)exit(0);stats_1()int i=0,d=0,s=0;FILE *fp;EquInfo *b;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fre
45、ad(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s;i+)if(bi.equipPrice>=1000 && bi.equipPrice<=4000)printf("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); pr
46、intf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf("%s",bi.scrapDate);printf("nn");printf("-n");d+;if(d=0)printf("没有你要统计的价格的设备nn");stats_2()int i=0,d=0,s=0;FILE *fp;EquInfo *b;b=(EquInfo *)malloc(
47、sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Cannot open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s;i+)if(bi.equipPrice>=4001 && bi.equipPrice<=8000)printf(&quo
48、t;-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("%st",bi.buyDate); printf("%dt ",bi.scrap); printf("%s&q
49、uot;,bi.scrapDate);printf("nn");printf("-n");d+;if(d=0)printf("没有你要统计的价格的设备nn");stats_3()int i=0,d=0,s=0;FILE *fp; EquInfo *b;b=(EquInfo *)malloc(sizeof(EquInfo)*100);memset(b,0,100*sizeof(EquInfo);if(fp=fopen("file2.txt","r")=NULL)printf("Canno
50、t open the file!n");return;while(!(feof(fp)fread(&bs,sizeof(EquInfo),1,fp);s+;for(i=0;i<s;i+)if(bi.equipPrice>=8001 && bi.equipPrice<=12000)printf("-n"); printf("编号 总类 名称 价格 购入日期 是否报废 报废日期n");printf("%st",bi.equipCode);printf("%st",bi.equipType);printf("%st",bi.equipName); printf("%dt",bi.equipPrice); printf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 县域新建玉米淀粉加工厂房项目可行性研究报告
- 多模态智慧茶艺系统项目可行性研究报告
- 2026年四川省公务员行测言语理解题库及答案
- 2026年税务筹划合规应用专业试题及答案
- 2026年数据加密信息安全防护试题及答案
- 2026年手术室无菌操作规范考核题库及答案
- 2026年石油化工试题及答案
- 2026糖尿病护理世界级照护服务中心建设课件
- 防护栏施工与验收合同合同三篇
- 租赁管理合同协议合同二篇
- 2026年宁波慈溪市煤气有限公司下属公司公开招聘工作人员4人建设笔试备考试题及答案解析
- 【地理】 欧洲西部第1课时课件-2025-2026学年人教版(2024)七年级地理下学期
- 芜湖市2026公安机关辅警招聘考试笔试题库(含答案)
- 2026苏科版(新教材)初中数学七年级下册期中知识点复习要点梳理(7-9章)
- 2026中国地铁广告行业营销态势及投资盈利预测报告
- 期中考试模拟试卷(含答案) 2025~2026学年度人教版七年级下册地理
- 广东江西稳派智慧上进教育联考2026届高三年级3月二轮复习阶段检测政治+答案
- 采购防欺诈制度
- 2025-2026学年浙美版(新教材)小学美术二年级下册《我爱运动》教学课件
- 公路工程项目部各岗位安全责任书
- 泰康之家-燕园PPT演示课件(PPT 38页)
评论
0/150
提交评论