设计一个大学教师和学生管理程序,教师包
第三大题 设计一个大学教师和学生管理程序,教师包括编号、姓名、职称和教研室数据的输入输出。大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算机平均分;研究生包括编号、姓名、性别、班号、指导教师和研究方法数据输入输出;博士后数据的输入输出博士后既是教师也是研究生。
要求:
输入并输出一个教师,一个大学生和一个博士后的数据。
设计:
设计一个person类,它包括编号和姓名的输入输出,从它派生一个teacher类用于满足教师数据的操作,再从它派生一个student类,增加性别和班号的输入输出,然后从student类派生出大学生类unstudent和研究生类graduate。分别实现大学生和研究生数据的操作,最后由graduate类和teacher类派生出博士后类postdoctor,这些类的继承关系即类层次如图:
由于postdoctor类从graduate类和teacher类派生,而graduate类和teacher类都是从person类派生的,为解决二义性将teacher类和student类从person类的继承改为虚继承。
#include "iostream.h"
#include "iomanip.h"
class person
{
public:
void input();
void print()
{
cout<<setw(10)<<"num"<<setw(10)<<"name"<<endl;
cout<<setw(10)<<num<<setw(10)<<name<<endl;
}
private:
int num;
int name;
};
void person::input()
{
cout<<"please num:";
cin>>num;
cout<<"please name:";
cin>>name;
return;
}
class teacher:virtual public person
{
public:
void input()
{