(1)编写一个学生和教师相关数据输入和显示程序。设计三个类 person, student 和 teacher 类,其中 student 和 teacher 是由 person 类派生出来的。学生(student)数据有学号、姓名、性别、年龄、班级号和期末三门功课总分;教师(teacher)数据有职工号、姓名、性别、年龄、职称和系别。在主程序中,定义两个学生和两个教师,从键盘输入他们相关的数据,并将输入数据输出显示在屏幕上。(提示:person 类有两个公有成员函数:void input();输入学生或教师的姓名、性别和年龄;显示输出函数 void display();显示学生和教师的姓名、性别和年龄。该类中有三个私有数据成员:姓名 char name[20]、性别和年龄。Person 类定义已经给出,请设计其他两个类和主函数。 (2)(1)中Student 类和 Teacher 类共同派生出一个类 Onjobpostgraduate,表示在职研究生,写出该派生类的构造函数及类定义,为避免二义性,用虚基类的方法。在 main 函数中定义一个派生类对象。
#include<iostream>
using namespace std;
class person {
public:
void input()
{ cout<<" 编号:"; cin>>no;
cout<<" 姓名: "; cin>>name;
}
void display()
{ cout<<" 编号:"<<no<<endl;
cout<<" 姓名: "<<name<<endl;
}
private:
int no;
char name[10];
};
class student:public person{
public:
void input()
{ person::input();
cout<<" 班号:";
cin>>depart;
cout<<" 成绩:";
cin>>degree;
}
void display()
{ person::disp();
cout<<" 班号:"<<depart<<endl;
cout<<" 成绩:"<<degree<<endl;
}
private:
char depart;
int degree;
};
class teacher:public person{
private:
char prof;
char depart;
public:
void input()
{ person::input();
cout<<" 职称:";
cin>>prof;
cout<<" 部门:";
cin>>depart;
}
void display()
{ person::display();
cout<<" 职称:"<<prof<<endl;
cout<<" 部门:"<<depart<<endl;
}
};
int main()
{ student s1;
teacher t1;
cout<<" 输入一个学生数据:\n";
s1.input();
cout<<" 输入一个教师数据:\n";
t1.input();
cout<<" 显示一个学生数据:\n";
s1.display();
cout<<" 显示一个教师数据:\n";
t1.display();
return 0;
}