1、 c++高校人事档案管理系统 23 2020年4月19日 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 高校人事档案管理系统 设计方法和基本原理: 一、 问题描述( 功能要求) : 某高校, 主要人员有: 在职人员( 行政人员、 教师、 一般员工) 、 退休人员、 返聘人员和临时工。现在, 需要存储这些人员的人事档案信息: 编号、 姓名、 性别、 年龄、 职务、 职称、 政治面貌、 最高学历、 任职时间、 来院时间。 要求: 1) 添加删除功能: 能根据学院人事的变动情况, 添加删除记录; 2) 查询功
2、能: 能根据编号和姓名进行查询;
3) 编辑功能( 高级) : 根据查询对相应的记录进行修改, 并存储;
4) 统计功能: 能根据多种参数进行人员的统计( 在职人数、 党员人数、 女工人数、 高学历高职称人数) ;
5) 保存功能: 能对输入的数据进行相应的存储, 要求重载插入和提取符以完成数据的保存和打开。
6) 人员编号在生成人员信息时同时生成, 每输入一个人员信息编号顺序加1。
2、 问题的解决方案:
源代码
#include
3、e
4、 //年龄 char staff[20]; //职务 char zhichen[20]; //职称 char zzmm[20]; //政治面貌 char zgxl[20]; //最高学历 char rzsj[20]; //任职时间 char lysj[30];
5、 //来院时间 static int bianhao; //计数器 public: void setperson(char *type1,char *name1,char *sex1,char *age1,char *staff1, char *zhichen1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1); //构造函数 static int& getbianhao() {return bianhao;} char * gettype() { return t
6、ype;} char * getname() {return name;} char * getsex() {return sex;} char * getage() {return age;} char * getstaff() {return staff;} char * getzhichen() {return zhichen;} char * getzzmm() {return zzmm;} char * getzgxl() {return zgxl;} char * getrzsj() {return rzsj;} char * getlysj()
7、 {return lysj;} char * getnum() {return num;} void tjry(); void find(); void output(); void del(); void xiugai(); void tongji(); };person p[100]; person pp[100]; int k1; int person::bianhao=0; void person::setperson(char *type1,char *name1,char *sex1,char *age1,char *staff1,
8、 char *zhichen1,char *zzmm1,char *zgxl1,char *rzsj1,char *lysj1) { int static j=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(lys
9、j,lysj1); bianhao++; ofstream file("添加人员.txt",ios_base::app); file<
10、m()<
11、pp[k].getnum(); filem>>pp[k].gettype(); filem>>pp[k].getname(); filem>>pp[k].getsex(); filem>>pp[k].getage(); filem>>pp[k].getstaff(); filem>>pp[k].getzhichen(); filem>>pp[k].getzzmm(); filem>>pp[k].getzgxl(); filem>>pp[k].getrzsj(); filem>>pp[k].getlysj(); if(strcmp
12、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<<"在职人数"
13、<
14、
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getstaff();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
k++;
}
filem.close();
cout<<"请输入要修改的人的编号:"< 15、ndl;
int x,y;
cin>>x;
cout<<"请输入编号为"< 16、
break;
case 3:
{cout<<"请输入新的姓名";cin>>pp[x].getname();}
break;
case 4:
{cout<<"请输入新的性别";cin>>pp[x].getsex();}
break;
case 5:
{cout<<"请输入新的年龄";cin>>pp[x].getage();}
break;
case 6:
{cout<<"请输入新的职务";cin>>pp[x].getstaff();}
break;
case 7:
{cout<<"请输入新的职称";cin>>pp 17、[x].getzhichen();}
break;
case 8:
{cout<<"请输入新的政治面貌";cin>>pp[x].getzzmm();}
break;
case 9:
{cout<<"请输入新的最高学历";cin>>pp[x].getzgxl();}
break;
case 10:
{cout<<"请输入新的任职时间";cin>>pp[x].getrzsj();}
break;
case 11:
{cout<<"请输入新的来院时间";cin>>pp[x].getlysj();}
break;
}
ofs 18、tream file1("添加人员.txt",ios_base::trunc);
for(k=1;k<=bianhao;k++)
{
file1< 19、endl;
file1< 20、hile(!filem.eof())
{
filem>>pp[k].getnum();
filem>>pp[k].gettype();
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getstaff();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>>pp[k].getrzsj();
fil 21、em>>pp[k].getlysj();
k++;
}
filem.close();
cout<<"请输入要被删除信息的人的编号:"< 22、
file2< 23、
file2< 24、cout<<"请输入要查找的编号:";
cin>>n;
ifstream filem("添加人员.txt",ios_base::in);
int k=1;
cout<<"编号"< 25、hile(!filem.eof())
{
filem>>pp[k].getnum();
filem>>pp[k].gettype();
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getstaff();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>> 26、pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getnum(),n)==0)
{
cout< 27、setw(9)< 28、0];
cout<<"请输入要查找的姓名:";
cin>>nname;
ifstream filem("添加人员.txt",ios_base::in);
int k=1;
cout<<"编号"< 29、ndl;
while(!filem.eof())
{
filem>>pp[k].getnum();
filem>>pp[k].gettype();
filem>>pp[k].getname();
filem>>pp[k].getsex();
filem>>pp[k].getage();
filem>>pp[k].getstaff();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
30、 filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getname(),nname)==0)
{
cout< 31、hen()
< 32、
void person::tjry() //
{
int v,l=1;
char type2[20];char name2[20];char sex2[10];char age2[10];char staff2[20];
char zhichen2[20];char zzmm2[20];char zgxl2[20];char rzsj2[20];char lysj2[30];
cout<<"请输入要添加的人数"< 33、ianhao;
for(int i=v+1;i<=v+k;i++)
{
cout<<"请输入第"< 34、>>zgxl2;
cout<<"任职时间:"; cin>>rzsj2;
cout<<"来院时间:"; cin>>lysj2;
p[i].setperson(type2,name2,sex2,age2,staff2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2);
l++;
}
}
void person::output() //
{
ifstream filem("添加人员.txt",ios_base::in);
int k=1;
cout<<"编号"< 35、w(5)<<"姓名"< 36、 filem>>pp[k].getage();
filem>>pp[k].getstaff();
filem>>pp[k].getzhichen();
filem>>pp[k].getzzmm();
filem>>pp[k].getzgxl();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
cout< 37、 38、ut<






