您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > c++高校人事档案管理系统
高校人事档案管理系统设计方法和基本原理:一、问题描述(功能要求):某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求:1)添加删除功能:能根据学院人事的变动情况,添加删除记录;2)查询功能:能根据编号和姓名进行查询;3)编辑功能(高级):根据查询对相应的记录进行修改,并存储;4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5)保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。2、问题的解决方案:源代码#includeiostream#includefstream#includecstring#includeiomanipusingnamespacestd;intk;classperson{private:charnum[10];//编号chartype[20];//种类charname[20];//姓名charsex[10];//性别charage[10];//年龄charstaff[20];//职务charzhichen[20];//职称charzzmm[20];//政治面貌charzgxl[20];//最高学历charrzsj[20];//任职时间charlysj[30];//来院时间staticintbianhao;//计数器public:voidsetperson(char*type1,char*name1,char*sex1,char*age1,char*staff1,char*zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1);//构造函数staticint&getbianhao(){returnbianhao;}char*gettype(){returntype;}char*getname(){returnname;}char*getsex(){returnsex;}char*getage(){returnage;}char*getstaff(){returnstaff;}char*getzhichen(){returnzhichen;}char*getzzmm(){returnzzmm;}char*getzgxl(){returnzgxl;}char*getrzsj(){returnrzsj;}char*getlysj(){returnlysj;}char*getnum(){returnnum;}voidtjry();voidfind();voidoutput();voiddel();voidxiugai();voidtongji();};personp[100];personpp[100];intk1;intperson::bianhao=0;voidperson::setperson(char*type1,char*name1,char*sex1,char*age1,char*staff1,char*zhichen1,char*zzmm1,char*zgxl1,char*rzsj1,char*lysj1){intstaticj=1;strcpy(type,type1);strcpy(name,name1);strcpy(sex,sex1);strcpy(age,age1);strcpy(staff,staff1);strcpy(zhichen,zhichen1);strcpy(zzmm,zzmm1);strcpy(zgxl,zgxl1);strcpy(rzsj,rzsj1);strcpy(lysj,lysj1);bianhao++;ofstreamfile(添加人员.txt,ios_base::app);filep[j].getbianhao()endl;filep[j].gettype()endl;filep[j].getname()endl;filep[j].getsex()endl;filep[j].getage()endl;filep[j].getstaff()endl;filep[j].getzhichen()endl;filep[j].getzzmm()endl;filep[j].getzgxl()endl;filep[j].getrzsj()endl;filep[j].getlysj()endl;j++;file.close();}voidperson::tongji()//{inta=0;intb=0;intc=0;intd=0;intk=1;ifstreamfilem(添加人员.txt,ios_base::in);while(!filem.eof()){filempp[k].getnum();filempp[k].gettype();filempp[k].getname();filempp[k].getsex();filempp[k].getage();filempp[k].getstaff();filempp[k].getzhichen();filempp[k].getzzmm();filempp[k].getzgxl();filempp[k].getrzsj();filempp[k].getlysj();if(strcmp(pp[k].gettype(),行政人员)==0||strcmp(pp[k].gettype(),教师)==0||strcmp(pp[k].gettype(),一般员工)==0)a++;if(strcmp(pp[k].getzzmm(),党员)==0)b++;if(strcmp(pp[k].getsex(),nv)==0)c++;if(strcmp(pp[k].getzgxl(),boshi)==0)d++;k++;}filem.close();cout在职人数setw(12)党员人数setw(12)女工人数setw(12)高学历人数endl;coutasetw(12)bsetw(12)csetw(12)dendl;}voidperson::xiugai()//{intk=1;ifstreamfilem(添加人员.txt,ios_base::in);while(!filem.eof()){filempp[k].getnum();filempp[k].gettype();filempp[k].getname();filempp[k].getsex();filempp[k].getage();filempp[k].getstaff();filempp[k].getzhichen();filempp[k].getzzmm();filempp[k].getzgxl();filempp[k].getrzsj();filempp[k].getlysj();k++;}filem.close();cout请输入要修改的人的编号:endl;intx,y;cinx;cout请输入编号为x的人需要修改的项目的代号:endl;cout1:编号-2:人员类型-3:姓名-4:性别-5:年龄-6:职务-7:职称-8:政治面貌-9:最高学历-10:任职时间-11:来院时间endl;ciny;switch(y){case1:{cout请输入新的编号;cinpp[x].getnum();}break;case2:{cout请输入新的人员类型;cinpp[x].gettype();}break;case3:{cout请输入新的姓名;cinpp[x].getname();}break;case4:{cout请输入新的性别;cinpp[x].getsex();}break;case5:{cout请输入新的年龄;cinpp[x].getage();}break;case6:{cout请输入新的职务;cinpp[x].getstaff();}break;case7:{cout请输入新的职称;cinpp[x].getzhichen();}break;case8:{cout请输入新的政治面貌;cinpp[x].getzzmm();}break;case9:{cout请输入新的最高学历;cinpp[x].getzgxl();}break;case10:{cout请输入新的任职时间;cinpp[x].getrzsj();}break;case11:{cout请输入新的来院时间;cinpp[x].getlysj();}break;}ofstreamfile1(添加人员.txt,ios_base::trunc);for(k=1;k=bianhao;k++){file1pp[k].getnum()endl;file1pp[k].gettype()endl;file1pp[k].getname()endl;file1pp[k].getsex()endl;file1pp[k].getage()endl;file1pp[k].getstaff()endl;file1pp[k].getzhichen()endl;file1pp[k].getzzmm()endl;file1pp[k].getzgxl()endl;file1pp[k].getrzsj()endl;file1pp[k].getlysj()endl;}file1.close();cout修改并保存完毕endl;}voidperson::shancu()//{intz;ifstreamfilem(添加人员.txt,ios_base::in);intk=1;while(!filem.eof()){filempp[k].getnum();filempp[k].gettype();filempp[k].getname();filempp[k].getsex();filempp[k].getage();filempp[k].getstaff();filempp[k].getzhichen();filempp[k].getzzmm();filempp[k].getzgxl();filempp[k].getrzsj();filempp[k].getlysj();k++;}filem.close();cout请输入要被删除信息的人的编号:endl;cinz;while(z1||zbianhao){cout没有找到你要删除的人,请重新输入:endl;cinz;}for(k=1;k=bianhao;k++){if(z==k)continue;ofstreamfile2(添加人员.txt,ios_base::trunc);file2pp[k].getnum()endl;file2pp[k].gettype()endl;file2pp[k].getname()endl;file2pp[k].getsex()endl;file2pp[k].getage()endl;file2pp[k].getstaff()endl;file2pp[k].getzhichen()endl;file2pp[k].getzzmm()endl;
本文标题:c++高校人事档案管理系统
链接地址:https://www.777doc.com/doc-993634 .html