




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仓库设备管理的C程序/*头文件(.h)*/#include stdio.h /*I/O函数*/#include stdlib.h /*标准库函数*/#include string.h/*字符串函数*/#include ctype.h /*字符操作函数*/#include cstdlib/*定义时间结构体*/struct timeint year;int mouth;int day;a;/*定义设备结构体*/struct shebeichar bh10;char mc10;b10;/*定义部门结构体*/struct bumenchar bh10;char mc10;c4;/*定义链表结构体*/struct savechar sbbh10;/*设备编号*/char bmbh11;/*部门编号*/char time20;/*日期*/int item;/*操作类型1或者-1*/int n;/*设备数量*/double price;/*单价*/double money;/*总金额*/struct save *next;/*函数申明*/void read();/int save(struct save * head);struct save *load(struct save *head);int times(int time);void saved(struct save *head);void broken(struct save *head);void search1(struct save *head);void search2(struct save *head);void list(struct save *head);/*统计数目*/int menu_show();int menu_select(int sel,struct save *head);/*主函数*/main()struct save * head; /*定义链表的头节点*/read();/struct shebei b10 = 1,名称1,2,名称2,3,名称3,4,名称4,5,名称5,6,名称6,7,名称7,8,名称8,9,名称9,10,名称10 ;/struct bumen c4 = 01,部门1,02,部门2,03,部门3,04,部门4 ;head=(struct save *)malloc(sizeof(struct save);system(color 5e);head-next=NULL;system(cls); /*清屏*/for(;)/*无限循环*/ menu_select(menu_show(),head);/*根据参数选择相应的功能函数sel 功能选择代码head 链表头节点*/menu_select(int sel,struct save * head) switch(sel) /*调用主菜单函数,返回值整数作开关语句的条件*/ case 1:saved(head);break;/*购买功能*/ case 2:broken(head);break;/*报废功能*/ case 3:search1(head);break;/*查询指定设备编号购买历史*/ case 4:search2(head);break;/*查询指定部门报废设备历史*/ case 5:list(head);break;/*统计指定日期公司各设备可以使用的数量*/ case 6:save(head);break; case 7:head=load(head);break; case 0:exit(0); /*如返回值为11则程序结束*/ /*菜单函数,函数返回值为整数,代表所选的菜单项*/int menu_show() char s80; int c; printf(nn); printf(nn 欢迎使用设备管理系统!nn); printf( nnnnn 请按任意键继续.n);/*提示压任意键继续*/ getch(); /*读入任意字符*/ system(cls); /*清屏*/ printf( *学生通讯录系统*nn); printf( 1. 购买设备!n); printf( 2. 报废设备!n); printf( 3. 查询指定设备编号购买历史!n); printf( 4. 查询指定部门报废设备历史!n); printf( 5. 统计指定日期公司各设备可以使用的数量!n); printf( 6. 导入购买与报废信息!n); printf( 7. 导出购买与报废信息!n); printf( 0. 退出系统!n); printf( *n); do printf(n 请输入0-5之间的数选择需要的操作(05):); /*提示输入选项*/ scanf(%s,s); /*输入选择项*/ c=atoi(s); /*将输入的字符串转化为整型数*/ while(c7); /*选择项不在07之间重输*/ return c; /*返回选择项,主程序根据该数调用相应的函数*/*文件读入函数*/void read()int i=0;FILE *fp1,*fp2;if(fp1=fopen(c:f1.txt,r)=NULL)printf();exit(1);while(!feof(fp1)fscanf(fp1,%s%s,bi.bh,bi.mc);i+;fclose(fp1);i=0;if(fp2=fopen(c:f2.txt,r)=NULL)printf();exit(1);while(!feof(fp2)fscanf(fp2,%s%s,ci.bh,ci.mc);i+;fclose(fp2);/*日期函数*/int times(char time)int flag=0;int n=0;char *p=time;if(strlen(time)!=10)return flag;while(*p!=-)n=n*10+*p-0;p+;a.year=n;p+;n=0;while(*p!=-)n=n*10+*p-0;p+;a.mouth=n;p+;n=0;while(*p!=0)n=n*10+*p-0;p+;a.day=n;if(a.mouth0&a.mouth=1&a.day=1&a.day=1&a.day=1&a.day=1&a.day=1&a.daynext!=NULL)p=p-next;system(cls); /*清屏*/printf(请输入购买信息:nn);temp=malloc(sizeof(struct save);temp-next=NULL;printf(设备编号 部门编号 购买日期(格式如2009-01-02) 设备数量 设备单价 nn);printf(-nn);scanf(%s%s%s%d%lf,temp-sbbh,temp-bmbh,temp-time,&temp-n,&temp-price );dofor(k=0;ksbbh,bk.bh)flag=1;break;if(flag=0)printf(设备编号输入错误,请重新输入。);scanf(%s,temp-sbbh);while(flag=0);dofor(k1=0;k1bmbh,ck1.bh)flag1=1;break;if(flag1=0)printf(部门编号输入出错,请重新输入。);scanf(%s,temp-bmbh);while(flag1=0);while(times(temp-time)!=1)printf(时间输入有误,请重输:);scanf(%s,temp-time);while(temp-nn);while(temp-priceprice);for(i=0;i10;i+)for(j=0;jsbbh,bi.bh)&!strcmp(temp-bmbh,cj.bh)if(times(temp-time)&temp-n0&temp-price0)temp-item=1;temp-money=(temp-n)*(temp-price);p-next=temp;m=1;printf(购买成功!谢谢使用!nn);if(m=0)printf(对不起,购买失败,请重新购买!);/*报废功能*/void broken(struct save *head)struct save *p,*temp;int k,k1,m=0,flag=0,flag1=0;p=head;system(cls); /*清屏*/printf(请输入报废信息:nn);temp=malloc(sizeof(struct save);temp-next=NULL;printf(设备编号 部门编号 报废日期(格式如2009-01-02) 设备数量 nn);printf(-nn);scanf(%s%s%s%d,temp-sbbh,temp-bmbh,temp-time,&temp-n);dofor(k=0;ksbbh,bk.bh)flag=1;break;if(flag=0)printf(设备编号输入错误,请重新输入。);scanf(%s,temp-sbbh);while(flag=0);dofor(k1=0;k1bmbh,ck1.bh)flag1=1;break;if(flag1=0)printf(部门编号输入出错,请重新输入。);scanf(%s,temp-bmbh);while(flag1=0);while(times(temp-time)!=1)printf(时间输入有误,请重输:);scanf(%s,temp-time);while(temp-nn);while(p!=NULL)if(!strcmp(temp-sbbh,p-sbbh)&!strcmp(temp-bmbh,p-bmbh)if(times(temp-time)&temp-n0&(p-item=1)&temp-nn)temp-item=-1;temp-money=(temp-n)*(temp-price);m=1;p-n=p-n-temp-n;p-money=p-n*p-price;printf(报废成功!谢谢使用!nn);while(p-next!=NULL)p=p-next;p-next=temp;p=p-next;if(m=0)printf(报废失败!请重新报废!);/*查询指定设备编号购买历史*/void search1(struct save *head)char sbbh10;int i=0,j=0,k,flag=0,j1=0;struct save *p;p=head-next;system(cls); /*清屏*/printf(请输入指定设备编号:nn);scanf(%s,sbbh);dofor(k=0;kitem=1 )if(strcmp(sbbh,p-sbbh)=0)i=1;if(j1=0)printf(n指定设备购买历史如下:nn);printf(设备编号 部门编号 购买日期 购买数量 购买价格 购买金额nn);printf(%s %4s %4s %d %lf %lfn,p-sbbh,p-bmbh,p-time,p-n,p-price,p-money );j1=1;p=p-next; if(i=0)printf(对不起,此设备还没有购买!);/*查询指定部门报废设备历史*/void search2(struct save *head)char bmbh10;int i=0,j=0,k,flag=0;struct save *p;p=head-next;system(cls); /*清屏*/printf(请输入指定部门编号:nn);scanf(%s,bmbh);dofor(k=0;kitem=-1 )if(strcmp(bmbh,p-bmbh)=0) if(j=0)printf(指定部门报废设备历史如下:nn);printf(设备编号 部门编号 报废日期 购买数量 nn);i=1;printf(%4s %4s %4s %4dn,p-sbbh,p-bmbh,p-time,p-n);j=1;p=p-next;if(i=0)printf(对不起,没有过报废历史!);/*统计指定日期公司各设备可以使用的数量*/void list(struct save *head)char time20;char *s,*t;struct save *p;int count=0,n=0,m=0,j=0,k=0,y;p=head;system(cls); /*清屏*/printf(请输入指定日期(格式如2009-01-02):nn);scanf(%s,time);while(times(time)!=1)printf(时间输入有误,请重输:);scanf(%s,time);s=time;while(*s)if(*s=0&*sitem=1)t=p-time; while(*t)if(*t=0&*t=9)m=m*10+(*t-0);t+;if(msbbh,p-bmbh,p-time,p-n );count+;j=1;k=1;p=p-next;if(j=0)printf(对不起,没有可以使用设备!);int getLength(struct save * head) int count=0;/计数器 struct save * p; p=head-next; /循环链表 while(p!=NULL) count+; p=p-next; return count;/*保存函数,参数为头节点*/int save(struct save * head) int n; char filename20; FILE *fp; /*指向文件的指针*/ struct save *p,*q; p=head; getchar(); n=getLength(head); system(cls); /*清屏*/ if(n=0) printf(购买和报废记录为空,不能保存!); return 0; printf(请输入文件路径(c:f3.txt):n); gets(filename);/输入文件名 if(fp=fopen(filename,w)=NULL) /*打开文件,并判断打开是否正常*/ printf(不能打开文件n);/*没打开*/ exit(0); /*退出*/ printf(n保存文件.n); /*输出提示信息*/ fprintf(fp,%d,n); /*将记录数写入文件*/ fprintf(fp,rn); /*将换行符号写入文件*/ while(p!=NULL) if(p-item=1) fprintf(fp,%s %s %s %d %d %lf %lf,p-sbbh,p-bmbh,p-time,p-item,p-n,p-price,p-money);/*格式写入记录*/ fprintf(fp,rn); /*将换行符号写入文件*/ if(p-item=-1) fprintf(fp,%s %s %s %d %d,p-sbbh,p-bmbh,p-time,p-item,p-n);/*格式写入记录*/fprintf(fp,rn); /*将换行符号写入文件*/ p=p-nex
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 药学专业试题及答案软件
- 河北省唐山市2025-2026学年高三上学期摸底演练化学试卷(含答案)
- 甘肃省金太阳2026届高三9月开学联考(26-1002C)政治(含答案)
- 黑龙江省佳木斯市桦川县2026届九年级上学期开学考试数学试卷(含答案)
- 闵行区自制鱼池施工方案
- 乐山塑胶操场施工方案
- 祖国生日庆祝致辞模板
- 会计年终工作总结
- 辽宁省大连市滨城高中联盟2024-2025学年高二上学期期中物理试卷(含解析)
- 山西省阳泉市部分学校2025-2026学年上学期第一次月考八年级地理试卷
- 生鲜店食品安全管理制度
- 2025年中国微网雾化器行业市场前景预测及投资价值评估分析报告
- 即墨区离婚协议书
- 别墅设计全套方案
- 精神患者监管协议书
- 军队文职理工类-数学2+物理-黄金考点汇编
- 中国养老产业发展研究报告
- 2025-2030体感游戏机行业市场深度调研及发展趋势与投资战略研究报告
- 煤炭矿井通信设计规范
- 2025年陕西省咸阳市秦都区中考一模语文试题(卷尾带答案)
- 抖音本地生活服务方案
评论
0/150
提交评论