语言课程实践实验设备管理系统_第1页
语言课程实践实验设备管理系统_第2页
语言课程实践实验设备管理系统_第3页
语言课程实践实验设备管理系统_第4页
语言课程实践实验设备管理系统_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中国地质大学(武汉)机械设计制造及其自动化专业072105陈乾#include<stdio.h>#include<string.h>#define AMOUNT 50 typedef struct int year;int month;int day;DATE;struct EQUint num; /*本程序默认设备编号各不相同且不为0*/char type20;char name20;int price;DATE buy_time;int scrap; /*0表示报废1表示不报废*/DATE scr_time;equAMOUNT; /*公共函数 保存与加载函数*/vo

2、id 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("file write errorn");fclose(fp);void load()FILE *fp;int i;if(fp=fopen("record","rb&

3、quot;)=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("file read errorn");fclose(fp);/*录入模块*/void add()int flag;struct EQU *p;load(); /*程序缺陷 如果record文件中存储数据不足 将重复输出多个file read error 原因在于for语句对其进行

4、循环AMOUNT次循环 如不写本行记录将被覆盖*/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 设备名称:%s

6、n价格:%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",&flag);whil

7、e(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)do printf("请输入要更改的信息:n1设备编号n2设备种类n3设备名称n4设备价格n5购买日期n6是否报废n7退出n"); scanf("%d",&n);

8、 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("请输入新的价格n"); scanf(&

9、quot;%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);printf("请输入报废日期n"

10、;);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 %d n",p->num,p->type,p->name,p->price,p->

11、;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");printf("2.按设备种类查询n");printf("3.按设备名

12、称查询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<AMOUNT;i+,p+)if(p->num=num)printf("编号:%d 设备种类:%s 设备名称:%sn价格:%d 购

13、买日期:%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);break;case 2:printf("请输入要查询的设备种类n");scanf("%s",s);for(i=0,p=

14、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.month,p->buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_ti

15、me.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 是否报废:%d 报废日期:%d %d %dn",p->num,p->type,p->name,p->price,p->buy_time.year,p->buy_time.mo

16、nth,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,&day);for(i=0,p=equ;i<AMOUNT;i+,p+)if(year=p->buy_time.year&&month=p->buy_time.mont

17、h&&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->buy_time.month,p->buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);break;

18、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",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.

19、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,str11;p=equ;load();printf("请输入要查询的设备种类n");scanf("%s",&s0);for(i=0,n=0,p=equ;i<AMOUNT;i+,p+)if(strcmp(s,p->typ

20、e)=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_time.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.mont

21、h=p->scr_time.month;strn.scr_time.year=p->scr_time.year;n+;/*以上程序是将需要查询的设备种类的所有设备信息存入数组str中*/doprintf("1.按编号排序n");printf("2.按价格排序n");printf("3.按购买日期排序n");printf("4.退出n"); /*这段程序之后出错*/scanf("%d",&flag); switch(flag)case 1:for(j=0;j<n-1;j+

22、) /*起泡法排序*/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=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_

23、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

24、_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);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.b

25、uy_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.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,s

26、tr10.type);for(i=0,p=str;i<n;i+,p+)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.month,p->buy_time.day,p->scrap,p->scr_time.year,p->scr_time.month,p->scr_time.day);br

27、eak;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.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=s

28、tri.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.bu

29、y_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);strcpy(stri.type,stri+1.type);stri+1.num=str10.num;stri+1.buy_time.day=str10.buy_time.day;

30、 /*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.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,);s

31、trcpy(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->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-&

32、gt;scr_time.day);break;case 3: /*由于程序过于复杂 需连续用3次起泡法 所以按购买日期排序只对年份排序*/ for(j=0;j<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.

33、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.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(,st

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论