人力资源c++高校人事档案管理系统精编版.docx
《人力资源c++高校人事档案管理系统精编版.docx》由会员分享,可在线阅读,更多相关《人力资源c++高校人事档案管理系统精编版.docx(18页珍藏版)》请在冰豆网上搜索。
人力资源c++高校人事档案管理系统精编版
高校人事档案管理系统
设计方法和基本原理:
一、问题描述(功能要求):
某高校,主要人员有:
在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。
现在,需要存储这些人员的人事档案信息:
编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。
要求:
1) 添加删除功能:
能根据学院人事的变动情况,添加删除记录;
2) 查询功能:
能根据编号和姓名进行查询;
3) 编辑功能(高级):
根据查询对相应的记录进行修改,并存储;
4) 统计功能:
能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);
5) 保存功能:
能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。
6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
2、问题的解决方案:
源代码
#include
#include
#include
#include
usingnamespacestd;
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);
file<
file<
file<
file<
file<
file<
file<
file<
file<
file<
file<
j++;
file.close();
}
voidperson:
:
tongji()//
{
inta=0;intb=0;intc=0;intd=0;
intk=1;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
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();
filem>>pp[k].getrzsj();
filem>>pp[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<<"在职人数"<cout<}
voidperson:
:
xiugai()//
{
intk=1;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
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();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
k++;
}
filem.close();
cout<<"请输入要修改的人的编号:
"<intx,y;
cin>>x;
cout<<"请输入编号为"<"<cout<<"1:
编号-2:
人员类型-3:
姓名-4:
性别-5:
年龄-6:
职务-7:
职称-8:
政治面貌-9:
最高学历-10:
任职时间-11:
来院时间"<cin>>y;
switch(y)
{
case1:
{cout<<"请输入新的编号";cin>>pp[x].getnum();}
break;
case2:
{cout<<"请输入新的人员类型";cin>>pp[x].gettype();}
break;
case3:
{cout<<"请输入新的姓名";cin>>pp[x].getname();}
break;
case4:
{cout<<"请输入新的性别";cin>>pp[x].getsex();}
break;
case5:
{cout<<"请输入新的年龄";cin>>pp[x].getage();}
break;
case6:
{cout<<"请输入新的职务";cin>>pp[x].getstaff();}
break;
case7:
{cout<<"请输入新的职称";cin>>pp[x].getzhichen();}
break;
case8:
{cout<<"请输入新的政治面貌";cin>>pp[x].getzzmm();}
break;
case9:
{cout<<"请输入新的最高学历";cin>>pp[x].getzgxl();}
break;
case10:
{cout<<"请输入新的任职时间";cin>>pp[x].getrzsj();}
break;
case11:
{cout<<"请输入新的来院时间";cin>>pp[x].getlysj();}
break;
}
ofstreamfile1("添加人员.txt",ios_base:
:
trunc);
for(k=1;k<=bianhao;k++)
{
file1<file1<file1<file1<file1<file1<file1<file1<file1<file1<file1<}
file1.close();
cout<<"修改并保存完毕"<}
voidperson:
:
shancu()//
{
intz;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
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();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
k++;
}
filem.close();
cout<<"请输入要被删除信息的人的编号:
"<cin>>z;
while(z<1||z>bianhao)
{
cout<<"没有找到你要删除的人,请重新输入:
"<>z;}
for(k=1;k<=bianhao;k++)
{
if(z==k)
continue;
ofstreamfile2("添加人员.txt",ios_base:
:
trunc);
file2<file2<file2<file2<file2<file2<file2<file2<file2<file2<file2<file2.close();
}
cout<<"删除记录完毕"<}
voidperson:
:
find()//
{
cout<<"1:
按编号查询--2:
按姓名查询-请选择(1-2)"<intm;
cin>>m;
while(m<1||m>2)
{
cout<<"请重新输入(1-2)"<>m;
}
switch(m)
{
case1:
{charn[10];
cout<<"请输入要查找的编号:
";
cin>>n;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
cout<<"编号"<<<<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();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getnum(),n)==0)
{
cout<<<<<k++;
if(filem.eof())
{
cout<cout<<"警告:
没有要查找的人!
!
!
!
!
!
!
!
!
!
";}
}
filem.close();}break;
case2:
{
charnname[20];
cout<<"请输入要查找的姓名:
";
cin>>nname;
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
cout<<"编号"<<<<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();
filem>>pp[k].getrzsj();
filem>>pp[k].getlysj();
if(strcmp(pp[k].getname(),nname)==0)
{
cout<<<<<k++;
if(filem.eof())
{
cout<cout<<"警告:
没有要查找的人!
!
!
!
!
!
!
!
!
!
";}
}
filem.close();
}
break;
}
}
voidperson:
:
tjry()//
{
intv,l=1;
chartype2[20];charname2[20];charsex2[10];charage2[10];charstaff2[20];
charzhichen2[20];charzzmm2[20];charzgxl2[20];charrzsj2[20];charlysj2[30];
cout<<"请输入要添加的人数"<cin>>k;
p[1].getbianhao()=pp[k1].getbianhao();
v=bianhao;
for(inti=v+1;i<=v+k;i++)
{
cout<<"请输入第"<cout<<"人员类型";cin>>type2;
cout<<"姓名:
";cin>>name2;
cout<<"性别:
";cin>>sex2;
cout<<"年龄:
";cin>>age2;
cout<<"职务:
";cin>>staff2;
cout<<"职称:
";cin>>zhichen2;
cout<<"政治面貌:
";cin>>zzmm2;
cout<<"最高学历:
";cin>>zgxl2;
cout<<"任职时间:
";cin>>rzsj2;
cout<<"来院时间:
";cin>>lysj2;
p[i].setperson(type2,name2,sex2,age2,staff2,zhichen2,zzmm2,zgxl2,rzsj2,lysj2);
l++;
}
}
voidperson:
:
output()//
{
ifstreamfilem("添加人员.txt",ios_base:
:
in);
intk=1;
cout<<"编号"<<<<while(!
filem.eof())
{
filem>>pp[k].getbianhao();
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();
cout<<<<