【c++课设】高校教师信息管理系统

头文件

#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文件保存内容


你可能感兴趣的:(C++,数据结构)