目录
高校人员信息管理系统
一、问题描述
二、功能要求
三、问题的解决方案
四、代码段
1、多文件
2、单文件
高校人员信息管理系统
备注:大一(下)C++语言课程设计
一、问题描述
某高校有四类员工:教师、实验员、行政人员,教师兼行政人员
共有的信息包括:编号、姓名、性别、年龄等
其中,教师还包含的信息有:所在系部、专业、职称;
实验员还包含的信息有:所在实验室、职务;
行政人员还包含的信息有:政治面貌、职称等
二、功能要求
(1)添加功能:程序能够任意添加上述四类人员的记录,提供选择界面供用户选择所要添加的人员类别,要求员工的编号唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。
(6)统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。
(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
三、问题的解决方案
根据系统功能要求,可以将问题解决分为以下步骤:
(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;
(2)分析系统中的各个实体及它们之间的关系;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述;
(5)完成类中各个成员函数的定义;
(6)完成系统的应用模块;
(7)功能调试; 文章来源:https://www.toymoban.com/news/detail-498006.html
(8)完成系统总结报告。 文章来源地址https://www.toymoban.com/news/detail-498006.html
四、代码段
1、多文件
2、单文件
#include<iostream>
#include<string>
#include<string.h>
#define n 9
#define N 99
using namespace std;
//
//基类staff(员工)
class staff
{
public:
protected:
int number; //编号
char name[n]; //姓名
char gender[n]; //性别
int age; //年龄
};
///
//派生类teacher(教师)
class teacher:virtual public staff
{
public:
void input(int n_number);
void output();
friend class tea_manager;
protected:
char department[n]; //系部
char major[n]; //专业
char title_1[n]; //职称
};
///
//派生类teacher(教师)的输入函数input的实现
void teacher::input(int n_number)
{
number=n_number; //编号需要检测唯一性
cout<<"输入姓名:";cin>>name;
cout<<"输入性别:";cin>>gender;
cout<<"输入年龄:";cin>>age;
cout<<"输入系部:";cin>>department;
cout<<"输入专业:";cin>>major;
cout<<"输入职称:";cin>>title_1;
}
//派生类teacher(教师)的输出函数output的实现
void teacher::output()
{
cout<<"编号:"<<number<<" 姓名:"<<name<<" 性别:"<<gender<<" 年龄:"<<age<<" 系部:"<<department<<" 专业:"<<major<<" 职称:"<<title_1<<endl;
}
///
//教师的管理类tea_manager,综合各项功能
class tea_manager
{
public:
int add();
int search();
void show();
void edit();
void dele();
void statis();
void save();
void init();
private:
FILE *fp1;
int count1=0;
teacher T[N];
};
///
//教师的管理类tea_manager各项功能的实现
int tea_manager::add() //添加add()函数
{
int i,nu;
teacher t;
if(count1==N)
{
cout<<"教师信息库已满,无法添加,请删除部分教师信息后重试!"<<endl;
return 0;
}
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count1;i++)
{
if(T[i].number==nu)
{
cout<<"您输入的编号与教师信息库内的编号存在重复,添加失败!"<<endl;
return 0;
}
}
t.input(nu); T[count1]=t; count1++;
cout<<"添加成功!"<<endl;
return 1;
}
int tea_manager::search() //查询search()函数
{
int choice;
cout<<"请选择查找方式:"<<endl;
cout<<"1:按编号查找"<<endl;
cout<<"2:按姓名查找"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,nu;
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count1;i++)
{
if(T[i].number==nu) break;
}
if(i==count1) cout<<"该编号不存在!"<<endl;
else T[i].output();
return 1;
}
case 2:
{
int i; string na;
cout<<"请输入姓名:" <<endl;cin>>na;
for(i=0;i<count1;i++)
{
if(T[i].name==na) break;
}
if(i==count1) cout<<"该姓名不存在!"<<endl;
else T[i].output();
return 1;
}
}
}
void tea_manager::show() //显示show()函数
{
int i;
if(count1==0) cout<<"教师信息库为空!"<<endl;
else
{
for(i=0;i<count1;i++)
{
T[i].output();
}
}
}
void tea_manager::edit() //编辑edit()函数
{
int i,nu;
teacher t;
cout<<"请输入需要编辑的教师的编号:"<<endl;cin>>nu;
for(i=0;i<count1;i++)
{
if(T[i].number==nu)
break;
}
if(i==count1)
cout<<"该编号不存在!"<<endl;
else
{
cout<<"输入修改后的信息,编号不能改:"<<endl;
t.input(nu);
T[i]=t;
cout<<"编辑成功!"<<endl;
}
}
void tea_manager::dele() //删除dele()函数
{
int i,nu;
cout<<"请输入需要删除的教师的编号:"<<endl;cin>>nu;
for(i=0;i<count1;i++)
{
if(T[i].number==nu)
break;
}
if(i==count1)
cout<<"该编号不存在!"<<endl;
else
{
for(;i<count1-1;i++)
{
T[i]=T[i+1];
}
count1--;
cout<<"删除成功!"<<endl;
}
}
void tea_manager::statis() //统计statis()函数
{
int choice;
cout<<"请选择统计方式:"<<endl;
cout<<"1、按年龄统计"<<endl;
cout<<"2、统计总人数以及男性和女性人数" <<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,a,num=0;
cout<<"请输入您需要统计的教师的年龄:"<<endl; cin>>a;
for(i=0;i<count1;i++)
{
if(T[i].age==a)
num++;
}
cout<<a<<"岁的教师人数为:"<<num<<"人"<<endl;
break;
}
case 2:
{
int i,m_num=0,f_num=0;
cout<<"教师总人数为:"<<count1<<"人"<<endl;
for(i=0;i<count1;i++)
{
if(strcmp(T[i].gender,"男")==0)
m_num++;
else
f_num++;
}
cout<<"教师男性人数为:"<<m_num<<"人"<<endl;
cout<<"教师女性人数为:"<<f_num<<"人"<<endl;
break;
}
}
}
void tea_manager::save() //保存save()函数
{
int i;
//文件一 teacherfile.txt
fp1 = fopen("teacherfile.txt", "w");
for(i=0;i<count1;i++)
fprintf(fp1,"%d %s %s %d %s %s %s",T[count1].number,T[count1].name,T[count1].gender,T[count1].age,T[count1].department,T[count1].major,T[count1].title_1);
fclose(fp1);
}
void tea_manager::init() //读取init()函数
{
//文件一 teacherfile.txt
if((fp1 = fopen("teacherfile.txt", "r")) == NULL)
cout << "不能打开文件teacherfile.txt" << endl;
else
{
while(!feof(fp1))
{
fscanf(fp1,"%d %s %s %d %s %s %s",&T[count1].number,T[count1].name,T[count1].gender,&T[count1].age,T[count1].department,T[count1].major,T[count1].title_1);
count1++;
}
}
fclose(fp1);
}
///
void tea_mune(tea_manager tm)
{
int a=99;
tm.init();
do
{
cout<<endl<<endl;
cout<<"教师信息管理子系统"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cout<<"*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录! *"<<endl;
cout<<"*请输入您的选择: *"<<endl;
cout<<"*1:添加 *"<<endl;
cout<<"*2;查询 *"<<endl;
cout<<"*3:显示 *"<<endl;
cout<<"*4:编辑 *"<<endl;
cout<<"*5:删除 *"<<endl;
cout<<"*6:统计 *"<<endl;
cout<<"*7;保存 *"<<endl;
cout<<"*0:退出子系统 *"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cin>>a;
switch(a)
{
case 1:tm.add();break;
case 2:tm.search();break;
case 3:tm.show();break;
case 4:tm.edit();break;
case 5:tm.dele();break;
case 6:tm.statis();break;
case 7:tm.save();break;
case 0:break;
default:cout<<"选择错误,请您重新选择!"<<endl;
}
}
while(a!=0);
}
/
//派生类lab_technician(实验员)
class lab_technician:virtual public staff
{
public:
void input(int n_number);
void output();
friend class lab_tech_manager;
protected:
char lab[n]; //实验室
char job[n]; //职务
};
//派生类lab_technician(实验员)的输入函数input的实现
void lab_technician::input(int n_number)
{
number=n_number; //编号需要检测唯一性
cout<<"输入姓名:";cin>>name;
cout<<"输入性别:";cin>>gender;
cout<<"输入年龄:";cin>>age;
cout<<"输入实验室:";cin>>lab;
cout<<"输入职务:";cin>>job;
}
//派生类lab_technician(实验员)的输出函数output的实现
void lab_technician::output()
{
cout<<"编号:"<<number<<" 姓名:"<<name<<" 性别:"<<gender<<" 年龄:"<<age<<" 实验室:"<<lab<<" 职务:"<<job<<endl;
}
//实验员的管理类lab_tech_manager,综合各项功能
class lab_tech_manager
{
public:
int add();
int search();
void show();
void edit();
void dele();
void statis();
void save();
void init();
private:
FILE *fp2;
int count2=0;
lab_technician LT[N];
};
/
//实验员的管理类lab_tech_manager各项功能的实现
int lab_tech_manager::add() //添加add()函数
{
int i,nu;
lab_technician lt;
if(count2==N)
{
cout<<"实验员信息库已满,无法添加,请删除部分实验员信息后重试!"<<endl;
return 0;
}
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count2;i++)
{
if(LT[i].number==nu)
{
cout<<"您输入的编号与实验员信息库内的编号存在重复,添加失败!"<<endl;
return 0;
}
}
lt.input(nu); LT[count2]=lt; count2++;
cout<<"添加成功!"<<endl;
return 1;
}
int lab_tech_manager::search() //查询search()函数
{
int choice;
cout<<"请选择查找方式:"<<endl;
cout<<"1:按编号查找"<<endl;
cout<<"2:按姓名查找"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,nu;
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count2;i++)
{
if(LT[i].number==nu) break;
}
if(i==count2) cout<<"该编号不存在!"<<endl;
else LT[i].output();
return 1;
}
case 2:
{
int i; string na;
cout<<"请输入姓名:" <<endl;cin>>na;
for(i=0;i<count2;i++)
{
if(LT[i].name==na) break;
}
if(i==count2) cout<<"该姓名不存在!"<<endl;
else LT[i].output();
return 1;
}
}
}
void lab_tech_manager::show() //显示show()函数
{
int i;
if(count2==0) cout<<"实验员信息库为空!"<<endl;
else
{
for(i=0;i<count2;i++)
{
LT[i].output();
}
}
}
void lab_tech_manager::edit() //编辑edit()函数
{
int i,nu;
lab_technician lt;
cout<<"请输入需要编辑的实验员的编号:"<<endl;cin>>nu;
for(i=0;i<count2;i++)
{
if(LT[i].number==nu)
break;
}
if(i==count2)
cout<<"该编号不存在!"<<endl;
else
{
cout<<"输入修改后的信息,编号不能改:"<<endl;
lt.input(nu);
LT[i]=lt;
cout<<"编辑成功!"<<endl;
}
}
void lab_tech_manager::dele() //删除dele()函数
{
int i,nu;
cout<<"请输入需要删除的实验员的编号:"<<endl;cin>>nu;
for(i=0;i<count2;i++)
{
if(LT[i].number==nu)
break;
}
if(i==count2)
cout<<"该编号不存在!"<<endl;
else
{
for(;i<count2-1;i++)
{
LT[i]=LT[i+1];
}
count2--;
cout<<"删除成功!"<<endl;
}
}
void lab_tech_manager::statis() //统计statis()函数
{
int choice;
cout<<"请选择统计方式:"<<endl;
cout<<"1、按年龄统计"<<endl;
cout<<"2、统计总人数以及男性和女性人数" <<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,a,num=0;
cout<<"请输入您需要统计的实验员的年龄:"<<endl; cin>>a;
for(i=0;i<count2;i++)
{
if(LT[i].age==a)
num++;
}
cout<<a<<"岁的实验员人数为:"<<num<<"人"<<endl;
break;
}
case 2:
{
int i,m_num=0,f_num=0;
cout<<"实验员总人数为:"<<count2<<"人"<<endl;
for(i=0;i<count2;i++)
{
if(strcmp(LT[i].gender,"男")==0)
m_num++;
else
f_num++;
}
cout<<"实验员男性人数为:"<<m_num<<"人"<<endl;
cout<<"实验员女性人数为:"<<f_num<<"人"<<endl;
break;
}
}
}
void lab_tech_manager::save() //保存save()函数
{
int i;
//文件二 lab_technicianfile.txt
fp2 = fopen("lab_technicianfile.txt", "w");
for(i=0;i<count2;i++)
fprintf(fp2,"%d %s %s %d %s %s",LT[count2].number,LT[count2].name,LT[count2].gender,LT[count2].age,LT[count2].lab,LT[count2].job);
fclose(fp2);
}
void lab_tech_manager::init() //读取init()函数
{
//文件二 lab_technicianfile.txt
if((fp2= fopen("lab_technicianfile.txt", "r")) == NULL)
cout << "不能打开文件lab_technicianfile.txt" << endl;
else
{
while(!feof(fp2))
{
fscanf(fp2,"%d %s %s %d %s %s",<[count2].number,LT[count2].name,LT[count2].gender,<[count2].age,LT[count2].lab,LT[count2].job);
count2++;
}
}
fclose(fp2);
}
/
void lab_tech_mune(lab_tech_manager ltm)
{
int a=99;
ltm.init();
do
{
cout<<endl<<endl;
cout<<"实验员信息管理子系统"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cout<<"*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录! *"<<endl;
cout<<"*请输入您的选择: *"<<endl;
cout<<"*1:添加 *"<<endl;
cout<<"*2;查询 *"<<endl;
cout<<"*3:显示 *"<<endl;
cout<<"*4:编辑 *"<<endl;
cout<<"*5:删除 *"<<endl;
cout<<"*6:统计 *"<<endl;
cout<<"*7;保存 *"<<endl;
cout<<"*0:退出子系统 *"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cin>>a;
switch(a)
{
case 1:ltm.add();break;
case 2:ltm.search();break;
case 3:ltm.show();break;
case 4:ltm.edit();break;
case 5:ltm.dele();break;
case 6:ltm.statis();break;
case 7:ltm.save();break;
case 0:break;
default:cout<<"选择错误,请您重新选择!"<<endl;
}
}
while(a!=0);
}
/
//派生类admini_staff(行政人员)
class admini_staff:virtual public staff
{
public:
void input(int n_number);
void output();
friend class admi_manager;
protected:
char poli_status[n]; //政治面貌
char title_2[n]; //职称
};
///
//派生类admini_staff(行政人员)的输入函数input的实现
void admini_staff::input(int n_number)
{
number=n_number; //编号需要检测唯一性
cout<<"输入姓名:";cin>>name;
cout<<"输入性别:";cin>>gender;
cout<<"输入年龄:";cin>>age;
cout<<"输入政治面貌:";cin>>poli_status;
cout<<"输入职称:";cin>>title_2;
}
//派生类admini_staff(行政人员)的输出函数output的实现
void admini_staff::output()
{
cout<<"编号:"<<number<<" 姓名:"<<name<<" 性别:"<<gender<<" 年龄:"<<age<<" 政治面貌:"<<poli_status<<" 职称:"<<title_2<<endl;
}
//
//行政人员的管理类admi_manager,综合各项功能
class admi_manager
{
public:
int add();
int search();
void show();
void edit();
void dele();
void statis();
void save();
void init();
private:
FILE *fp3;
int count3=0;
admini_staff AS[N];
};
//
//行政人员的管理类admi_manager各项功能的实现
int admi_manager::add() //添加add()函数
{
int i,nu;
admini_staff as;
if(count3==N)
{
cout<<"行政人员信息库已满,无法添加,请删除部分行政人员信息后重试!"<<endl;
return 0;
}
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count3;i++)
{
if(AS[i].number==nu)
{
cout<<"您输入的编号与行政人员信息库内的编号存在重复,添加失败!"<<endl;
return 0;
}
}
as.input(nu); AS[count3]=as; count3++;
cout<<"添加成功!"<<endl;
return 1;
}
int admi_manager::search() //查询search()函数
{
int choice;
cout<<"请选择查找方式:"<<endl;
cout<<"1:按编号查找"<<endl;
cout<<"2:按姓名查找"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,nu;
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count3;i++)
{
if(AS[i].number==nu) break;
}
if(i==count3) cout<<"该编号不存在!"<<endl;
else AS[i].output();
return 1;
}
case 2:
{
int i; string na;
cout<<"请输入姓名:" <<endl;cin>>na;
for(i=0;i<count3;i++)
{
if(AS[i].name==na) break;
}
if(i==count3) cout<<"该姓名不存在!"<<endl;
else AS[i].output();
return 1;
}
}
}
void admi_manager::show() //显示show()函数
{
int i;
if(count3==0) cout<<"行政人员信息库为空!"<<endl;
else
{
for(i=0;i<count3;i++)
{
AS[i].output();
}
}
}
void admi_manager::edit() //编辑edit()函数
{
int i,nu;
admini_staff as;
cout<<"请输入需要编辑的行政人员的编号:"<<endl;cin>>nu;
for(i=0;i<count3;i++)
{
if(AS[i].number==nu)
break;
}
if(i==count3)
cout<<"该编号不存在!"<<endl;
else
{
cout<<"输入修改后的信息,编号不能改:"<<endl;
as.input(nu);
AS[i]=as;
cout<<"编辑成功!"<<endl;
}
}
void admi_manager::dele() //删除dele()函数
{
int i,nu;
cout<<"请输入需要删除的行政人员的编号:"<<endl;cin>>nu;
for(i=0;i<count3;i++)
{
if(AS[i].number==nu)
break;
}
if(i==count3)
cout<<"该编号不存在!"<<endl;
else
{
for(;i<count3-1;i++)
{
AS[i]=AS[i+1];
}
count3--;
cout<<"删除成功!"<<endl;
}
}
void admi_manager::statis() //统计statis()函数
{
int choice;
cout<<"请选择统计方式:"<<endl;
cout<<"1、按年龄统计"<<endl;
cout<<"2、统计总人数以及男性和女性人数" <<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,a,num=0;
cout<<"请输入您需要统计的行政人员的年龄:"<<endl; cin>>a;
for(i=0;i<count3;i++)
{
if(AS[i].age==a)
num++;
}
cout<<a<<"岁的行政人员人数为:"<<num<<"人"<<endl;
break;
}
case 2:
{
int i,m_num=0,f_num=0;
cout<<"行政人员总人数为:"<<count3<<"人"<<endl;
for(i=0;i<count3;i++)
{
if(strcmp(AS[i].gender,"男")==0)
m_num++;
else
f_num++;
}
cout<<"行政人员男性人数为:"<<m_num<<"人"<<endl;
cout<<"行政人员女性人数为:"<<f_num<<"人"<<endl;
break;
}
}
}
void admi_manager::save() //保存save()函数
{
int i;
//文件三 admini_stafffile.txt
fp3 = fopen("admini_stafffile.txt", "w");
for(i=0;i<count3;i++)
fprintf(fp3,"%d %s %s %d %s %s",AS[count3].number,AS[count3].name,AS[count3].gender,AS[count3].age,AS[count3].poli_status,AS[count3].title_2);
fclose(fp3);
}
void admi_manager::init() //读取init()函数
{
//文件三 admini_stafffile.txt
if((fp3 = fopen("admini_stafffile.txt", "r")) == NULL)
cout << "不能打开文件admini_stafffile.txt" << endl;
else
{
while(!feof(fp3))
{
fscanf(fp3,"%d %s %s %d %s %s",&AS[count3].number,AS[count3].name,AS[count3].gender,&AS[count3].age,AS[count3].poli_status,AS[count3].title_2);
count3++;
}
}
fclose(fp3);
}
///
void admi_mune(admi_manager am)
{
int a=99;
am.init();
do
{
cout<<endl<<endl;
cout<<"行政人员信息管理子系统"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cout<<"*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录! *"<<endl;
cout<<"*请输入您的选择: *"<<endl;
cout<<"*1:添加 *"<<endl;
cout<<"*2;查询 *"<<endl;
cout<<"*3:显示 *"<<endl;
cout<<"*4:编辑 *"<<endl;
cout<<"*5:删除 *"<<endl;
cout<<"*6:统计 *"<<endl;
cout<<"*7;保存 *"<<endl;
cout<<"*0:退出子系统 *"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cin>>a;
switch(a)
{
case 1:am.add();break;
case 2:am.search();break;
case 3:am.show();break;
case 4:am.edit();break;
case 5:am.dele();break;
case 6:am.statis();break;
case 7:am.save();break;
case 0:break;
default:cout<<"选择错误,请您重新选择!"<<endl;
}
}
while(a!=0);
}
//
//派生类teach_admini_staff(教师兼行政人员)
class teach_admini_staff:public teacher,public admini_staff
{
public:
void input(int n_number);
void output();
friend class teach_admi_manager;
protected:
};
/
//派生类teach_admini_staff(教师兼行政人员)的输入函数input的实现
void teach_admini_staff::input(int n_number)
{
number=n_number; //编号需要检测唯一性
cout<<"输入姓名:";cin>>name;
cout<<"输入性别:";cin>>gender;
cout<<"输入年龄:";cin>>age;
cout<<"输入系部:";cin>>department;
cout<<"输入专业:";cin>>major;
cout<<"输入教师职称:";cin>>title_1;
cout<<"输入政治面貌:";cin>>poli_status;
cout<<"输入行政人员职称:";cin>>title_2;
}
//派生类teach_admini_staff(教师兼行政人员)的输出函数output的实现
void teach_admini_staff::output()
{
cout<<"编号:"<<number<<" 姓名:"<<name<<" 性别:"<<gender<<" 年龄:"<<age<<" 系部:"<<department<<" 专业:"<<major<<" 教师职称:"<<title_1<<" 政治面貌:"<<poli_status<<" 行政人员职称:"<<title_2<<endl;
}
//
//教师兼行政人员的管理类teach_admi_manager,综合各项功能
class teach_admi_manager
{
public:
int add();
int search();
void show();
void edit();
void dele();
void statis();
void save();
void init();
private:
FILE *fp4;
int count4=0;
teach_admini_staff TAS[N];
};
//教师兼行政人员的管理类teach_admi_manager各项功能的实现
int teach_admi_manager::add() //添加add()函数
{
int i,nu;
teach_admini_staff tas;
if(count4==N)
{
cout<<"教师兼行政人员信息库已满,无法添加,请删除部分教师兼行政人员信息后重试!"<<endl;
return 0;
}
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count4;i++)
{
if(TAS[i].number==nu)
{
cout<<"您输入的编号与教师兼行政人员信息库内的编号存在重复,添加失败!"<<endl;
return 0;
}
}
tas.input(nu); TAS[count4]=tas; count4++;
cout<<"添加成功!"<<endl;
return 1;
}
int teach_admi_manager::search() //查询search()函数
{
int choice;
cout<<"请选择查找方式:"<<endl;
cout<<"1:按编号查找"<<endl;
cout<<"2:按姓名查找"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,nu;
cout<<"请输入编号:" <<endl;cin>>nu;
for(i=0;i<count4;i++)
{
if(TAS[i].number==nu) break;
}
if(i==count4) cout<<"该编号不存在!"<<endl;
else TAS[i].output();
return 1;
}
case 2:
{
int i; string na;
cout<<"请输入姓名:" <<endl;cin>>na;
for(i=0;i<count4;i++)
{
if(TAS[i].name==na) break;
}
if(i==count4) cout<<"该姓名不存在!"<<endl;
else TAS[i].output();
return 1;
}
}
}
void teach_admi_manager::show() //显示show()函数
{
int i;
if(count4==0) cout<<"教师兼行政人员信息库为空!"<<endl;
else
{
for(i=0;i<count4;i++)
{
TAS[i].output();
}
}
}
void teach_admi_manager::edit() //编辑edit()函数
{
int i,nu;
teach_admini_staff tas;
cout<<"请输入需要编辑的教师兼行政人员的编号:"<<endl;cin>>nu;
for(i=0;i<count4;i++)
{
if(TAS[i].number==nu)
break;
}
if(i==count4)
cout<<"该编号不存在!"<<endl;
else
{
cout<<"输入修改后的信息,编号不能改:"<<endl;
tas.input(nu);
TAS[i]=tas;
cout<<"编辑成功!"<<endl;
}
}
void teach_admi_manager::dele() //删除dele()函数
{
int i,nu;
cout<<"请输入需要删除的教师兼行政人员的编号:"<<endl;cin>>nu;
for(i=0;i<count4;i++)
{
if(TAS[i].number==nu)
break;
}
if(i==count4)
cout<<"该编号不存在!"<<endl;
else
{
for(;i<count4-1;i++)
{
TAS[i]=TAS[i+1];
}
count4--;
cout<<"删除成功!"<<endl;
}
}
void teach_admi_manager::statis() //统计statis()函数
{
int choice;
cout<<"请选择统计方式:"<<endl;
cout<<"1、按年龄统计"<<endl;
cout<<"2、统计总人数以及男性和女性人数" <<endl;
cin>>choice;
switch(choice)
{
case 1:
{
int i,a,num=0;
cout<<"请输入您需要统计的教师兼行政人员的年龄:"<<endl; cin>>a;
for(i=0;i<count4;i++)
{
if(TAS[i].age==a)
num++;
}
cout<<a<<"岁的教师兼行政人员人数为:"<<num<<"人"<<endl;
break;
}
case 2:
{
int i,m_num=0,f_num=0;
cout<<"教师兼行政人员总人数为:"<<count4<<"人"<<endl;
for(i=0;i<count4;i++)
{
if(strcmp(TAS[i].gender,"男")==0)
m_num++;
else
f_num++;
}
cout<<"教师兼行政人员男性人数为:"<<m_num<<"人"<<endl;
cout<<"教师兼行政人员女性人数为:"<<f_num<<"人"<<endl;
break;
}
}
}
void teach_admi_manager::save() //保存save()函数
{
int i;
//文件四 teach_admini_stafffile.txt
fp4 = fopen("teach_admini_stafffile.txt", "w");
for(i=0;i<count4;i++)
fprintf(fp4,"%d %s %s %d %s %s %s %s %s",TAS[count4].number,TAS[count4].name,TAS[count4].gender,TAS[count4].age,TAS[count4].department,TAS[count4].major,TAS[count4].title_1,TAS[count4].poli_status,TAS[count4].title_2);
fclose(fp4);
}
void teach_admi_manager::init() //读取init()函数
{
//文件四 teach_admini_stafffile.txt
if((fp4 = fopen("teach_admini_stafffile.txt", "r")) == NULL)
cout << "不能打开文件teach_admini_stafffile.txt" << endl;
else
{
while(!feof(fp4))
{
fscanf(fp4,"%d %s %s %d %s %s %s %s %s",&TAS[count4].number,TAS[count4].name,TAS[count4].gender,&TAS[count4].age,TAS[count4].department,TAS[count4].major,TAS[count4].title_1,TAS[count4].poli_status,TAS[count4].title_2);
count4++;
}
}
fclose(fp4);
}
/
void teach_admi_mune(teach_admi_manager tam)
{
int a=99;
tam.init();
do
{
cout<<endl<<endl;
cout<<"教师兼行政人员信息管理子系统"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cout<<"*温馨提示:当您使用添加或编辑或删除功能后,记得使用保存功能,以确保相关操作被子系统记录! *"<<endl;
cout<<"*请输入您的选择: *"<<endl;
cout<<"*1:添加 *"<<endl;
cout<<"*2;查询 *"<<endl;
cout<<"*3:显示 *"<<endl;
cout<<"*4:编辑 *"<<endl;
cout<<"*5:删除 *"<<endl;
cout<<"*6:统计 *"<<endl;
cout<<"*7;保存 *"<<endl;
cout<<"*0:退出子系统 *"<<endl;
cout<<"**********************************************************************************************************" <<endl;
cin>>a;
switch(a)
{
case 1:tam.add();break;
case 2:tam.search();break;
case 3:tam.show();break;
case 4:tam.edit();break;
case 5:tam.dele();break;
case 6:tam.statis();break;
case 7:tam.save();break;
case 0:break;
default:cout<<"选择错误,请您重新选择!"<<endl;
}
}
while(a!=0);
}
//一级菜单函数
void menu()
{
cout<<endl<<endl;
cout<<"高校人员管理系统"<<endl;
cout<<"**********************************************************************************************************" << endl;
cout << "*请输入您的选择: *" << endl;
cout << "*1:教师信息管理 *" << endl;
cout << "*2:实验员信息管理 *" << endl;
cout << "*3:行政人员信息管理 *" << endl;
cout << "*4:教师兼行政人员信息管理 *" << endl;
cout << "*0:退出系统 *" << endl;
cout<<"**********************************************************************************************************" << endl;
}
//主函数
int main()
{
int choice;
tea_manager TM;
lab_tech_manager LTM;
admi_manager AM;
teach_admi_manager TAM;
while(1)
{
menu();
cin >> choice;
switch(choice)
{
case 1:tea_mune(TM);break;
case 2:lab_tech_mune(LTM);break;
case 3:admi_mune(AM);break;
case 4:teach_admi_mune(TAM);break;
case 0:cout<<"谢谢使用高校人员管理系统!"<<endl;exit(0);break; //退出系统
default:cout<<"选择错误,请您重新选择!"<<endl;
}
}
return 0;
}
到了这里,关于高校人员信息管理系统(C++版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!