版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、./C 语言课程设计职工信息管理系统 结构体数组实现#include #include #include struct employeechar num10;char name15;char sex5;char bm20;char zc20;int gz;int read_ employee em);void menu();void write_ employee em);void add();void select();/查看职工所有信息void zc_query();/按职称查询void num_del();/按工号删除void tongji();/统计void sort();/排序voi
2、d num_modify();/按工号修改职工信息void save();/保存信息void disp(); /显示职工信息void fh();/返回主菜单struct employee em300;/这个数组用来保存所有的职工信息和文件里面的一致int Number=0; /记录总的职工人数也就是数组 / 文件里面的职工人数void menu()printf(t*n);printf(t*n);printf(t*职工信息管理系统_结构体数组实现*n);printf(t*n);printf(t*1增加职工信息2查看职工信息*n);.printf(t*3查找职工信息4删除职工信息*n);print
3、f(t*5统计6职工工资排列*n);printf(t*7修改职工信息8保存职工信息*n);printf(t*9显示职工信息0退出系统*n);printf(t*n);printf(t*n);void main()int choose=0;FILE *fp=NULL;char yesorno;if(fp=fopen(employee1.txt,rb+)=NULL)printf(n=提示:文件不存在,是否要创建一个?(y/n)n);scanf(%c,&yesorno);if(yesorno=y|yesorno=Y)/ 这里仅为了建立文件 fp=fopen(employee1.txt,wb+);fcl
4、ose(fp); /关闭 fp 所指的文件,释放文件缓冲区elseexit(0);elseNumber=read_); /要是文件已经有数据将数据初始化到数组中system(cls);while(1)menu();printf(tt=请选择: );scanf(%d,&choose);system(cls);.switch(choose)case 0:exit(0); /退出break;case 1:add();fh();/增加职工信息break;case 2:select();fh();/查看职工信息break;case 3:zc_query();fh();/查找break;case 4:nu
5、m_del();fh();/删除break;case 5:tongji();fh();/统计break;case 6:sort();fh();/排序break;case 7:num_modify();fh();/修改后返回break;case 8:save();fh();/保存break;case 9:disp();fh();break;/显示default:break;.fflush(stdin);getchar();system(cls);void save()printf(t=程序在运行时已自动保存.n);void fh()printf(t=按 Enter 键返回主菜单 n);void
6、num_modify() /修改职工信息FILE *fp=NULL;char gh60;int i=0;int changeIndex=0; /changeIndex改变标记int index=0;printf(请输入要修改的职工工号:);scanf(%s,gh);for (i=0;iNumber;i+)if (strcmp(gh,emi.num)=0) /比较输入工号和数组中已有工号changeIndex=i; /保存要修改的人的下标break;printf(t 工号 t 姓名 t 性别 t 部门 t 职称 t 工资 n); printf(t%st%st%st%st%st%dnn,emcha
7、ngeIndex.num,emchangeI,emchangeIndex.sex,emchangeIndex.bm,emchangeIndex.zc,emchangeIndex.gz);printf(请重新输入该职工信息 );printf(工号: );scanf(%s,emchangeIndex.num);printf(姓名: );scanf(%s,emchangeI);printf(性别: );scanf(%s,emchangeIndex.sex);printf(部门: );.scanf(%d,emchangeIndex.bm);printf(职称: );
8、scanf(%s,emchangeIndex.zc);printf(工资: );scanf(%d,&emchangeIndex.gz);/ 信息修改后重新更新文件里面的数据以保持数据一致性fp=fopen(employee1.txt,wb+);for (i=0;i修改成功 n);void disp() /输出所有职工信息int i=0;for (i=0;iNumber;i+)printf(t%st%st%st%st%st%dnn,emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void sort()/排序struct employee t;int
9、wantNUmber=0;int i=0;int j=0;int k=0;for(i=0;iNumber-1;i+)k=i;for(j=i+1;jemk.gz)k=j;if(k!=i)t=emi;emi=emk;emk=t;printf(你想输出前几名职工的信息:);scanf(%d,&wantNUmber);if (wantNUmberNumber)wantNUmber=Number;printf(t工号 t姓名 t 性别 t部门 t职称 t工资 n);for(i=0;iwantNUmber;i+)printf(t%st%st%st%st%st%dnn,emi.num,,em
10、i.sex,emi.bm,emi.zc,emi.gz);void tongji()/统计int i,m,k,max,min;double sum=0.0;for(i=0;iNumber;i+)sum=sum+emi.gz;printf(全体职工的总工资为: %fn,sum);printf(平均工资为: %fn,sum/Number);.i=0;m=0;max=0;max=emm.gz;for(i=1;imax)m=i;max=emm.gz;printf( 最高工资为: %dn,max); printf(t%st%st%st%st%st%dnn,emm.num,,emm.sex,
11、emm.bm,emm.zc,emm.gz);i=0;k=0;min=0;min=em0.gz;for(i=1;iNumber;i+)if (emi.gzmin)k=i;min=emk.gz;printf(最低工资: %dn,min);printf(t%st%st%st%st%st%dnn,emk.num,,emk.sex,emk.bm,emk.zc,emk.gz);void num_del()/按工号删除FILE *fp=NULL;char gh60;int i=0;int j=0;printf(请输入要删除的职工工号:);scanf(%d,gh);for(i=0;iNumbe
12、r;i+)if (strcmp(gh,emi.num)=0) /如果查找到就删除for (j=i;jNumber-1;j+).emj=emj+1;Number-;/ 将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了 fp=fopen(employee1.dat,wb);for (i=0;iNumber;i+)fwrite(&emi,sizeof(struct employee),1,fp);fclose(fp);printf(删除成功 ;n);void zc_query()/按职称查找char zc20;int i=0;printf(请输入要查找职工职称 :);scanf(%s,
13、zc);system(cls);printf(t工号 t姓名 t性别 t 部门 t职称 t工资 n);for (i=0;iNumber;i+)if (strcmp(zc,emi.zc)=0)printf(t%st%st%st%st%st%dnn,emi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void select()/查看职工.int i=0;printf(以下是全部职工信息 n);printf(t工号 t姓名 t性别 t 部门 t职称 t工资 n);for(i=0;iNumber;i+)printf(t%st%st%st%st%st%dnn,e
14、mi.num,,emi.sex,emi.bm,emi.zc,emi.gz);void add()/增加职工int numberTemp=0;int i=0;struct employee temp; /临时保存信息printf(请输入要增加职工信息的个数:);scanf(%d,&numberTemp);for(i=0;inumberTemp;i+)printf(输入第 %d个职工信息 n,i+1);printf(工号: );scanf(%s,temp.num);printf(姓名: );scanf(%s,);printf(性别: );scanf(%s,temp
15、.sex);printf(部门: );scanf(%s,temp.bm);printf(职称: );scanf(%s,temp.zc);printf(工资: );scanf(%d,&temp.gz);emNumber+=temp; / 将刚添加的写入到数组write_); /将刚添加的写入到文件printf(添加成功 n);.void write_ employee *em)FILE *fp=NULL;fp=fopen(employee1.txt,rb+);fwrite(em,sizeof(struct employee),1,fp);fclose(fp);int read_ employee em)FILE *fp=NULL;int i=0;fp=fopen(employee1.txt,rb);while(fread(&emi,sizeof(struct employee),1,fp)i+;fclose(fp);return i;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年平顶山工业职业技术学院单招职业技能考试备考试题含详细答案解析
- 2026年莆田学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年安徽交通职业技术学院单招职业技能考试备考题库含详细答案解析
- 2026年深圳职业技术学院单招综合素质考试参考题库含详细答案解析
- 2026年运城职业技术大学单招综合素质考试备考题库含详细答案解析
- 2026年江西环境工程职业学院单招综合素质考试备考试题含详细答案解析
- 2026年江苏航空职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026云南红河州泸西大为焦化有限公司招聘2人考试重点题库及答案解析
- 2026年资阳环境科技职业学院单招综合素质考试参考题库含详细答案解析
- 2026年安徽新闻出版职业技术学院高职单招职业适应性测试备考试题及答案详细解析
- 保密车间出入管理制度
- 肯德基副经理养成课程
- 铁路劳动安全 课件 第四章 机务劳动安全
- 智慧人社大数据综合分析平台整体解决方案智慧社保大数据综合分析平台整体解决方案
- 脊柱与四肢检查课件
- 六宫格数独100题
- 2024年河北省供销合作总社招聘笔试参考题库附带答案详解
- 宅基地及地上房屋确权登记申请审批表
- 医疗卫生舆情课件
- 2024年甘肃省安全员A证考试题库及答案
- 数据安全保护与隐私保护
评论
0/150
提交评论