课题4:高校人事管理系统1、问题描述(功能要求):某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、级别、职称、政治面貌、最高学历、任职时间、来院时间、工资。其中行政人员只有职务和级别,教师只有职务和职称,一般员工只有职务,退休人员则没有职务、级别、职称,但有退休时间。要求:(1)添加删除功能:能根据学院人事的变动情况,添加删除记录;(2)查询功能:能根据编号和姓名进行查询;(3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;(4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);(5)保存功能:能对输入的数据进行相应的存储,(扩展要求:要求重载插入和提取符以完成数据的保存和打开)。(6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。#includeiostream#includefstreamusingnamespacestd;intxi=0;intsi=0;intyi=0;intti=0;intxnum=0;intsnum=0;intynum=0;inttnum=0;intnumber=0;classbasic{public:charname[10];charsex[6];intage;charzzmm[10];charzgxl[10];intrzsj;intlysj;intgz;intbh;voidBook(intn){cout姓名:;cinname;cout性别:;cinsex;cout年龄:;cinage;cout政治面貌:;cinzzmm;cout最高学历:;cinzgxl;cout任职时间:;cinrzsj;cout来院时间:;cinlysj;cout工资:;cingz;}virtualvoidShow(){cout编号:bhendl;cout姓名:nameendl;cout性别:sexendl;cout年龄:ageendl;cout政治面貌:zzmmendl;cout最高学历:zgxlendl;cout任职时间:rzsjendl;cout来院时间:lysjendl;cout工资:gzendl;}};classXZRY:publicbasic//行政人员{public:charzw[10];charjb[10];charzz[5];voidBook(intc){cout职务类型:行政人员endl;basic::Book(c);cout职务:;cinzw;cout级别:;cinjb;cout在职(是/否):;cinzz;}voidShow(){basic::Show();cout职务类型:行政人员endl;cout职务:zwendl;cout级别:jbendl;cout在职:zzendl;}};XZRYx[100];classJS:publicbasic//教师{public:charzw[10];charzc[10];charzz[5];voidBook(intc){cout职务类型:教师endl;basic::Book(c);cout职务:;cinzw;cout职称:;cinzc;cout在职(是/否):;cinzz;}voidShow(){basic::Show();cout职务类型:教师endl;cout职务:zwendl;cout职称:zcendl;cout在职:zzendl;}};JSs[100];classYG:publicbasic//员工{public:charzw[10];charzz[5];voidBook(intc){cout职务类型:员工endl;basic::Book(c);cout职务:;cinzw;cout在职(是/否):;cinzz;}voidShow(){basic::Show();cout职务类型:员工endl;cout职务:zwendl;cout在职:zzendl;}};YGy[100];classTXRY:publicbasic//退休员工{public:chartxsj[10];charzz[5];voidBook(intc){cout职务类型:退休人员endl;basic::Book(c);cout退休时间:;cintxsj;cout在职(是/否):;cinzz;}voidShow(){basic::Show();cout职务类型:退休人员endl;cout退休时间:txsjendl;cout在职:zzendl;}};TXRYt[100];voidBookInX()//输入行政人员{chara;while(1){x[xi].Book(xnum++);x[xi].bh=++number;xi++;cout是否继续输入?(Y/N)endl;cina;if(a!='Y'&&a!='y')break;}}voidBookInJ()//输入教师{chara;while(1){s[si].Book(snum++);s[si].bh=++number;si++;cout是否继续输入?(Y/N)endl;cina;if(a!='Y'&&a!='y')break;}}voidBookInY()//输入一般员工{chara;while(1){y[yi].Book(ynum++);y[yi].bh=++number;yi++;cout是否继续输入?(Y/N)endl;cina;if(a!='Y'&&a!='y')break;}}voidBookInT()//输入一般员工{chara;while(1){t[ti].Book(tnum++);t[ti].bh=++number;ti++;cout是否继续输入?(Y/N)endl;cina;if(a!='Y'&&a!='y')break;}}voidDisplay()//显示{for(intj=0;jxi;j++){x[j].Show();cout\nendl;}for(intk=0;ksi;k++){s[k].Show();cout\nendl;}for(intn=0;nyi;n++){y[n].Show();cout\nendl;}for(intm=0;mti;m++){t[m].Show();cout\nendl;}}voidSearch()//搜索函数{intc;inta;charb;chartempname[10];while(1){inttest=0;cout请选择查询方式:endl;cout1.编号endl;cout2.姓名endl;cinc;if(c==1){cout请输入你想查询的编号:endl;cina;for(intj=0;jxi;j++)if(a==x[j].bh){x[j].Show();test=1;break;}for(intk=0;ksi;k++)if(a==s[k].bh){s[k].Show();test=1;break;}for(intm=0;myi;m++)if(a==y[m].bh){y[m].Show();test=1;break;}for(intn=0;nti;n++)if(a==t[n].bh){t[n].Show();test=1;break;}if(test==0){cout您所查询的编号不存在!endl;}}elseif(c==2){cout请输入你想查询的姓名:endl;cintempname;for(intj=0;jxi;j++)if(strcmp(tempname,x[j].name)==0){x[j].Show();test=1;break;}for(intk=0;ksi;k++)if(strcmp(tempname,s[k].name)==0){s[k].Show();test=1;break;}for(intm=0;myi;m++)if(strcmp(tempname,y[m].name)==0){y[m].Show();test=1;break;}for(intn=0;nti;n++)if(strcmp(tempname,t[n].name)==0){t[n].Show();test=1;break;}if(test==0){cout您所查询的姓名不存在!endl;}}elsecout输入错误!endl;cout是否继续搜索?(Y/N)endl;cinb;if(b!='Y'&&b!='y')break;}}voidModify()//修改信息{while(1){inttest=0;inti;intk;intn;intm;charname[10];cout*************************endl;cout*************************endl;cout请输入您要修改的姓名:;cinname;for(i=0;ixi;i++){if(strcmp(x[i].name,name)==0){test=1;break;}elsetest=0;}if(test==0){for(k=0;ksi;k++)if(strcmp(s[k].name,name)==0){test=2;break;}elsetest=0;}if(test==0){for(n=0;nyi;n++)if(strcmp(y[n].name,name)==0){test=3;break;}elsetest=0;}if(test==0){for(m=0;mti;m++)if(strcmp(t[m].name,name)==0){test=4;break;}elsetest=0;}if(test==0){cout没有此人!endl;system(PAUSE);}charc;inta;if(test==1){cout是否更换岗位(Y/N):endl;cinc;if(c=='y'){cout请选择你所要更换的岗位:endl;cout1.教师endl;cout2.一般员工endl;cout3.退休员工endl;cina;if(a==1){s[si].Book(1);s[si].bh=x[i].bh;x[i]=x[--xi];si++;}elseif(a==2){y[yi].Book(1);y[yi].bh=x[i].bh;x[i]=x[--xi];yi++;}elseif(a==3){t[ti].Book(1);t[ti].bh=x[i].bh;x[i]=x[--xi];ti++;}elsecout输入错误!endl;}elsex[i].Book(1);}if(test==2){cout是否更换岗位(Y/N):endl;cinc;if(c=='y'){cout请选择你所要更换的岗位:endl;cout1.行政人员endl;cout2.一般员工endl;cina;if(a==1){x[xi].Book(1);x[xi].bh=s[k].bh;s[k]=s[--si];xi++;}elseif(a==2){y[yi].Book(1);y[yi].bh=s[k].bh;s[k]=s[