c语言课程设计人事管理系统_第1页
c语言课程设计人事管理系统_第2页
c语言课程设计人事管理系统_第3页
c语言课程设计人事管理系统_第4页
c语言课程设计人事管理系统_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

本科生C语言课程设计论文课程名称C语言课程设计教师姓名朱莉本科生姓名李百蝉本科生学号20111002986本科生专业地质学所在院系地球科学学院日期:2013年12月26日目录TOC\o"1-1"\h\u目录21.课程论文题目32.程序设计思路33.功能模块图44.程序代码45.程序运行结果306.课程设计总结327.致谢328.参考文献32一课程论文题目某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。添加删除功能:能根据学院人事的变动情况,添加删除记录;查询功能:能根据编号和姓名进行查询;编辑功能(高级):根据查询对相应的记录进行修改,并存储;统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;排序功能:按照年龄、来院时间进行排序;保存功能:能对输入的数据进行相应的存储;二程序设计思路根据题目要求,人事信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将M定为2000,也即最多可储存的职工人数为2000;根据以上需求分析,将程序分成以下几个模块:1.添加和删除****添加人员信息并保存(1)****按名称和编号查询与删除记录并保存(2)2.查询与编辑****按名称和编号查询****重新编辑信息并保存3.统计****统计在职人数****统计党员人数****统计女工人数****统计硕士以上学历和副教授以上职称人数 ****将统计得到的信息保存在worker3.txt文件中4.排序****按年龄进行排序(1)****按来院时间进行排序(2)三功能模块图四程序代码主函数:主函数设计的比较简单,只提供输入、处理和输出部分的函数调用。其中各功能模块用菜单方式选择。其流程图如下程序开始开始显示一系列功能根据n的值调用个功能模块函数结束输入n,判断是否是0~4NYmain(){ intn,w; do { puts("\t\t***********************高校人事管理*************************\n\n\n"); puts("\t\t\t\t1.添加或删除\n"); puts("\t\t\t\t2.查询与编辑\n"); puts("\t\t\t\t3.统计\n"); puts("\t\t\t\t4.排序\n"); puts("\t\t\t\t5.退出\n"); puts("\t\t*************************************************************\n"); printf("选择你要的服务(1-5):[]\b\b"); scanf("%d",&n); if(n<1||n>5) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:retify();main();break; case2:sear_edit();main();break; case3:stat();main();break; case4:row();main();break;case5:exit(0);break; }}structworker{ intnum; charname[20]; charsex[10]; intold; charzhicheng[20]; charzhiwei[20]; charmianmao[20]; charxueli[20]; intcome_time; intwork_time; intleibie;}wor[N];1.添加与删除模块,此模块有(1),(2)两个模块构成。voidretify(){ intn,w; do { puts("\t\t***************删除或添加人员的信息****************\n\n\n\n\n"); puts("\t\t\t\t1.添加"); puts("\t\t\t\t2.删除"); printf("请选择服务(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:tianjia();break; case2:shanchu();break; }}(1).添加模块:开始开始输入你要添加人的信息并且显示在屏幕中对原文件进行添加并保存voidtianjia() { FILE*fp; inti,number; structworkerwor_t[N]; printf("您要添加的人的人数:"); scanf("%d",&number);printf("输入添加人的信息:\n"); for(i=0;i<number;i++) { printf("编号:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性别:\n");scanf("%s",wor_t[i].sex); printf("年龄:\n");scanf("%d",&wor_t[i].old); printf("职称:\n");scanf("%s",wor_t[i].zhicheng); printf("职位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("学历:\n");scanf("%s",wor_t[i].xueli); printf("来院时间:\n");scanf("%d",&wor_t[i].come_time);printf("在院工作时间:\n");scanf("%d",&wor_t[i].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&wor_t[i].leibie); printf("您刚才输入的人的信息\n"); printf("%d%s%s%d%s%s%s%s%d%d%d\n",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("D:\\txt\\worker.txt","a+"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<number;i++) { fprintf(fp,"\n%d%s%s%d%s%s%s%s%d%d%d",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp);}(2).删除模块该模块的功能是根据编号和姓名先查询出该人的信息,然后从原文件中删除该人的信息。流程图如下,开始开始输入要删除记录的编号和姓名该人存在与否?显示:该人在????删除原文件中该人的信息并且保存YN程序voidshanchu(){ FILE*fp,*fp1; inti,number,k,j,m; structworkerworker1[M],worker2[M]; inta[N]; charb[N][20]; printf("您要删除的人的人数:\n"); scanf("%d",&number); for(i=0;i<number;i++) { printf("输入删除人的信息的编号和姓名:\n"); printf("输入删除人的编号:\n");scanf("%d",&a[i]); printf("输入删除人的姓名:\n");scanf("%s",b[i]); printf("您刚才输入的人的信息的编号和姓名:\n"); printf("%d%s\n",a[i],b[i]); } if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker2[i].num,worker2[i].name,worker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibie); k=i; m=0; for(i=0;i<k;i++) { for(j=0;j<number;j++) { if(worker2[i].num==a[j]||!strcmp(worker2[i].name,b[j]))break; } if(j==number)worker1[m]=worker2[i],m++; } printf("输出公司更改后所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); if((fp1=fopen("worker.txt","w"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;i<m;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch();}2,查询和编辑功能:首先,输入你要查询的人的编号和姓名,电脑将显示出该人的信息,并提问你是否要对该人的信息重新进行编辑,若选择了重新编辑的选项就重新输入该人的信息,此时将显示该人的信息并且对原文件进行修改和保存。开始开始输入你要查询人的编号和姓名显示该人的信息是否重新编辑该信息?该人是否存在?显示该人不存在重新输入该人的信息显示你刚才输入的信息,并且保存到原文件里voidsear_edit(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,k,m,n; printf("你想查询谁?\n"); printf("输入你想查询的人的编号和姓名\n"); printf("输入你想查询的人的编号\n");scanf("%d",&wor_people.num); printf("输入你想查询的人的姓名\n");scanf("%s",wor_); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n");getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i;m=-1; for(i=0;i<k;i++) { if(wor_people.num==worker1[i].num||!(strcmp(wor_,worker1[i].name))) { printf("%d%s%s%d%s%s%s%s%d%d%d",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); m=i; } } fclose(fp); if(m==-1) { printf("\n这个人不存在???");exit(0);getch(); } printf("\n你想重新编辑这个人的信息吗?\n"); printf("如果你想,请按1\n如果不想请按2\n"); scanf("%d",&n); if(n==1) { { printf("这个人的初始信息:\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); printf("输入新的信息\n"); printf("编号:\n");scanf("%d",&worker1[m].num); printf("姓名:\n"); scanf("%s",worker1[m].name); printf("性别:\n");scanf("%s",worker1[m].sex); printf("年龄:\n");scanf("%d",&worker1[m].old); printf("职称:\n");scanf("%s",worker1[m].zhicheng); printf("职位:\n");scanf("%s",worker1[m].zhiwei); printf("政治面貌:\n");scanf("%s",worker1[m].mianmao); printf("学历:\n");scanf("%s",worker1[m].xueli); printf("来院时间:\n");scanf("%d",&worker1[m].come_time); printf("在院工作时间:\n");scanf("%d",&worker1[m].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&worker1[i].leibie); printf("您刚才输入的人的信息\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); } if((fp1=fopen("worker.txt","w"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<k;i++) fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fclose(fp1); }}3,根据各个参数进行统计:****统计在职人数****统计党员人数****统计女工人数****统计硕士以上学历和副教授以上职称人数 ****将统计得到的信息保存在worker3.txt文件中voidstat(){ FILE*fp,*fp1; intw_num,d_num,wo_num,x_c_num,i,k; structworkerworker1[M]; puts("\t\t*******************统计人数菜单********************\n\n"); printf("\t\t\t\t各种人员的人数"); puts("\n\n\t\t**************************************************\n"); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; fclose(fp); w_num=0,d_num=0,wo_num=0,x_c_num=0; printf("女职工人数\n"); for(i=0;i<k;i++) { if(!(strcmp(worker1[i].sex,"w"))) w_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("女职工人数有%d人\n",w_num);printf("党员人数\n");for(i=0;i<k;i++) { if(!(strcmp(worker1[i].mianmao,"dang"))) d_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("党员人数有%d人\n",d_num);printf("在职人员\n"); for(i=0;i<k;i++) { if(worker1[i].leibie==1) wo_num++,printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("在职人员有%d人\n",wo_num);printf("高职称高学历人数\n"); for(i=0;i<k;i++) {if(!(strcmp(worker1[i].xueli,"doc"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); continue;} if(!(strcmp(worker1[i].xueli,"mas"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); continue;} if(!(strcmp(worker1[i].zhicheng,"Professor"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);continue;} if(!(strcmp(worker1[i].zhicheng,"a_professor"))){x_c_num++; printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);continue;} }printf("高职称高学历人数有%d人\n",x_c_num); if((fp1=fopen("worker3.txt","w"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } fprintf(fp1,"%d%d%d%d",w_num,d_num,wo_num,x_c_num); fclose(fp1);}4.排序模块:该模块有两个子模块构成,按年龄和来源时间对原文件里的信息进行排序并且将排序分别保存在old_row.txt和comingtime_row.txt中。开始开始选择你要进行排序的参数选择1就按年龄进行排序选择2就按来院时间进行排序显示按相应参数进行排序的结果并且分别保存在相应的文件夹里voidrow(){ intn,w; do { puts("\t\t************按年龄和来院时间排序*****************\n\n"); puts("\t\t\t\t1.按年龄排序\n"); puts("\t\t\t\t2.按来院时间排序\n"); puts("\n\n\t\t**********************************************\n"); printf("选择数字后就可排序(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:old_row();break; case2:comingtime_row();break; } }(1).按年龄对人员进行排序:voidold_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("old_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}(2).按来院时间对人员进行排序voidcomingtime_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].work_time>worker1[j].work_time) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("comingtime_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}各模块汇总构成总程序并且各功能运行过程如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#defineM2000#defineN20voidretify();voidsear_edit();voidtianjia();voidshanchu();voidrow();voidstat();voidold_row();voidcomingtime_row();main(){ intn,w; do { puts("\t\t***********************高校人事管理*************************\n\n\n"); puts("\t\t\t\t1.添加或删除\n"); puts("\t\t\t\t2.查询与编辑\n"); puts("\t\t\t\t3.统计\n"); puts("\t\t\t\t4.排序\n"); puts("\t\t\t\t5.退出\n"); puts("\t\t*************************************************************\n"); printf("选择你要的服务(1-5):[]\b\b"); scanf("%d",&n); if(n<1||n>5) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:retify();main();break; case2:sear_edit();main();break; case3:stat();main();break; case4:row();main();break;case5:exit(0);break; }}structworker{ intnum; charname[20]; charsex[10]; intold; charzhicheng[20]; charzhiwei[20]; charmianmao[20]; charxueli[20]; intcome_time; intwork_time; intleibie;}wor[N];voidretify(){ intn,w; do { puts("\t\t***************删除或添加人员的信息****************\n\n\n\n\n"); puts("\t\t\t\t1.添加"); puts("\t\t\t\t2.删除"); printf("请选择服务(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:tianjia();break; case2:shanchu();break; }}voidtianjia() { FILE*fp; inti,number; structworkerwor_t[N]; printf("您要添加的人的人数:"); scanf("%d",&number);printf("输入添加人的信息:\n"); for(i=0;i<number;i++) { printf("编号:\n");scanf("%d",&wor_t[i].num); printf("姓名:\n"); scanf("%s",wor_t[i].name); printf("性别:\n");scanf("%s",wor_t[i].sex); printf("年龄:\n");scanf("%d",&wor_t[i].old); printf("职称:\n");scanf("%s",wor_t[i].zhicheng); printf("职位:\n");scanf("%s",wor_t[i].zhiwei); printf("政治面貌:\n");scanf("%s",wor_t[i].mianmao); printf("学历:\n");scanf("%s",wor_t[i].xueli); printf("来院时间:\n");scanf("%d",&wor_t[i].come_time);printf("在院工作时间:\n");scanf("%d",&wor_t[i].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&wor_t[i].leibie); printf("您刚才输入的人的信息\n"); printf("%d%s%s%d%s%s%s%s%d%d%d\n",wor_t[i].num,wor_t[i].name, wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao, wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } if((fp=fopen("worker.txt","a+"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<number;i++) { fprintf(fp,"\n%d%s%s%d%s%s%s%s%d%d%d",wor_t[i].num,wor_t[i].name,wor_t[i].sex,wor_t[i].old,wor_t[i].zhicheng,wor_t[i].zhiwei,wor_t[i].mianmao,wor_t[i].xueli,wor_t[i].come_time,wor_t[i].work_time,wor_t[i].leibie); } fclose(fp);}voidshanchu(){ FILE*fp,*fp1; inti,number,k,j,m; structworkerworker1[M],worker2[M]; inta[N]; charb[N][20]; printf("您要删除的人的人数:\n"); scanf("%d",&number); for(i=0;i<number;i++) { printf("输入删除人的信息的编号和姓名:\n"); printf("输入删除人的编号:\n");scanf("%d",&a[i]); printf("输入删除人的姓名:\n");scanf("%s",b[i]); printf("您刚才输入的人的信息的编号和姓名:\n"); printf("%d%s\n",a[i],b[i]);} if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker2[i].num,worker2[i].name,worker2[i].sex,&worker2[i].old,worker2[i].zhicheng,worker2[i].zhiwei,worker2[i].mianmao,worker2[i].xueli,&worker2[i].come_time,&worker2[i].work_time,&worker2[i].leibie); k=i; m=0; for(i=0;i<k;i++) { for(j=0;j<number;j++) { if(worker2[i].num==a[j]||!strcmp(worker2[i].name,b[j]))break; } if(j==number)worker1[m]=worker2[i],m++; } printf("输出公司更改后所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n"); if((fp1=fopen("worker.txt","w"))==NULL) { printf("\nCannotopenfile\n"); getch(); exit(0); } for(i=0;i<m;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1); getch();}voidrow(){ intn,w; do { puts("\t\t************按年龄和来院时间排序*****************\n\n"); puts("\t\t\t\t1.按年龄排序\n"); puts("\t\t\t\t2.按来院时间排序\n"); puts("\n\n\t\t**********************************************\n"); printf("选择数字后就可排序(1-2):[]\b\b"); scanf("%d",&n); if(n<1||n>2) { w=1; getchar(); } elsew=0; } while(w==1); switch(n) { case1:old_row();break; case2:comingtime_row();break; } }voidold_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].old>worker1[j].old) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("old_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie);fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}voidcomingtime_row(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,j,k; if((fp=fopen("worker.txt","r"))==NULL) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d\n",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; for(i=0;i<k;i++) { for(j=i+1;j<k;j++) { if(worker1[i].work_time>worker1[j].work_time) { wor_people=worker1[i];worker1[i]=worker1[j];worker1[j]=wor_people; } } } if((fp1=fopen("comingtime_row.txt","w"))==0) { printf("\nCannotopenfile\n"); } for(i=0;i<k;i++) { fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } fclose(fp1);}voidsear_edit(){ FILE*fp,*fp1; structworkerwor_people,worker1[M]; inti,k,m,n; printf("你想查询谁?\n"); printf("输入你想查询的人的编号和姓名\n"); printf("输入你想查询的人的编号\n");scanf("%d",&wor_people.num); printf("输入你想查询的人的姓名\n");scanf("%s",wor_); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n");getch(); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i;m=-1; for(i=0;i<k;i++) { if(wor_people.num==worker1[i].num||!(strcmp(wor_,worker1[i].name))) { printf("%d%s%s%d%s%s%s%s%d%d%d",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); m=i; } } fclose(fp); if(m==-1) { printf("\n这个人不存在???");exit(0);getch(); } printf("\n你想重新编辑这个人的信息吗?\n"); printf("如果你想,请按1\n如果不想请按2\n"); scanf("%d",&n); if(n==1) { { printf("这个人的初始信息:\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); printf("输入新的信息\n"); printf("编号:\n");scanf("%d",&worker1[m].num); printf("姓名:\n"); scanf("%s",worker1[m].name); printf("性别:\n");scanf("%s",worker1[m].sex); printf("年龄:\n");scanf("%d",&worker1[m].old); printf("职称:\n");scanf("%s",worker1[m].zhicheng); printf("职位:\n");scanf("%s",worker1[m].zhiwei); printf("政治面貌:\n");scanf("%s",worker1[m].mianmao); printf("学历:\n");scanf("%s",worker1[m].xueli); printf("来院时间:\n");scanf("%d",&worker1[m].come_time); printf("在院工作时间:\n");scanf("%d",&worker1[m].work_time); printf("在职与否:在职请按1,不在职请按2\n");scanf("%d",&worker1[i].leibie); printf("您刚才输入的人的信息\n"); printf("\n%d%s%s%d%s%s%s%s%d%d%d\n",worker1[m].num,worker1[m].name,worker1[m].sex,worker1[m].old,worker1[m].zhicheng,worker1[m].zhiwei,worker1[m].mianmao,worker1[m].xueli,worker1[m].come_time,worker1[m].work_time,worker1[m].leibie); } if((fp1=fopen("worker.txt","w"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;i<k;i++) fprintf(fp1,"%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); fclose(fp1); }}voidstat(){ FILE*fp,*fp1; intw_num,d_num,wo_num,x_c_num,i,k; structworkerworker1[M]; puts("\t\t*******************统计人数菜单********************\n\n"); printf("\t\t\t\t各种人员的人数"); puts("\n\n\t\t**************************************************\n"); if((fp=fopen("worker.txt","r"))==0) { printf("\nCannotopenfile\n"); exit(0); } for(i=0;!feof(fp);i++) fscanf(fp,"%d%s%s%d%s%s%s%s%d%d%d",&worker1[i].num,worker1[i].name,worker1[i].sex,&worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,&worker1[i].come_time,&worker1[i].work_time,&worker1[i].leibie); k=i; fclose(fp); w_num=0,d_num=0,wo_num=0,x_c_num=0; printf("女职工人数\n"); for(i=0;i<k;i++) { if(!(strcmp(worker1[i].sex,"w"))) w_num++, printf("%d%s%s%d%s%s%s%s%d%d%d\n",worker1[i].num,worker1[i].name,worker1[i].sex,worker1[i].old,worker1[i].zhicheng,worker1[i].zhiwei,worker1[i].mianmao,worker1[i].xueli,worker1[i].come_time,worker1[i].work_time,worker1[i].leibie); } printf("女职工人数有%d人\n",w_num);printf("党员人数\n");for(i=0;i<k;i+

温馨提示

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

评论

0/150

提交评论