头文件
#ifndef _HEADC_H
#define _HEADC_H
#include
#include
#include
#include
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<:";
}
void _add(Cteacher *teacher, int &t)//1教师添加信息
{
int number,age;
string name,sex,department,profession,position;
cout<<"添加信息->请输入:"<>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<<"输入性别错误,请重新输入!"<>flag;
if(1 == flag||2 == flag)
break;
else
cout<<"输入错误请重新输入!"<>nu;
if(find_nu(teacher,nu,t) < t)
teacher[find_nu(teacher,nu,t)].output();
else
cout<<"查无此人!"<>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
case 2://姓名查询
{
do
{
cout<<"请输入姓名!"<>na;
if(find_na(teacher,na,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
}
}
int find_nu(Cteacher teacher[], int _nu, int &t)//编号查询方式
{
int i;
for(i=0;i>score;
fa = find_nu(teacher,score,t);
if(fa>choice;
if(choice != 1)
break;
}
}
void add(Cteacher teacher[], int _fa)//编辑数据方式
{
int number=_fa+1,age;
string name,sex,department,profession,position;
cout<<"请重新输入:"<>name;
while(1)
{
cin>>sex;
if(sex=="M"||sex=="W")
{
cin>>age>>department>>profession>>position;
teacher[_fa].set(number,name,sex,age,department,profession,position);
break; }
else
cout<<"输入性别错误,请重新输入!"<>score;
de=find_nu(teacher,score,t);
if(de>choice1;
if(choice1 == 2)
{ cout<<"已退出!"<>qr;
if(qr==1)
{
cout<<"已删除!"<> number>> name>> sex>> age>> department>> profession>> position)
{
teacher[t].set(number,name,sex,age,department,profession,position);
++t;
}
return t;
fcin.close();
}
void closefile(Cteacher teacher[], int &t)//向文件中写入数据
{
int i,number,age;
string name,sex,department,profession,position;
ofstream fout("teacher.txt");
for(i=0;i> i;
switch (i)
{
case 1: _add(teacher,t); break;//添加功能
case 2: _query(teacher, t); break;//查询功能
case 3: _display(teacher, t); break;//显示功能
case 4: _edit(teacher, t); break;//编辑功能
case 5: _delete(teacher,t); break;//删除功能
case 6: _statistics(teacher,t); break;//统计功能
default : teacher_put(); goto loop;//退出功能
}
closefile(teacher,t);
}
loop:
cout<<"--------------------------------------------"<:";
}//主菜单
/*--------------------------添 加 数 据------------------------*/
void _add(Cassistant *assistant, int &t)
{
int number,age;
string name,sex,laboratory,position;
cout<<"添加信息->请输入:"<>name;
if(name=="0")
break;
cout<<"性别(M--man,W--woman):";
while(1)
{
cin>>sex;
if(sex == "M"||sex == "W")
{
cout<<"年龄:";
cin>>age;
cout<<"实验室:";
cin>>laboratory;
cout<<"职称:";
cin>>position;
assistant[t].set(number,name,sex,age,laboratory,position);
++t;
break;
}
else
cout<<"输入性别错误,请重新输入!"<>flag;
if(1 == flag||2 == flag)
break;
else
cout<<"输入错误请重新输入";
}
switch(flag)
{
case 1://编号查询
{
do
{
cout<<"请输入编号!"<>nu;
if(find_nu(assistant,nu,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
case 2://姓名查询
{
do
{
cout<<"请输入姓名!"<>na;
if(find_na(assistant,na,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
};
}//查询信息
/*------------使 用 编 号 查 询 数 据 方 式--------------------*/
int find_nu(Cassistant assistant[], int _nu, int &t)
{
int i;
for(i=0;i>score;
fa = find_nu(assistant,score,t);
if(fa>choice;
if(choice != 1)
break;
}
}//编辑功能
/*------------------------编 辑 数 据 方 式-----------------*/
void add(Cassistant assistant[], int _fa)
{
int number=_fa+1,age;
string name,sex,laboratory,position;
cout<<"请重新输入->实验员姓名,性别,年龄,实验室,职称"<>name;
while(1)
{
cin>>sex;
if(sex=="M"||sex=="W")
{
cin>>age>>laboratory>>position;
assistant[_fa].set(number,name,sex,age,laboratory,position);
break;
}
else
cout<<"输入性别错误,请重新输入!"<>score;
de=find_nu(assistant,score,t);
if(de>choice1;
if(choice1 == 2)
{
cout<<"已退出!"<>qr;
if(qr==1)
{
cout<<"已删除!"<> number>> name>> sex>> age>> laboratory>> position)
{
assistant[t].set(number,name,sex,age,laboratory,position);
++t;
}
return t;
fcin.close();
}//从文件中读入数据
/*--------------------------向 文 件 中 写 入 数 据-----------------------------*/
void closefile(Cassistant assistant[], int &t)
{
int i,number,age;
string name,sex,laboratory,position;
ofstream fout("assistant.txt");
for(i=0;i> i;
switch (i)
{
case 1: _add(assistant,t); break;//添加功能
case 2: _query(assistant, t); break;//查询功能
case 3: _display(assistant, t); break;//显示功能
case 4: _edit(assistant, t); break;//编辑功能
case 5: _delete(assistant,t); break;//删除功能
case 6: _statistics(assistant,t); break;//统计功能
default : assistant_put(); goto loop;//退出功能
}
closefile(assistant,t);
}
loop:
cout<<"--------------------------------------------"<请输入:"<>name;
if(name=="0")
break;
cout<<"性别(M--man,W--woman):";
while(1)
{
cin>>sex;
if(sex == "M"||sex == "W")
{
cout<<"年龄:";
cin>>age;
cout<<"政治面貌:";
cin>>politics;
cout<<"职称:";
cin>>position;
execution[t].set(number,name,sex,age,politics,position);
++t;
break;
}
else
cout<<"输入性别错误,请重新输入!"<>flag;
if(1 == flag||2 == flag)
break;
else
cout<<"输入错误请重新输入";
}
switch(flag)
{
case 1://编号查询
{
do
{
cout<<"请输入编号!"<>nu;
if(find_nu(execution,nu,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
case 2://姓名查询
{
do
{
cout<<"请输入姓名!"<>na;
if(find_na(execution,na,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
}
}//查询信息
/*-----------------使 用 编 号 查 询 数 据 方 式------------------*/
int find_nu(Cexecution execution[], int _nu, int &t)
{
int i;
for(i=0;i>score;
fa = find_nu(execution,score,t);
if(fa>choice;
if(choice != 1)
break;
}
}//编辑功能
/*---------------------------编 辑 数 据 方 式-----------*/
void add(Cexecution execution[], int _fa)
{
int number=_fa+1,age;
string name,sex,politics,position;
cout<<"请重新输入->姓名,性别,年龄,政治面貌,职称"<>name;
while(1)
{ cin>>sex;
if(sex == "M"||sex == "W")
{
cin>>age>>politics>>position;
execution[_fa].set(number,name,sex,age,politics,position);
break;
}
else
cout<<"输入性别错误,请重新输入!"<>score;
de=find_nu(execution,score,t);
if(de>choice1;
if(choice1 == 2)
{
cout<<"已退出!"<>qr;
if(qr==1)
{
number=0; name='0'; sex='0'; age=0; politics='0'; position='0';
execution[_fa].set(number,name,sex,age,politics,position);
}
if(qr==2)
cout<<"您已退出删除功能!"<> number>> name>> sex>> age>> politics>> position)
{
execution[t].set(number,name,sex,age,politics,position);
++t;
}
return t;
fcin.close();
}//从文件中读入数据
/*----------------------------向 文 件 中 写 入 数 据--------------------------*/
void closefile(Cexecution execution[], int &t)
{
int i,number,age;
string name,sex,politics,position;
ofstream fout("execution.txt");
for(i=0;i> i;
switch (i)
{
case 1: _add(execution,t); break;//添加功能
case 2: _query(execution, t); break;//查询功能
case 3: _display(execution, t); break;//显示功能
case 4: _edit(execution, t); break;//编辑功能
case 5: _delete(execution,t); break;//删除功能
case 6: _statistics(execution,t); break;//统计功能
default : execution_put(); goto loop;//退出功能
}
closefile(execution,t);
}
loop:
cout<<"--------------------------------------------"<:";
}
//主菜单
/*----------------------------添 加 数 据-------------------------*/
void _add(Ctea_exe *tea_exe, int &t)
{
int number,age;
string name,sex,politics,department,profession,position;
cout<<"添加信息->请输入:"<>name;
if(name == "0")
break;
cout<<"性别(M--man,W--woman):";
while(1)
{
cin>>sex;
if(sex == "M"||sex == "W")
{
cout<<"年龄:";
cin>>age;
cout<<"政治面貌:";
cin>>politics;
cout<<"系部:";
cin>>department;
cout<<"专业:";
cin>>profession;
cout<<"职称:";
cin>>position;
tea_exe[t].set(number,name,sex,age,politics,department,profession,position
);
++t;
break;
}
else
cout<<"输入性别错误,请重新输入!"<>flag;
if(1 == flag||2 == flag)
break;
else
cout<<"输入错误请重新输入!"<>nu;
if(find_nu(tea_exe,nu,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
case 2://姓名查询
{
do
{
cout<<"请输入姓名!"<>na;
if(find_na(tea_exe,na,t)>choice;
if(choice == 2)
break;
}while(choice == 1);
};break;
}
}//查询信息
/*--------------------使 用 编 号 查 询 数 据 方 式-----------------*/
int find_nu(Ctea_exe tea_exe[], int _nu, int &t)
{
int i;
for(i=0;i>score;
fa = find_nu(tea_exe,score,t);
if(fa>choice;
if(choice != 1)
break;
}
}//编辑功能
/*------------------------编 辑 数 据 方 式----------------*/
void add(Ctea_exe tea_exe[], int _fa)
{
int number=_fa+1,age;
string name,sex,politics,department,profession,position;
cout<<"请重新输入->姓名,性别,年龄,政治面貌,系部,专业,职称"<>name;
while(1)
{
cin>>sex;
if(sex=="M"||sex=="W")
{
cin>>age>>politics>>department>>profession>>position;
tea_exe[_fa].set(number,name,sex,age,politics,department,profession,position);
break;
}
else
cout<<"输入性别错误,请重新输入!"<>score;
de=find_nu(tea_exe,score,t);
if(de>choice1;
if(choice1 == 2)
{
cout<<"已退出!"<>qr;
if(qr==1)
{
cout<<"已删除!"<> number>> name>> sex>> age>> politics>> department>> profession>>
position)
{
tea_exe[t].set(number,name,sex,age,politics,department,profession,position
);
++t;
}
return t;
fcin.close();
}//从文件中读入数据
/*-----------------------向 文 件 中 写 入 数 据-----------------------*/
void closefile(Ctea_exe tea_exe[], int &t)
{
int i,number,age;
string name,sex,politics,department,profession,position;
ofstream fout("tea_exe.txt");
for(i=0;i> i;
switch (i)
{
case 1: _add(tea_exe,t); break;//添加功能
case 2: _query(tea_exe, t); break;//查询功能
case 3: _display(tea_exe, t); break;//显示功能
case 4: _edit(tea_exe, t); break;//编辑功能
case 5: _delete(tea_exe,t); break;//删除功能
case 6: _statistics(tea_exe,t); break;//统计功能
default : tea_exe_put(); goto loop;//退出功能
}
closefile(tea_exe,t);
}
loop:
cout<<"--------------------------------------------"<
#include"HEAD.h"
void statistics_all()//数据统计行数
{
statistics_teacher();
statistics_assistant();
statistics_execution();
statistics_tea_exe();
}
void muen()
{
cout<<"**********欢迎进入高校信息管理系统***********"<:";
}
int main()
{
int i;
while(1)
{ muen();
cin>>i;
switch(i)
{
case 1: teacher_manage(); break;//教师
case 2: assistant_manage(); break;//实验员
case 3: execution_manage(); break;//行政
case 4: tea_exe_manage(); break;//教师兼行政
case 5: statistics_all(); break;//统计
default :cout<<"欢迎再次使用!"<
需要在相同文件夹里建assistant.txt,education.txt,tea_exe.txt,teacher.txt四个txt文件保存内容