当前位置:文档之家› 高校人事管理系统C++程序设计源代码

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

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

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

头文件:#include <iostream>#include <fstream>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<<"姓名:"<<name<<endl<<"性别:"<<sex<<endl<<"年龄:"<<age<<endl<<"工资:"<<gongzi<<endl<<"政治面貌:"<<zzmm<<endl<<"最高学历:"<<zgxl<<endl<<"任职时间:"<<rzsj<<endl<<"来院时间:"<<lysj<<endl;}virtual void save(fstream &f){f<<name<<" "<<sex<<" "<<age<<" "<<gongzi<<" "<<zzmm<<" "<<zgxl<<" "<<rzsj<<" "<<lysj<<" ";}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<<"行政人员编号:"<<NOxz<<endl;Person::add();cout<<"职务:";cin>>zhiwu;cout<<"级别:";cin>>jibie;}void show(){cout<<"行政人员编号:"<<NOxz<<endl;Person::show();cout<<"职务:"<<zhiwu<<endl<<"级别:"<<jibie<<endl;}virtual void save(fstream &f){f<<NOxz<<" "; //记录正在输入的行政人员编号Person::save(f);f<<zhiwu<<" "<<jibie<<" "<<endl;}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<<"教师编号:"<<NOjs<<endl; Person::add();cout<<"职务:";cin>>zhiwu;cout<<"职称:";cin>>zhicheng;}void show(){cout<<"教师编号:"<<NOjs<<endl;Person::show();cout<<"职务:"<<zhiwu<<endl<<"职称:"<<zhicheng<<endl; }virtual void save(fstream &f){f<<NOjs<<" ";Person::save(f);f<<zhiwu<<" "<<zhicheng<<endl;}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<<"一般员工编号:"<<NOyb<<endl; Person::add();cout<<"职务:";cin>>zhiwu;}void show(){cout<<"一般员工编号:"<<NOyb<<endl; Person::show();cout<<"职务:"<<zhiwu<<endl;}virtual void save(fstream &f){f<<NOyb<<" ";Person::save(f);f<<zhiwu<<" "<<endl;}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<<"退休员工编号:"<<NOtx<<endl;Person::add();cout<<"退休时间:";cin>>tuixiusj;}void show(){cout<<"退休员工编号:"<<NOtx<<endl;Person::show();cout<<"退休时间:"<<tuixiusj<<endl; }virtual void save(fstream &f){f<<NOtx<<" ";Person::save(f);f<<tuixiusj<<" "<<endl;}virtual void read(fstream &f){Person::read(f);f>>tuixiusj;}};源文件:#include "Person.h"#include "string.h"#include <iostream>#include <fstream>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<<"**********欢迎进入高校人事管理系统**************"<<endl; cout<<"* 输入选项进行选择*"<<endl; cout<<"* *"<<endl; cout<<"* 1、添加学院工作人员*"<<endl; cout<<"* 2、查询*"<<endl; cout<<"* 编辑*"<<endl; cout<<"* 删除工作人员信息*"<<endl; cout<<"* 3、人员统计*"<<endl;cout<<"* 4、退出程序*"<<endl; cout<<"* *"<<endl; cout<<"************************************************"<<endl; cout<<endl;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<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}//添加学院工作人员函数void addPerson(){int b;while(1){cout<<"*******请选择人员工作岗位*********"<<endl; cout<<"* 1、行政人员*"<<endl; cout<<"* 2、教师*"<<endl; cout<<"* 3、一般员工*"<<endl; cout<<"* 4 、退休人员*"<<endl; cout<<"* 5、保存并退出*"<<endl; cout<<"**********************************"<<endl; cout<<endl<<"要添加请选择,不添加请选退出:"; cin>>b; cout<<endl;system("cls");if (b==1) //添加行政人员{xz[i1].add(n1);}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;}{cout<<"输入有误!请重试!"<<endl;cout<<endl;system ("pause");system ("cls");continue;}}}//信息保存函数void FileSave(){int k;fstream file;file.open("data.dat", ios::out);file<<i1<<endl; //保存已输入的行政人员总数for(k=0;k<i1;k++)xz[k].save(file);file<<endl;file<<i2<<endl; //保存已输入的教师人员总数for(k=0;k<i2;k++)js[k].save(file);file<<endl;file<<i3<<endl; //保存已输入的一般员工总数for(k=0;k<i3;k++)yb[k].save(file);file<<endl;file<<i4<<endl; //保存已输入的退休人员总数for(k=0;k<i4;k++)tx[k].save(file);file<<endl;file.close();}//读取文件函数void FileRead(){int k;fstream file;file.open("data.dat", ios::in);file>>i1; //读取行政人员总数for(k=0;k<i1;k++){file>>xz[k].NOxz; //读取行政人员编号xz[k].read(file);}file>>i2; //读取教师人员总数for(k=0;k<i2;k++){file>>js[k].NOjs; //读取教师人员编号js[k].read(file);}file>>i3; //读取一般员工总数for(k=0;k<i3;k++){file>>yb[k].NOyb; //读取一般员工编号yb[k].read(file);}file>>i4; //读取退休人员总数for(k=0;k<i4;k++){file>>tx[k].NOtx; //读取退休人员编号tx[k].read(file);}file.close();}//查询并编辑工作人员信息void findChange(){int e;while(1){cout<<"****************************"<<endl;cout<<"* 1、编号查询*"<<endl;cout<<"* 2、姓名查询*"<<endl; cout<<"* 3、退出*"<<endl; cout<<"****************************"<<endl; cout<<"请选择:";cin>>e; cout<<endl;system("cls");if (e==1){findNO();}else if (e==2){findName();}else if (e==3){break;}else{cout<<"输入有误!请重试!"<<endl;system ("pause");system ("cls");continue;}}}//根据编号查询函数void findNO(){int f,g,z;int h;while(1){cout<<"========请输入查询人所在的分类========"<<endl; cout<<" 1、行政人员"<<endl;cout<<" 2、教师人员"<<endl;cout<<" 3、一般员工"<<endl;cout<<" 4、退休人员"<<endl;cout<<" 5、退出"<<endl;cout<<"==================================== =="<<endl;cout<<"请输入:";cin>>f;cout<<endl;system("cls");if (f==1)cout<<"========行政人员查询========"<<endl; 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<<"========教师人员查询========"<<endl; 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<<"========一般员工查询========"<<endl; 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<<"========退休人员查询========"<<endl; 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;}elsecout<<"输入有误!请重试!"<<endl;system ("pause");system ("cls");continue;}}}//根据姓名查询函数void findName(){char s;char nam[20];int x;while(1){cout<<"=========正在通过姓名进行查询========="<<endl<<endl;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<<endl;}else if(strcmp(js[t].name,nam)==0){js[t].show();x=2;editPer(js[t].NOjs,x); //是否编辑Delete(js[t].NOjs,x); //是否删除cout<<endl;}else if(strcmp(yb[t].name,nam)==0){yb[t].show();x=3;editPer(yb[t].NOyb,x); //是否编辑Delete(yb[t].NOyb,x); //是否删除cout<<endl;}else if(strcmp(tx[t].name,nam)==0){tx[t].show();x=4;editPer(tx[t].NOtx,x); //是否编辑Delete(tx[t].NOtx,x); //是否删除cout<<endl;}elsecontinue;}cout<<"是否继续查询或修改(y/n)"<<endl;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<<endl<<"是否进行修改(y/n)"<<endl; cin>>su1;if(su1=='y'||su1=='Y'){if(z==1){xz[n1].add(n1);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==2){js[n2].add(n2);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==3){yb[n3].add(n3);cout<<endl<<"是否保存(y/n)"<<endl; cin>>su2;if(su2=='y'||su2=='Y'){FileSave();}else break;}if(z==4){tx[n4].add(n4);cout<<endl<<"是否保存(y/n)"<<endl; 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<<endl<<"是否删除(y/n)"<<endl;cin>>su4;if(su4=='y'||su4=='Y'){if(k==1){for(;n1<i1;n1++){xz[n1-1]=xz[n1]; //删除搜索的行政人员信息xz[n1-1].NOxz--; //信息删除后编号重排}i1--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的行政人员信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==2){for(;n2<i2;n2++){js[n2-1]=js[n2]; //删除搜索的教师信息js[n2-1].NOjs--; //信息删除后编号重排}i2--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的教师信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==3){for(;n3<i3;n3++){yb[n3-1]=yb[n3]; //删除搜索的一般员工信息yb[n3-1].NOyb--; //信息删除后编号重排}i3--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的一般员工信息已删除====="<<endl<<endl;system("pause");system("cls");}if(k==4){for(;n4<i4;n4++){tx[n4-1]=tx[n4]; //删除搜索的退休员工信息tx[n4-1].NOtx--; //信息删除后编号重排}i4--;FileSave();cout<<"=====你所查询编号为"<<jg<<"的退休员工信息已删除====="<<endl<<endl;system("pause");system("cls");}else break;}break;}}void tongji() //人事统计while(1){int z,i;int g=0;cout<<"请输入要统计的类型:1.在职人员 2.党员 3.女性人员 4.高学历高职称人员"<<endl;int r;cin>>r;if(r==1){z=i1+i2+i3;cout<<"在职人员数:"<<z<<endl;}else if(r==2){for(i=0;i<i1;i++){if(strcmp(xz[i].zzmm ,"党员")==0)g++;}for(i=0;i<i2;i++)if(strcmp(js[i].zzmm,"党员")==0) g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zzmm,"党员")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zzmm,"党员")==0) g++;}cout<<"党员数:"<<g<<endl; }else if(r==3){for(i=0;i<i1;i++){if(strcmp(xz[i].sex,"女")==0)g++;for(i=0;i<i2;i++){if(strcmp(js[i].sex,"女")==0)g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].sex,"女")==0)g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].sex,"女")==0)g++;}cout<<"女性人员数:"<<g<<endl; }else if(r==4){int g=0,h=0,c=0;for(i=0;i<i1;i++)if(strcmp(xz[i].zgxl,"大学")==0) g++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"大学")==0) g++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"大学")==0) g++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"大学")==0) g++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"高中")==0)h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"高中")==0) h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"高中")==0) h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"高中")==0) h++;}for(i=0;i<i1;i++){if(strcmp(xz[i].zgxl,"初中")==0) h++;}for(i=0;i<i2;i++){if(strcmp(js[i].zgxl,"初中")==0)h++;}for(i=0;i<i3;i++){if(strcmp(yb[i].zgxl,"初中")==0)h++;}for(i=0;i<i4;i++){if(strcmp(tx[i].zgxl,"初中")==0)h++;}cout<<"大学人数:"<<g<<" 高中人数:"<<h<<" 初中人数:"<<c<<endl;}else{cout<<"统计的类型错误!"<<endl;system("PAUSE");. ... .}cout<<"是否继续人事统计:Y继续、其他退出"<<endl;char x;cin>>x;if(x!='y' && x!='Y')break;}}. word ..。

相关主题