这是题目,代码如下:
#include
#include
using namespace std;
class People
{
public:
People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday);
virtual void show()=0;
protected:
string name,sex,NO,IDNO,Birthday;
};
class Student:virtual public People
{
public:
Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO);
void show();
protected:
int ClassNO;
};
class Teacher:virtual public People
{
public:
Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department);
void show();
protected:
string principalship,Department;
};
class Graduate:virtual public Student
{
public:
Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser);
void show();
protected:
string Subject;
Teacher Teacheradviser;
};
class TA:public Graduate,public Teacher
{
public:
TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department);
void show();
};
People::People(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday)
:NO(NO),name(name),sex(sex),IDNO(IDNO),Birthday(Birthday){}
Student::Student(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO)
:People(name,sex,NO,IDNO,Birthday),ClassNO(ClassNO){}
Teacher::Teacher(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,const string&principalship,const string&Department)
:People(name,sex,NO,IDNO,Birthday),principalship(principalship),Department(Department){}
Graduate::Graduate(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser)
:Student(name,sex,NO,IDNO,Birthday,ClassNO),Subject(Subject),Teacheradviser(Teacheradviser){}
TA::TA(const string&NO,const string&name,const string&sex,const string&IDNO,const string&Birthday,int ClassNO,const string&Subject,const Teacher&Teacheradviser,const string&principalship,const string&Department)
:Graduate(name,sex,NO,IDNO,Birthday,ClassNO,Subject,Teacheradviser),Teacher(name,sex,NO,IDNO,Birthday,principalship,Department){}
void Student::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<endl;
}
void Teacher::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"principalship:"<<principalship<<"Department:"<<Department<<endl;
}
void Graduate::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<"Subject:"<<Subject<<"Teacheradviser:"<<Teacheradviser<<endl;
}
void TA::show()
{
cout<<" name: "<<name<<" sex: "<<sex<<" NO: "<<NO<<" IDNO: "<<IDNO<<"Birthday:"<<Birthday<<"ClassNO:"<<ClassNO<<"Subject:"<<Subject<<"Teacheradviser:"<<Teacheradviser<<"principalship:"<<principalship<<"Department:"<<Department<<endl;
}
int main()
{
Student p1("张三","男","1","532931199001150031","1990-01-15",3);
Teacher p2("李四","女","2","532931199001150041","1990-01-15","班主任","英语部");
Graduate p3("王五","男","3","532931199001150051","1990-01-15",3,"计科","李四");
TA p4("赵六","男","4","532931199001150061","1990-01-15",3,"计科","李四","助教","信息部");
p1.show();
p2.show();
p3.show();
p4.show();
return 0;
}