人事管理管理系统[要求]某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序;保存功能:能对输入的数据进行相应的存储#includestdio.h#includestring.h#includeconio.h#defineM2000#defineN20voidmenu();voidretify();voidsear_edit();voidsear_editnum();voidsear_editname();voidtianjia();voidshanchu();voidrow();voidstat();voidstat1();voidold_row();voidcomingtime_row();voidback();voidbrowse();structworker{intnum;charname[20];charsex[10];intold;charzhicheng[20];charzhiwei[20];charmianmao[20];charxueli[20];intcome_time;intwork_time;intleibie;}wor[N];main(){menu();}voidmenu(){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\t\t6.退出\n);puts(\t\t*************************************************************\n);printf(选择你要的服务(1-6):[]\b\b);scanf(%d,&n);if(n1||n6){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:retify();break;case2:sear_edit();break;case3:stat();break;case4:row();break;case5:browse();break;case6:exit(0);}}voidretify(){intn,w;do{puts(\t\t***************删除或添加人员的信息****************\n\n\n\n\n);puts(\t\t\t\t1.添加);puts(\t\t\t\t2.删除);puts(\t\t\t\t3.返回主页);printf(请选择服务(1-3):[]\b\b);scanf(%d,&n);if(n1||n3){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:tianjia();break;case2:shanchu();break;case3:menu();break;}}voidtianjia(){FILE*fp;inti,number;structworkerwor_t[N];printf(您要添加的人的人数:);scanf(%d,&number);printf(输入添加人的信息:\n);for(i=0;inumber;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;inumber;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);back();}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;inumber;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(D:\\txt\\worker.txt,r))==NULL){printf(\nCannotopenfile\n);getch();exit(0);}printf(输出公司更改前所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n);for(i=0;!feof(fp);i++)fscanf(fp,%d%s%s%d%s%s%s%s%d%d%d,&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;fclose(fp);m=0;for(i=0;ik;i++){for(j=0;jnumber;j++){if(worker2[i].num!=a[j]&&strcmp(worker2[i].name,b[j])){worker1[m]=worker2[i];m++;}}printf(%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);if(k==m){printf(\n这个人不存在???);exit(0);getch();}}printf(输出公司更改后所有人员的信息:\n编号姓名性别年龄职称职位面貌学历来院时间工作时间在职与否\n);if((fp1=fopen(D:\\txt\\worker.txt,w))==NULL){printf(\nCannotopenfile\n);getch();exit(0);}for(i=0;im;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();back();}voidrow(){intn,w;do{puts(\t\t************按年龄和来院时间排序*****************\n\n);puts(\t\t\t\t1.按年龄排序\n);puts(\t\t\t\t2.按来院时间排序\n);puts(\t\t\t\t3.返回主页\n);puts(\n\n\t\t**********************************************\n);printf(选择数字后就可排序(1-3):[]\b\b);scanf(%d,&n);if(n1||n3){w=1;getchar();}elsew=0;}while(w==1);switch(n){case1:old_row();break;case2:comingtime_row();break;case3:menu();break;}}voidold_row(){FILE*fp,*fp1;structworkerwor_people,worker1[M];inti,j,k;if((fp=fo