利用继承性与派生类来管理学生和教师档案。假设要管理下述几类人员,相关信息如下: (1)teacher(教师)类:姓名、性别、年龄、职称、担任课程; (2)student(学生)类:姓名、性别、年龄、学号、系别; (3)gradstudent(研究生)类:姓名、性别、年龄、学号、系别、导师; 要求每个类只设立构造函数以及显示类对象数据的成员函数。编写主函数,说明有关类对象,并对其类成员函数进行简单使用。用c++作答
时间: 2023-07-04 14:20:25 浏览: 124
以下是利用继承性与派生类来管理学生和教师档案的c++代码:
```c++
#include <iostream>
#include <string>
using namespace std;
// 基类 Person
class Person {
protected:
string name; // 姓名
string gender; // 性别
int age; // 年龄
public:
Person(string n, string g, int a): name(n), gender(g), age(a) {}
void showInfo() {
cout << "姓名:" << name << endl;
cout << "性别:" << gender << endl;
cout << "年龄:" << age << endl;
}
};
// 派生类 Teacher
class Teacher: public Person {
private:
string jobTitle; // 职称
string course; // 担任课程
public:
Teacher(string n, string g, int a, string jt, string c):
Person(n, g, a), jobTitle(jt), course(c) {}
void showInfo() {
Person::showInfo();
cout << "职称:" << jobTitle << endl;
cout << "担任课程:" << course << endl;
}
};
// 派生类 Student
class Student: public Person {
private:
string studentID; // 学号
string department; // 系别
public:
Student(string n, string g, int a, string sid, string dept):
Person(n, g, a), studentID(sid), department(dept) {}
void showInfo() {
Person::showInfo();
cout << "学号:" << studentID << endl;
cout << "系别:" << department << endl;
}
};
// 派生类 GradStudent
class GradStudent: public Student {
private:
string tutor; // 导师
public:
GradStudent(string n, string g, int a, string sid, string dept, string t):
Student(n, g, a, sid, dept), tutor(t) {}
void showInfo() {
Student::showInfo();
cout << "导师:" << tutor << endl;
}
};
int main() {
Teacher t("张三", "男", 35, "教授", "高等数学");
Student s("李四", "女", 20, "20191001", "计算机科学与技术");
GradStudent gs("王五", "男", 25, "20181001", "软件工程", "赵六");
cout << "---教师信息---" << endl;
t.showInfo();
cout << endl;
cout << "---学生信息---" << endl;
s.showInfo();
cout << endl;
cout << "---研究生信息---" << endl;
gs.showInfo();
cout << endl;
return 0;
}
```
输出结果如下:
```
---教师信息---
姓名:张三
性别:男
年龄:35
职称:教授
担任课程:高等数学
---学生信息---
姓名:李四
性别:女
年龄:20
学号:20191001
系别:计算机科学与技术
---研究生信息---
姓名:王五
性别:男
年龄:25
学号:20181001
系别:软件工程
导师:赵六
```
阅读全文