版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/C语言课程设计 职工信息管理系统结构体数组实现#include #include #include struct employeechar num10;char name15;char sex5;char bm20;char zc20;int gz;int read_file(struct employee em;void menu(;void write_file(struct employee em;void add(; void select(; /查看职工所有信息void zc_query(; /按职称查询void num_del(; /按工号删除void tongji(; /统计v
2、oid sort(; /排序void 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&quo
3、t;printf("t* 1 增加职工信息 2 查看职工信息 *n"printf("t* 3 查找职工信息 4 删除职工信息 *n"printf("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 yesorn
4、o;if(fp=fopen("employee1.txt","rb+"=NULLprintf("n=>提示:文件不存在,是否要创建一个?(y/nn"scanf("%c",&yesorno;if(yesorno='y'|yesorno='Y' /这里仅为了建立文件fp=fopen("employee1.txt","wb+"fclose(fp; /关闭fp所指的文件,释放文件缓冲区elseexit(0;elseNumber=read_
5、file(em; /要是文件已经有数据 将数据初始化到数组中system("cls" while(1 menu(;printf("tt=>请选择:"scanf("%d",&choose;system("cls"switch(choosecase 0: exit(0; /退出 break; case 1: add(;fh(;/增加职工信息break; case 2:select(;fh(;/查看职工信息break; case 3: zc_query(;fh(;/ 查找 break;case 4:num_
6、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=>按Ente
7、r键返回主菜单n"void num_modify( /修改职工信息FILE *fp=NULL;char gh60;int i=0;int changeIndex=0; /changeIndex 改变标记int index=0;printf("请输入要修改的职工工号:"scanf("%s",gh;for (i=0;i if (strcmp(gh,emi.num=0 /比较输入工号和数组中已有工号changeIndex=i; /保存要修改的人的下标break;printf("t工号t姓名t性别t部门t职称t工资n"printf(
8、"t%st%st%st%st%st%dnn",emchangeIndex.num,emchangeI,emchangeIndex.sex,emchangeIndex.bm,emchangeIndex.zc,emchangeIndex.gz;printf("请重新输入该职工信息"printf("工号:"scanf("%s",emchangeIndex.num;printf("姓名:"scanf("%s",emchangeI;printf(&q
9、uot;性别:"scanf("%s",emchangeIndex.sex;printf("部门:"scanf("%d",emchangeIndex.bm;printf("职称:"scanf("%s",emchangeIndex.zc;printf("工资:"scanf("%d",&emchangeIndex.gz;/信息修改后重新更新文件里面的数据 以保持数据一致性fp=fopen("employee1.txt",&q
10、uot;wb+"for (i=0;i fwrite(&emi,sizeof(struct employee,1,fp; /把ptr所指向n*size个字节输入到fp所指向的文件中fclose(fp;printf("t=>修改成功n"void disp( /输出所有职工信息 int i=0;for (i=0;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
11、 wantNUmber=0;int i=0;int j=0;int k=0;for(i=0;i k=i;for(j=i+1;j if(emj.gz>emk.gzk=j;if(k!=it=emi;emi=emk;emk=t;printf("你想输出前几名职工的信息:"scanf("%d",&wantNUmber;if (wantNUmber>NumberwantNUmber=Number;printf("t工号t姓名t性别t部门t职称t工资n"for(i=0;i printf("t%st%st%st%st%
12、st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz; void tongji(/统计 int i,m,k,max,min;double sum=0.0;for(i=0;i sum=sum+emi.gz;printf("全体职工的总工资为:%fn",sum;printf("平均工资为:%fn",sum/Number; i=0;m=0;max=0;max=emm.gz;for(i=1;i if (emi.gz>maxm=i;max=emm.gz; printf("最高工资为:%
13、dn",max;printf("t%st%st%st%st%st%dnn",emm.num,,emm.sex,emm.bm,emm.zc,emm.gz; i=0;k=0;min=0;min=em0.gz;for(i=1;i if (emi.gz 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(/按工号删除
14、FILE *fp=NULL;char gh60;int i=0;int j=0;printf("请输入要删除的职工工号:"scanf("%d",gh;for(i=0;i if (strcmp(gh,emi.num=0 /如果查找到就删除for (j=i;j emj=emj+1;Number-;/将剩余数据写入文件 重新一写的方式打开文件 把以前的数据擦除了fp=fopen("employee1.dat","wb"for (i=0;i fwrite(&emi,sizeof(struct employee,1,
15、fp;fclose(fp;printf("删除成功;n"void zc_query(/按职称查找 char zc20;int i=0;printf("请输入要查找职工职称:"scanf("%s",zc;system("cls"printf("t工号t姓名t性别t部门t职称t工资n"for (i=0;i if (strcmp(zc,emi.zc=0printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.
16、zc,emi.gz;void select(/查看职工 int i=0;printf("以下是全部职工信息n"printf("t工号t姓名t性别t部门t职称t工资n"for(i=0;i printf("t%st%st%st%st%st%dnn",emi.num,,emi.sex,emi.bm,emi.zc,emi.gz;void add(/增加职工 int numberTemp=0;int i=0;struct employee temp; /临时保存信息printf("请输入要增加职工信息的个数:"
17、;scanf("%d",&numberTemp;for(i=0;i printf("输入第%d个职工信息n",i+1;printf("工号:"scanf("%s",temp.num;printf("姓名:"scanf("%s",;printf("性别:"scanf("%s",temp.sex;printf("部门:"scanf("%s",temp.bm;printf(&q
18、uot;职称:"scanf("%s",temp.zc;printf("工资:"scanf("%d",&temp.gz;emNumber+=temp; /将刚添加的写入到数组write_file(&temp; /将刚添加的写入到文件printf("添加成功n"void write_file(struct employee *emFILE *fp=NULL;fp=fopen("employee1.txt","rb+"fwrite(em,sizeof(struct employee,1,fp;fclose(fp;int read_file(struct employee emFILE *fp=NULL;int i=0;fp=fopen("employee1.txt","rb"while(fread(&em
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北省武穴市高二历史下册期末考试测试卷含答案(预热题)
- 2026中国液体化工物流行业对外贸易壁垒与应对策略报告
- 2026能源互联网技术发展和应用市场前景研究评估
- 2026中国老年健康饮料配方研发与适老化设计报告
- 2026实木家居产品生命周期管理与库存优化分析
- 2026电竞产业生态链整合与IP商业化运营模式创新报告
- 2026神经形态芯片架构创新与应用场景拓展报告
- 2026预制菜产业链价值分布与餐饮渠道下沉市场机会评估报告
- 2026跨境电商速卖通卖家服务行业市场现状供给配置分析及投资配置规划发展研究报告
- 2026中国芯片设计行业技术突破与市场前景预测报告
- MT/T 1325-2025矿用设备再制造刮板输送机中部槽
- 2026年新高考I卷数学真题
- 2026年小学信息技术教师业务考试题库(附答案)
- 老年人多重用药评估与管理专家共识2026
- 护士执业注册健康体检表
- 2025福建新华发行(集团)有限责任公司南平地区会计岗位招聘笔试备考题库及答案解析
- 2024-2025学年度第二学期期末考试试卷 高一历史
- 高中数学第九、十章统计与概率章节测试卷-2024-2025学年高一下学期数学人教A版(2019)必修第二册
- 特殊工艺过程管理制度
- 大二python考试试题及答案
- 2024年4月自考00015《英语(二)》真题及答案
评论
0/150
提交评论