高校人事管理系统C++程序设计源代码

发布时间:2017-12-05 16:25:12   来源:文档文库   
字号:

目录

新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。 2

头文件: 2

源文件: 7


新建一个头文件类,名字为:Person.h,再建一个源文件,名字随意,代码按顺序粘贴进去即可运行。

头文件:

#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<是否进行修改(y/n)"<

cin>>su1;

if(su1=='y'||su1=='Y')

{

if(z==1)

{

xz[n1].add(n1);

cout<是否保存(y/n)"<

cin>>su2;

if(su2=='y'||su2=='Y')

{

FileSave();

}

else break;

}

if(z==2)

{

js[n2].add(n2);

cout<是否保存(y/n)"<

cin>>su2;

if(su2=='y'||su2=='Y')

{

FileSave();

}

else break;

}

if(z==3)

{

yb[n3].add(n3);

cout<是否保存(y/n)"<

cin>>su2;

if(su2=='y'||su2=='Y')

{

FileSave();

}

else break;

}

if(z==4)

{

tx[n4].add(n4);

cout<是否保存(y/n)"<

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<是否删除(y/n)"<

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

《高校人事管理系统C++程序设计源代码.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式