


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中国地质大学(武汉)机械设计制造及其自动化专业072105陈乾#include<stdio.h>#include<string.h>#define AMOUNT 50typedef struct int year;int month;int day;DATE;struct EQU0*/int num; /* 本程序默认设备编号各不相同且不为 char type20;char name20;int price;DATE buy_time;int scrap; /*0 表示报废 1 表示不报废 */DATE scr_time;equAMOUNT;/* 公共函数 保存与加载函
2、数 */void save()FILE *fp;int i;if(fp=fopen("record","wb")=NULL)printf("cannot open filen");for(i=0;i<AMOUNT;i+)if(fwrite(&equi,sizeof(struct EQU),1,fp)!=1)printf(" errorn");fclose(fp);void load()FILE *fp;int i;if(fp=fopen("record","rb"
3、;)=NULL)printf("cannot open filen");for(i=0;i<AMOUNT;i+)if(fread(&equi,sizeof(struct EQU),1,fp)!=1)if(feof(fp)fclose(fp);printf(" errorn");fclose(fp);/* 录入模块 */void add()int flag;struct EQU *p;load(); /* 程序缺陷 如果 record 文件中存储数据不足 将重复 输出多个 error 原因在于 for 语句对其进行循环 AMOUNT 次循环
4、如不写本行记录将被 覆盖 */p=equ;doif(p->num!=0)p+;printf(" 请输入设备编号 n");scanf("%d",&p->num);printf(" 请输入设备种类 n");scanf("%s",p->type);printf(" 请输入设备名称 n");scanf("%s",p->name);printf(" 请输入设备价格 n");scanf("%d",&p->
5、;price);printf(" 请输入设备购买日期 年 月 日以空格隔开 n");scanf("%d%d%d",&p->buy_time.year,&p->buy_time.month,&p->buy_time.day);p->scrap=1;p->scr_time.year=0;p->scr_time.month=0;p->scr_time.day=0;printf("n 以下记录录入成功 n");printf(" 编号: %d 设 备种类: %s设备名称
6、: %sn 价格: %d 购买日期 : %d %d %dn 是 否 报 废 : %d 报 废 日 期 : %d %d %d n",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p->buy_time.day,p- >scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);printf(" 继续录入请按 1,退出请按 2n");scanf("%d
7、",&flag);while(flag=1);save();/* 修改模块 */void change()int flag,n,i=0;struct EQU *p;p=equ;load();printf(" 请输入要更改的设备编号 n");scanf("%d",&flag);for(i=0,p=equ;i<AMOUNT;i+,p+)if(p->num=flag)doprintf(" 请输入要更改的信息 :n1 设备编号 n2 设备种类 n3 设备名称 n4 设备价 格n5购买日期n6是否报废n7退出n&qu
8、ot;);scanf("%d",&n);switch(n)case 1:printf(" 请输入新的设备编号 n");scanf("%d",&p->num);break;case 2:printf(" 请输入新的设备种类 n");scanf("%s",p->type);break;case 3:printf(" 请输入新的设备名称 n");scanf("%s",p->name);break;case 4:printf(&q
9、uot; 请输入新的价格 n");scanf("%d",&p->price);break;case 5:printf(" 请输入新的设备购买日期 年 月 日 n");scanf("%d%d%d",&p->buy_time.year,&p->buy_time.month,&p->buy_time.day);break;case 6:printf(" 请输入是否报废设备 n");scanf("%d",&p->scrap)
10、;printf(" 请输入报废日期 n");scanf("%d%d%d",&p->scr_time.year,&p->scr_time.month,&p->scr_time.day);break;case 7:break;while(n!=7);printf(" 修改后的记录为: ");printf(" 编号: %d 设备种类: %s 设 备名称: %sn 价格: %d 购买日 期 : %d %d %dn 是 否 报 废 : %d报 废 日 期 : %d %d %dn",p
11、->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p->buy_time.day,p- >scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day); save();/* 查询模块 */void search()int n,num,i,year,month,day;char s20;struct EQU *p;p=equ;load();doprintf("1. 按编号查询 n&quo
12、t;);printf("2. 按设备种类查询 n");printf("3. 按设备名称查询 n");printf("4. 按购买日期查询 n");printf("5. 查询正常的设备 n");printf("6. 退出 n");scanf("%d",&n);switch(n)case 1:printf(" 请输入要查询的设备编号 n");scanf("%d",&num); for(i=0,p=equ;i<AMOUN
13、T;i+,p+)if(p->num=num)printf(”编号:d设备种类:%s 设备名称:sn价格:d 购买 日 期 : %d %d %dn 是 否 报 废 : %d报 废 日 期 : %d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p->buy_time.day,p- >scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;ca
14、se 2:printf(" 请输入要查询的设备种类 n");scanf("%s",s);for(i=0,p=equ;i<AMOUNT;i+,p+)if(strcmp(s,p->type)=0)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d 购 买 日 期 : %d %d %d是 否 报 废 : %d报 废 日期: %d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time
15、.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 3:printf(" 请输入要查询的设备名称 n");scanf("%s",s);for(i=0,p=equ;i<AMOUNT;i+,p+)if(strcmp(s,p->name)=0)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d购买 日 期 : %d %d %d 是 否 报 废
16、 : %d 报 废 日 期: %d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 4:printf(”请输入要查询的设备购买日期年 月 日n”);scanf("%d%d%d",&year,&month,&a
17、mp;day); for(i=0,p=equ;i<AMOUNT;i+,p+)if(year=p->buy_time.year&&month=p->buy_time.month&&day=p->buy_time.day)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d购买 日 期 : %d %d %d 是 否 报 废 : %d报 废日期: %d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p
18、->buy_time.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 5:printf(" 未报废的设备有: n");for(i=0,p=equ;i<AMOUNT;i+,p+)if(p->scrap=1)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d购买 日 期 : %d %d %d 是 否 报 废 : %d报 废日期: %d %d %dn&q
19、uot;,p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 6:break;while(n!=6);/* 统计模块 */void statis()int flag,n,i,j,k=0;char s20;struct EQU *p;struct EQU strAMOUNT,
20、str11;p=equ;load();printf(" 请输入要查询的设备种类 n");scanf("%s",&s0);for(i=0,n=0,p=equ;i<AMOUNT;i+,p+)if(strcmp(s,p->type)=0)strn.num=p->num;strn.price=p->price;strcpy(,p->name);strn.scrap=p->scrap;strcpy(strn.type,p->type);strn.buy_time.year=p->buy_ti
21、me.year;strn.buy_time.month=p->buy_time.month;strn.buy_time.day=p->buy_time.day;strn.scr_time.day=p->scr_time.day;strn.scr_time.month=p->scr_time.month;strn.scr_time.year=p->scr_time.year;n+;/*以上程序是将需要查询的设备种类的所有设备信息存入数组str 中*/doprintf("1. 按编号排序 n");printf("2. 按价格排序 n&qu
22、ot;);printf("3. 按购买日期排序 n");printf("4. 退出 n");/* 这段程序之后出错 */ scanf("%d",&flag);switch(flag)case 1:for(j=0;j<n-1;j+)/* 起泡法排序 */for(i=0;i<n-1-j;i+)if(stri.num>stri+1.num)str10.num=stri.num; str10.buy_time.day=stri.buy_time.day;/*t=ai*/str10.buy_time.month=str
23、i.buy_time.month; str10.buy_time.year=stri.buy_time.year; str10.scr_time.year=stri.scr_time.year; str10.scr_time.month=stri.scr_time.month; str10.scr_time.day=stri.scr_time.day; str10.price=stri.price;str10.scrap=stri.scrap; strcpy(,); strcpy(str10.type,stri.type); stri.num=stri+1
24、.num; stri.buy_time.day=stri+1.buy_time.day;/*ai=ai+1*/stri.buy_time.month=stri+1.buy_time.month; stri.buy_time.year=stri+1.buy_time.year; stri.scr_time.year=stri+1.scr_time.year; stri.scr_time.month=stri+1.scr_time.month; stri.scr_time.day=stri+1.scr_time.day; stri.price=stri+1.price; stri.scrap=st
25、ri+1.scrap; strcpy(,stri+1.name); strcpy(stri.type,stri+1.type); stri+1.num=str10.num; stri+1.buy_time.day=str10.buy_time.day;/*ai+1=t*/stri+1.buy_time.month=str10.buy_time.month; stri+1.buy_time.year=str10.buy_time.year; stri+1.scr_time.year=str10.scr_time.year; stri+1.scr_time.month=str10
26、.scr_time.month; stri+1.scr_time.day=str10.scr_time.day; stri+1.price=str10.price;stri+1.scrap=str10.scrap;strcpy(stri+1.name,); strcpy(stri+1.type,str10.type);for(i=0,p=str;i<n;i+,p+)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d 购买日 期 : %d %d %d 是 否 报 废 : %d 报 废 日 期: %d %d %dn",p-
27、>num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 2:for(j=0;j<n-1;j+)/* 起泡法排序 */for(i=0;i<n-1-j;i+)if(stri.price>=stri+1.price)str10.num=stri.num; str10.b
28、uy_time.day=stri.buy_time.day;/*t=ai*/str10.buy_time.month=stri.buy_time.month; str10.buy_time.year=stri.buy_time.year; str10.scr_time.year=stri.scr_time.year; str10.scr_time.month=stri.scr_time.month; str10.scr_time.day=stri.scr_time.day; str10.price=stri.price;str10.scrap=stri.scrap; strcpy(str10.
29、name,); strcpy(str10.type,stri.type);stri.num=stri+1.num; stri.buy_time.day=stri+1.buy_time.day;/*ai=ai+1*/stri.buy_time.month=stri+1.buy_time.month; stri.buy_time.year=stri+1.buy_time.year; stri.scr_time.year=stri+1.scr_time.year; stri.scr_time.month=stri+1.scr_time.month; stri.scr_time.da
30、y=stri+1.scr_time.day; stri.price=stri+1.price;stri.scrap=stri+1.scrap;strcpy(,stri+1.name);strcpy(stri.type,stri+1.type); stri+1.num=str10.num; stri+1.buy_time.day=str10.buy_time.day;/*ai+1=t*/stri+1.buy_time.month=str10.buy_time.month;stri+1.buy_time.year=str10.buy_time.year;stri+1.scr_ti
31、me.year=str10.scr_time.year;stri+1.scr_time.month=str10.scr_time.month; stri+1.scr_time.day=str10.scr_time.day; stri+1.price=str10.price;stri+1.scrap=str10.scrap;strcpy(stri+1.name,);strcpy(stri+1.type,str10.type);for(i=0,p=str;i<n;i+,p+)printf(" 编号: %d 设备种类: %s 设备名称: %s 价格: %d 购买日
32、 期 : %d %d %d 是 否 报 废 : %d 报 废 日 期: %d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.month,p-> buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;case 3: /* 由于程序过于复杂 需连续用 3 次起泡法 所以 按购买日期排序只对年份排序 */for(j=0;j<
33、n-1;j+)/* 起泡法排序 */for(i=0;i<n-1-j;i+)if(stri.buy_time.year>=stri+1.buy_time.year)str10.num=stri.num; str10.buy_time.day=stri.buy_time.day;/*t=ai*/str10.buy_time.month=stri.buy_time.month; str10.buy_time.year=stri.buy_time.year; str10.scr_time.year=stri.scr_time.year; str10.scr_time.month=stri.
34、scr_time.month;str10.scr_time.day=stri.scr_time.day;str10.price=stri.price;str10.scrap=stri.scrap;strcpy(,);strcpy(str10.type,stri.type);stri.num=stri+1.num;stri.buy_time.day=stri+1.buy_time.day;/*ai=ai+1*/stri.buy_time.month=stri+1.buy_time.month;stri.buy_time.year=stri+1.buy_time.year;stri.scr_time.year=stri+1.scr_time.year; stri.scr_time.month=stri+1.scr_time.month; stri.scr_time.day=stri+1.scr_time.day; stri.price=stri+1.price;stri.scrap=stri+1.scrap;strcpy(,stri+1.name);strcp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供应链的创新方法及试题及答案
- 2025年易切削钢项目投资风险评估报告
- 物流行业的管理创新策略试题与答案
- 使用燃气防伤害
- 迁徙动物行为的生态学解析试题及答案
- 掌握CPMM考试要点的试题及答案
- 大宗货物运输的特点及试题及答案
- 实操练习CPMM试题及答案
- 2024年CPMM常见题库分析及试题及答案
- 仓储节能减排举措的试题及答案
- 军队物资采购合同范本
- GB/T 1346-2024水泥标准稠度用水量、凝结时间与安定性检验方法
- 视障人群智能出行产品设计研究
- 课题申报书:指向科学实践能力考查的科学课程高考命题研究
- 品管圈预防术中低体温
- 《时间简史》导读(南开大学)学习通测试及答案
- 2024年萍乡卫生职业学院单招职业技能测试题库标准卷
- 2025靶向高通量测序在感染性疾病中应用与实践专家共识(全文)
- 跨境电商独立站搭建及代运营服务合同
- 《毕业生就业协议书》(空白)原件
- 9.3溶质的质量分数(第1课时溶质的质量分数)+教学设计-2024-2025学年九年级化学人教版(2024)下册
评论
0/150
提交评论