头文件
#ifndef _HEADC_H
#define _HEADC_H
#include<iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
/*-------------------------------------共 有 类-------------------------------------*/
class CCommon//公有类
{
protected:
int number;//编号
string name;//姓名
string sex;//性别
int age;//年龄
};
/*------------------------教 师 类--------------------------------------*/
class Cteacher:
public CCommon//教师类
{
protected:
string department;//所在系部
string profession;//专业
string position;//职称
public:
void set(int _number,string _name,string _sex,int _age,string _department,string
_profession,string _position)
{
number = _number;
name = _name;
sex = _sex;
age = _age;
department = _department;
profession = _profession;
position = _position;
}//输入教师数据
void output();
~Cteacher()
{
}//析构函数
friend int find_nu(Cteacher teacher[], int _nu, int &t);
friend int find_na(Cteacher teacher[], string _na, int &t);
friend void add(Cteacher teacher[], int _fa);
friend void dele(Cteacher teacher[], int _fa);
friend void closefile(Cteacher teacher[] ,int &t);
friend void _statistics(Cteacher teacher[], int &t);
};
void teacher_manage();
/*----------------------------实 验 员 类-------------------------------------------*/
class Cassistant:public CCommon//实验员类
{
protected:
string laboratory;//所在实验室
string position;//职称
public:
void set(int _number,string _name,string _sex,int _age,string _laboratory,string
_position)
{
number = _number;
name = _name;
sex = _sex;
age = _age;
laboratory = _laboratory;
position = _position;
}//输入实验员数据
void output();
~Cassistant()
{
}//析构函数
friend int find_nu(Cassistant assistant[], int _nu, int &t);
friend int find_na(Cassistant assistant[], string _na, int &t);
friend void add(Cassistant assistant[], int _fa);
friend void dele(Cassistant assistant[], int _fa);
friend void closefile(Cassistant assistant[] ,int &t);
friend void _statistics(Cassistant assistant[], int &t);
};
void assistant_manage();
/*----------------------------行 政 人 员 类--------------------------------------------*/
class Cexecution:public CCommon//行政人员类
{
protected:
string politics;//政治面貌
string position;//职称
public:
void set(int _number,string _name,string _sex,int _age,string _politics,string
_position)
{
number = _number;
name = _name;
sex = _sex;
age = _age;
politics = _politics;
position = _position;
}//输入行政人员数据
void output();
~Cexecution()
{
}//析构函数
friend int find_nu(Cexecution execution[], int _nu, int &t);
friend int find_na(Cexecution execution[], string _na, int &t);
friend void add(Cexecution execution[], int _fa);
friend void dele(Cexecution execution[], int _fa);
friend void closefile(Cexecution execution[] ,int &t);
friend void _statistics(Cexecution execution[], int &t);
};
void execution_manage();
/*---------------------------行 政 人 员 兼 教 师 类-------------------------------------*/
class Ctea_exe:public CCommon//行政人员兼教师类
{
protected:
string politics;//政治面貌
string department;//所在系部
string profession;//专业
string position;//职称
public:
void set(int _number,string _name,string _sex,int _age,string _politics,string
_department,string _profession,string _position)
{
number = _number;
name = _name;
sex = _sex;
age = _age;
politics = _politics;
department = _department;
profession = _profession;
position = _position;
}//输入行政人员兼教师数据
void output();
~Ctea_exe()
{
}//析构函数
friend int find_nu(Ctea_exe tea_exe[], int _nu, int &t);
friend int find_na(Ctea_exe tea_exe[], string _na, int &t);
friend void add(Ctea_exe tea_exe[], int _fa);
friend void dele(Ctea_exe tea_exe[], int _fa);
friend void closefile(Ctea_exe tea_exe[] ,int &t);
friend void _statistics(Ctea_exe tea_exe[], int &t);
};
void tea_exe_manage();
/*---------------------------------统 计 总 人 数---------------------------------------*/
void statistics_all();//数据统计数
void statistics_teacher();
void statistics_assistant();
void statistics_execution();
void statistics_tea_exe();
void order();
const int Max = 100;//各人员总人数最大值
#endif
函数实现
#include "HEAD.h"
/*----------------------------教师类中的各个函数操作-----------------------*/
void Cteacher::output()//教师读出数据内容
{
cout<<number<<"\t"<<name<<"\t";
cout<<sex<<"\t"<<age<<"\t";
cout<<department<<"\t"<<profession<<"\t";
cout<<position<<endl;
}
void teacher_muen()//教师主菜单
{
cout<<endl;
cout<<"----------欢迎进入教师信息管理系统----------"<<endl;
cout<<" 1---添加信息, 2---查询信息"<<endl;
cout<<" 3---显示信息, 4---编辑信息"<<endl;
cout<<" 5---删除信息, 6---统计信息"<<endl;
cout<<" 7---退出"<<endl;
cout<<"--------------------------------------------"<<endl;
cout<<"请输入您的选择--->:";
}
void _add(Cteacher *teacher, int &t)//1教师添加信息
{
int number,age;
string name,sex,department,profession,position;
cout<<"添加信息->请输入:"<<endl;
while(1)
{
number=t+1;
cout<<"姓名(输入0结束输入)";
cin>>name;
if("0" == name)
break;
cout<<"性别(M--man,W--woman)";
while(1)
{
cin>>sex;
if(sex == "M"||sex == "W")
{
cout<<"年龄";
cin>>age;
cout<<"系部";
cin>>department;
cout<<"专业";
cin>>profession;
cout<<"职称";
cin>>position;
teacher[t].set(number,name,sex,age,department,profession,position);
++t;
break;
}
else
cout<<"输入性别错误,请重新输入!"<<endl;
}
}
}
void _query(Cteacher teacher[], int &t)//2查询信息
{
int choice;
int flag,nu;
string na;
cout<<"1---编号,2---姓名"<<endl;
while(1)
{
cin>>flag;
if(1 == flag||2 == flag)
break;
else
cout<<"输入错误请重新输入!"<<endl;
}
switch(flag)
{
case 1://编号查询
{
do
{
cout<<"请输入编号!"<<endl;
cin>>nu;
if(find_nu(teacher,nu,t) < t)
teacher[find_nu(teacher,nu,t)].output();
else
cout<<"查无此人!"<<endl;
cout<<"是否继续1是2否"<<endl;
cin>>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
case 2://姓名查询
{
do
{
cout<<"请输入姓名!"<<endl;
cin>>na;
if(find_na(teacher,na,t)<t)
teacher[ find_na(teacher,na,t) ].output();
else
cout<<"查无此人!"<<endl;
cout<<"是否继续1是2否"<<endl;
cin>>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
}
}
int find_nu(Cteacher teacher[], int _nu, int &t)//编号查询方式
{
int i;
for(i=0;i<t;i++)
if(teacher[i].number==_nu)
return i;
return t;
}
int find_na(Cteacher teacher[], string _na, int &t)//姓名查询方式
{
int i;
for(i=0;i<t;i++)
if(teacher[i].name==_na)
return i;
return t;
}
void _display(Cteacher teacher[], int &t)//3显示功能
{
int i;
cout<<endl;
cout<<"编号\t姓名\t性别\t年龄\t系部\t专业\t职称"<<endl;
for(i=0;i<t;i++)
teacher[i].output();
cout<<"--------------------------------------------"<<endl<<endl;
}
void _edit(Cteacher teacher[], int &t)//4编辑数据-
{
int score,fa