目录
新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。 2
头文件: 2
源文件: 7
#include
#include
using namespace std;
//基类
class Person
{
public:
char name[20];
char sex[6];
int age;
char zzmm[10];
char zgxl[10];
int rzsj;
int lysj;
int gongzi;
virtual void add()
{
cout<<"姓名:";cin>>name;
cout<<"性别:";cin>>sex;
cout<<"年龄:";cin>>age;
cout<<"工资:";cin>>gongzi;
cout<<"政治面貌:";cin>>zzmm;
cout<<"最高学历:";cin>>zgxl;
cout<<"任职时间:";cin>>rzsj;
cout<<"来院时间:";cin>>lysj;
}
virtual void show()
{
cout<<"姓名:"<
<<"年龄:"<
<
<
}
virtual void save(fstream &f)
{
f<
}
virtual void read(fstream &f)
{
f>>name>>sex>>age>>gongzi>>zzmm>>zgxl>>rzsj>>lysj;
}
};
//行政人员
class xzry:virtual public Person
{
public:
char zhiwu[10];
char jibie[10];
int NOxz;
void add(int &num1)
{
num1++;
NOxz=num1;
cout<<"行政人员编号:"<
Person::add();
cout<<"职务:";cin>>zhiwu;
cout<<"级别:";cin>>jibie;
}
void show()
{
cout<<"行政人员编号:"<
Person::show();
cout<<"职务:"<
}
virtual void save(fstream &f)
{
f<
Person::save(f);
f<
}
virtual void read(fstream &f)
{
Person::read(f);
f>>zhiwu>>jibie;
}
};
//教师
class jiaoshi:virtual public Person
{
public:
char zhiwu[10];
char zhicheng[10];
int NOjs;
void add(int &num2)
{
num2++;
NOjs=num2;
cout<<"教师编号:"<
Person::add();
cout<<"职务:";cin>>zhiwu;
cout<<"职称:";cin>>zhicheng;
}
void show()
{
cout<<"教师编号:"<
Person::show();
cout<<"职务:"<
}
virtual void save(fstream &f)
{
f<
Person::save(f);
f<
}
virtual void read(fstream &f)
{
Person::read(f);
f>>zhiwu>>zhicheng;
}
};
//一般员工
class ybyg:virtual public Person
{
public:
char zhiwu[10];
int NOyb;
void add(int &num3)
{
num3++;
NOyb=num3;
cout<<"一般员工编号:"<
Person::add();
cout<<"职务:";cin>>zhiwu;
}
void show()
{
cout<<"一般员工编号:"<
Person::show();
cout<<"职务:"<
}
virtual void save(fstream &f)
{
f<
Person::save(f);
f<
}
virtual void read(fstream &f)
{
Person::read(f);
f>>zhiwu;
}
};
//退休员工
class tuixiu:virtual public Person //退休人员
{
public:
int tuixiusj;
int NOtx;
void add(int &num4)
{
num4++;
NOtx=num4;
cout<<"退休员工编号:"<
Person::add();
cout<<"退休时间:";cin>>tuixiusj;
}
void show()
{
cout<<"退休员工编号:"<
Person::show();
cout<<"退休时间:"<
}
virtual void save(fstream &f)
{
f<
Person::save(f);
f<
}
virtual void read(fstream &f)
{
Person::read(f);
f>>tuixiusj;
}
};
#include "Person.h"
#include "string.h"
#include
#include
using namespace std;
int i1=0,i2=0,i3=0,i4=0; //定义总数
int n1=0,n2=0,n3=0,n4=0; //定义编号
xzry xz[100]; //定义行政人员100人
jiaoshi js[100]; //定义教师人员100人
ybyg yb[100]; //定义一般员工100人
tuixiu tx[100]; //定义退休人员100人
void addPerson(); //添加学院工作人员名单函数
void FileSave(); //信息保存函数
void FileRead(); //读取文件函数
void findChange(); //查询并编辑工作人员信息函数
void Delete(int j,int k); //删除函数
void editPer(int v,int z); //编辑工作人员信息
void findName(); //根据姓名查询函数
void findNO(); //根据编号查询函数
void tongji(); //统计函数
//主函数
void main()
{
FileRead();
n1=i1;n2=i2;n3=i3;n4=i4;
int a;
while(1)
{
cout<<"**********欢迎进入高校人事管理系统**************"<
cout<<"* 输入选项进行选择 *"<
cout<<"* *"<
cout<<"* 1、添加学院工作人员名单 *"<
cout<<"* 2、查询 *"<
cout<<"* 编辑 *"<
cout<<"* 删除工作人员信息 *"<
cout<<"* 3、人员统计 *"<
cout<<"* 4、退出程序 *"<
cout<<"* *"<
cout<<"************************************************"<
cout<
cout<<"请选择:";
cin>>a;
system("cls");
if (a==1)
{ addPerson(); }
else if (a==2)
{ findChange(); }
else if (a==3)
{ tongji(); }
else if (a==4)
{ break; }
else
{
cout<<"输入有误!请重试!"<
cout<
system ("pause");
system ("cls");
continue;
}
}
}
//添加学院工作人员名单函数
void addPerson()
{
int b;
while(1)
{
cout<<"*******请选择人员工作岗位*********"<
cout<<"* 1、行政人员 *"<
cout<<"* 2、教师 *"<
cout<<"* 3、一般员工 *"<
cout<<"* 4 、退休人员 *"<
cout<<"* 5、保存并退出 *"<
cout<<"**********************************"<
cout<
cin>>b; cout<
system("cls");
if (b==1) //添加行政人员
{
xz[i1].add(n1);
i1++;
}
else if(b==2) //添加教师
{
js[i2].add(n2);
i2++;
}
else if(b==3) //添加一般员工
{
yb[i3].add(n3);
i3++;
}
else if(b==4) //添加退休人员
{
tx[i4].add(n4);
i4++;
}
else if(b==5)
{
FileSave();
break;
}
else
{
cout<<"输入有误!请重试!"<
cout<
system ("pause");
system ("cls");
continue;
}
}
}
//信息保存函数
void FileSave()
{
int k;
fstream file;
file.open("data.dat", ios::out);
file<
for(k=0;k
xz[k].save(file);
file<
file<
for(k=0;k
js[k].save(file);
file<
file<
for(k=0;k
yb[k].save(file);
file<
file<
for(k=0;k
tx[k].save(file);
file<
file.close();
}
//读取文件函数
void FileRead()
{
int k;
fstream file;
file.open("data.dat", ios::in);
file>>i1; //读取行政人员总数
for(k=0;k
{
file>>xz[k].NOxz; //读取行政人员编号
xz[k].read(file);
}
file>>i2; //读取教师人员总数
for(k=0;k
{
file>>js[k].NOjs; //读取教师人员编号
js[k].read(file);
}
file>>i3; //读取一般员工总数
for(k=0;k
{
file>>yb[k].NOyb; //读取一般员工编号
yb[k].read(file);
}
file>>i4; //读取退休人员总数
for(k=0;k
{
file>>tx[k].NOtx; //读取退休人员编号
tx[k].read(file);
}
file.close();
}
//查询并编辑工作人员信息
void findChange()
{
int e;
while(1)
{
cout<<"****************************"<
cout<<"* 1、编号查询 *"<
cout<<"* 2、姓名查询 *"<
cout<<"* 3、退出 *"<
cout<<"****************************"<
cout<<"请选择:";
cin>>e; cout<
system("cls");
if (e==1)
{
findNO();
}
else if (e==2)
{
findName();
}
else if (e==3)
{break;}
else
{
cout<<"输入有误!请重试!"<
system ("pause");
system ("cls");
continue;
}
}
}
//根据编号查询函数
void findNO()
{
int f,g,z;int h;
while(1)
{
cout<<"========请输入查询人所在的分类========"<
cout<<" 1、行政人员 "<
cout<<" 2、教师人员 "<
cout<<" 3、一般员工 "<
cout<<" 4、退休人员 "<
cout<<" 5、退出 "<
cout<<"======================================"<
cout<<"请输入:";cin>>f;cout<
system("cls");
if (f==1)
{
cout<<"========行政人员查询========"<
cout<<"请输入查询的编号:";cin>>g;
for(int t1=0;t1< i1;t1++)
{
if(xz[t1].NOxz==g)
{
h=g-1;
xz[h].show();
z=1;
editPer(g,z); //是否编辑
Delete(g,z); //是否删除
}
}
}
else if (f==2)
{
cout<<"========教师人员查询========"<
cout<<"请输入查询的编号:";cin>>g;
for(int t2=0;t2< i2;t2++)
{
if(js[t2].NOjs==g)
{
h=g-1;
js[h].show();
z=2;
editPer(g,z); //是否编辑
Delete(g,z); //是否删除
}
}
}
else if (f==3)
{
cout<<"========一般员工查询========"<
cout<<"请输入查询的编号:";cin>>g;
for(int t3=0;t3< i3;t3++)
{
if(yb[t3].NOyb==g)
{
h=g-1;
yb[h].show();
z=3;
editPer(g,z); //是否编辑
Delete(g,z); //是否删除
}
}
}
else if (f==4)
{
cout<<"========退休人员查询========"<
cout<<"请输入查询的编号:";cin>>g;
for(int t4=0;t4< i4;t4++)
{
if(tx[t4].NOtx==g)
{
h=g-1;
tx[h].show();
z=4;
editPer(g,z); //是否编辑
Delete(g,z); //是否删除
}
}
}
else if (f==5)
{break;}
else
{
cout<<"输入有误!请重试!"<
system ("pause");
system ("cls");
continue;
}
}
}
//根据姓名查询函数
void findName()
{
char s;
char nam[20];
int x;
while(1)
{
cout<<"=========正在通过姓名进行查询========="<
cout<<"请输入查询的姓名:";
cin>>nam;
for(int t=0;t<(i1+i2+i3+i4);t++)
{
if(strcmp(xz[t].name,nam)==0)
{
xz[t].show();
x=1;
editPer(xz[t].NOxz,x); //是否编辑
Delete(xz[t].NOxz,x); //是否删除
cout<
}
else if(strcmp(js[t].name,nam)==0)
{
js[t].show();
x=2;
editPer(js[t].NOjs,x); //是否编辑
Delete(js[t].NOjs,x); //是否删除
cout<
}
else if(strcmp(yb[t].name,nam)==0)
{
yb[t].show();
x=3;
editPer(yb[t].NOyb,x); //是否编辑
Delete(yb[t].NOyb,x); //是否删除
cout<
}
else if(strcmp(tx[t].name,nam)==0)
{
tx[t].show();
x=4;
editPer(tx[t].NOtx,x); //是否编辑
Delete(tx[t].NOtx,x); //是否删除
cout<
}
else
continue;
}
cout<<"是否继续查询或修改(y/n)"<
cin>>s;
if(s=='y'||s=='Y') continue;
else break;
}
}
//编辑工作人员信息
void editPer(int v,int z)
{
char su1;char su2;
n1=v-1;n2=v-1;n3=v-1;n4=v-1;
while(1)
{
cout<
cin>>su1;
if(su1=='y'||su1=='Y')
{
if(z==1)
{
xz[n1].add(n1);
cout<
cin>>su2;
if(su2=='y'||su2=='Y')
{
FileSave();
}
else break;
}
if(z==2)
{
js[n2].add(n2);
cout<
cin>>su2;
if(su2=='y'||su2=='Y')
{
FileSave();
}
else break;
}
if(z==3)
{
yb[n3].add(n3);
cout<
cin>>su2;
if(su2=='y'||su2=='Y')
{
FileSave();
}
else break;
}
if(z==4)
{
tx[n4].add(n4);
cout<
cin>>su2;
if(su2=='y'||su2=='Y')
{
FileSave();
}
else break;
}
}
else break;
break;
}
}
//删除函数
void Delete(int j,int k)
{
char su4;
int jg=j;
n1=j;n2=j;n3=j;n4=j;
while(1)
{
cout<
cin>>su4;
if(su4=='y'||su4=='Y')
{
if(k==1)
{
for(;n1
{
xz[n1-1]=xz[n1]; //删除搜索的行政人员信息
xz[n1-1].NOxz--; //信息删除后编号重排
}
i1--;
FileSave();
cout<<"=====你所查询编号为"<
system("pause");
system("cls");
}
if(k==2)
{
for(;n2
{
js[n2-1]=js[n2]; //删除搜索的教师信息
js[n2-1].NOjs--; //信息删除后编号重排
}
i2--;
FileSave();
cout<<"=====你所查询编号为"<
system("pause");
system("cls");
}
if(k==3)
{
for(;n3
{
yb[n3-1]=yb[n3]; //删除搜索的一般员工信息
yb[n3-1].NOyb--; //信息删除后编号重排
}
i3--;
FileSave();
cout<<"=====你所查询编号为"<
system("pause");
system("cls");
}
if(k==4)
{
for(;n4
{
tx[n4-1]=tx[n4]; //删除搜索的退休员工信息
tx[n4-1].NOtx--; //信息删除后编号重排
}
i4--;
FileSave();
cout<<"=====你所查询编号为"<
system("pause");
system("cls");
}
else break;
}
break;
}
}
void tongji() //人事统计
{
while(1)
{
int z,i;
int g=0;
cout<<"请输入要统计的类型:1.在职人员 2.党员 3.女性人员 4.高学历高职称人员"<
int r;
cin>>r;
if(r==1)
{
z=i1+i2+i3;
cout<<"在职人员数:"<
}
else if(r==2)
{
for(i=0;i
{
if(strcmp(xz[i].zzmm ,"党员")==0)
g++;
}
for(i=0;i
{
if(strcmp(js[i].zzmm,"党员")==0)
g++;
}
for(i=0;i
{
if(strcmp(yb[i].zzmm,"党员")==0)
g++;
}
for(i=0;i
{
if(strcmp(tx[i].zzmm,"党员")==0)
g++;
}
cout<<"党员数:"<
}
else if(r==3)
{
for(i=0;i
{
if(strcmp(xz[i].sex,"女")==0)
g++;
}
for(i=0;i
{
if(strcmp(js[i].sex,"女")==0)
g++;
}
for(i=0;i
{
if(strcmp(yb[i].sex,"女")==0)
g++;
}
for(i=0;i
{
if(strcmp(tx[i].sex,"女")==0)
g++;
}
cout<<"女性人员数:"<
}
else if(r==4)
{
int g=0,h=0,c=0;
for(i=0;i
{
if(strcmp(xz[i].zgxl,"大学")==0)
g++;
}
for(i=0;i
{
if(strcmp(js[i].zgxl,"大学")==0)
g++;
}
for(i=0;i
{
if(strcmp(yb[i].zgxl,"大学")==0)
g++;
}
for(i=0;i
{
if(strcmp(tx[i].zgxl,"大学")==0)
g++;
}
for(i=0;i
{
if(strcmp(xz[i].zgxl,"高中")==0)
h++;
}
for(i=0;i
{
if(strcmp(js[i].zgxl,"高中")==0)
h++;
}
for(i=0;i
{
if(strcmp(yb[i].zgxl,"高中")==0)
h++;
}
for(i=0;i
{
if(strcmp(tx[i].zgxl,"高中")==0)
h++;
}
for(i=0;i
{
if(strcmp(xz[i].zgxl,"初中")==0)
h++;
}
for(i=0;i
{
if(strcmp(js[i].zgxl,"初中")==0)
h++;
}
for(i=0;i
{
if(strcmp(yb[i].zgxl,"初中")==0)
h++;
}
for(i=0;i
{
if(strcmp(tx[i].zgxl,"初中")==0)
h++;
}
cout<<"大学人数:"<
}
else
{
cout<<"统计的类型错误!"<
system("PAUSE");
}
cout<<"是否继续人事统计:Y继续、其他退出"<
char x;
cin>>x;
if(x!='y' && x!='Y')
break;
}
}
本文来源:https://www.2haoxitong.net/k/doc/de0ad1e8a0c7aa00b52acfc789eb172ded6399cc.html
文档为doc格式