(选做)从实验6中的people(人员)类派生出student(学生)类,添加属性:班号char classNO[7];从people类派生出teacher(教师)类,添加属性:职务char principalship[11]、部门char department[21]。从student类
时间: 2023-06-13 09:05:19 浏览: 271
和teacher类派生出graduate(研究生)类,添加属性:导师char tutor[21]、研究方向char researchArea[31]。
代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
class people {
protected:
char name[21];
int age;
char sex;
public:
void setPeople(char n[], int a, char s) {
strcpy(name, n);
age = a;
sex = s;
}
void showPeople() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
}
};
class student : public people {
private:
char classNO[7];
public:
void setStudent(char n[], int a, char s, char c[]) {
setPeople(n, a, s);
strcpy(classNO, c);
}
void showStudent() {
showPeople();
cout << "班号:" << classNO << endl;
}
};
class teacher : public people {
private:
char principalship[11];
char department[21];
public:
void setTeacher(char n[], int a, char s, char p[], char d[]) {
setPeople(n, a, s);
strcpy(principalship, p);
strcpy(department, d);
}
void showTeacher() {
showPeople();
cout << "职务:" << principalship << endl;
cout << "部门:" << department << endl;
}
};
class graduateStudent : public student, public teacher {
private:
char tutor[21];
char researchArea[31];
public:
void setGraduateStudent(char n[], int a, char s, char c[], char p[], char d[], char t[], char r[]) {
setStudent(n, a, s, c);
setTeacher(n, a, s, p, d);
strcpy(tutor, t);
strcpy(researchArea, r);
}
void showGraduateStudent() {
showPeople();
cout << "班号:" << classNO << endl;
cout << "职务:" << principalship << endl;
cout << "部门:" << department << endl;
cout << "导师:" << tutor << endl;
cout << "研究方向:" << researchArea << endl;
}
};
int main() {
graduateStudent gs;
gs.setGraduateStudent("张三", 25, 'M', "C123", "教授", "计算机科学系", "李四", "机器学习");
gs.showGraduateStudent();
return 0;
}
```
输出结果为:
```
姓名:张三
年龄:25
性别:M
班号:C123
职务:教授
部门:计算机科学系
导师:李四
研究方向:机器学习
```