如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
中国地质大学(武汉)机械设计制造及其自动化专业072105——陈乾#include<stdio.h>#include<string.h>#defineAMOUNT50typedefstruct{intyear;intmonth;intday;}DATE;structEQU{intnum;/*本程序默认设备编号各不相同且不为0*/chartype[20];charname[20];intprice;DATEbuy_time;intscrap;/*0表示报废1表示不报废*/DATEscr_time;}equ[AMOUNT];/*公共函数保存与加载函数*/voidsave(){FILE*fp;inti;if((fp=fopen("record","wb"))==NULL)printf("cannotopenfile\n");for(i=0;i<AMOUNT;i++)if(fwrite(&equ[i],sizeof(structEQU),1,fp)!=1)printf("filewriteerror\n");fclose(fp);}voidload(){FILE*fp;inti;if((fp=fopen("record","rb"))==NULL)printf("cannotopenfile\n");for(i=0;i<AMOUNT;i++)if(fread(&equ[i],sizeof(structEQU),1,fp)!=1){if(feof(fp))fclose(fp);printf("filereaderror\n");}fclose(fp);}/*录入模块*/voidadd(){intflag;structEQU*p;load();/*程序缺陷如果record文件中存储数据不足将重复输出多个filereaderror原因在于for语句对其进行循环AMOUNT次循环如不写本行记录将被覆盖*/p=equ;do{if(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->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\n价格:%d购买日期:%d%d%d\n是否报废:%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,退出请按2\n");scanf("%d",&flag);}while(flag==1);save();}/*修改模块*/voidchange(){intflag,n,i=0;structEQU*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);switch(n){case1:printf("请输入新的设备编号\n");scanf("%d",&p->num);break;case2:printf("请输入新的设备种