人员类的继承实训: (设计基类人 员类,数据成员为姓名和身份号,成员函数有输入数据和显示数据派生学生类,数据成员包括电话号码和C++成绩,成员函数有输入数据和显示数据设计学生地址类,数据成员包括地址和年龄,成员函数输入数据和显示数据由学生类和地址类派生学生成绩类,数据成员数学成绩和英语成绩,成员函数输入数据和显示数据职员类继承人员类,没有任何成员。) 要求如下: (1)设计人员类; (2)设计地址类; (3)由人员类派生学生类; (4)由人员类派生职员类; (5)由学生类和地址类派生出学生成绩类; (6)
时间: 2024-02-01 19:15:06 浏览: 72
设计如下:
```C++
#include <iostream>
#include <string>
using namespace std;
// 基类:人员类
class Person {
protected:
string name; // 姓名
string idNumber; // 身份号
public:
void input(); // 输入数据
void display(); // 显示数据
};
void Person::input() {
cout << "请输入姓名:";
cin >> name;
cout << "请输入身份号:";
cin >> idNumber;
}
void Person::display() {
cout << "姓名:" << name << endl;
cout << "身份号:" << idNumber << endl;
}
// 学生类
class Student : public Person {
private:
string phoneNumber; // 电话号码
int cppScore; // C++成绩
public:
void input(); // 输入数据
void display(); // 显示数据
};
void Student::input() {
Person::input();
cout << "请输入电话号码:";
cin >> phoneNumber;
cout << "请输入C++成绩:";
cin >> cppScore;
}
void Student::display() {
Person::display();
cout << "电话号码:" << phoneNumber << endl;
cout << "C++成绩:" << cppScore << endl;
}
// 地址类
class Address {
protected:
string address; // 地址
int age; // 年龄
public:
void input(); // 输入数据
void display(); // 显示数据
};
void Address::input() {
cout << "请输入地址:";
cin >> address;
cout << "请输入年龄:";
cin >> age;
}
void Address::display() {
cout << "地址:" << address << endl;
cout << "年龄:" << age << endl;
}
// 学生成绩类
class Score : public Student, public Address {
private:
int mathScore; // 数学成绩
int engScore; // 英语成绩
public:
void input(); // 输入数据
void display(); // 显示数据
};
void Score::input() {
Student::input();
Address::input();
cout << "请输入数学成绩:";
cin >> mathScore;
cout << "请输入英语成绩:";
cin >> engScore;
}
void Score::display() {
Student::display();
Address::display();
cout << "数学成绩:" << mathScore << endl;
cout << "英语成绩:" << engScore << endl;
}
// 职员类
class Staff : public Person {
};
int main() {
Score s;
s.input();
s.display();
return 0;
}
```
注意:在派生类中,需要调用基类的成员函数,可以使用“基类名::成员函数名”来调用。同时,派生类可以继承多个基类,语法为“class 派生类名 : 访问控制 基类名1, 访问控制 基类名2, …”
阅读全文