编写一个学生和教师数据输入和显示程序(使用构造函数)。学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名的输入和显示设计成一个类person,并作为学生类student和教师类teacher的基类。
时间: 2023-06-15 17:06:35 浏览: 486
以下是一个可能的实现:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Person {
protected:
int id;
string name;
public:
Person() {}
Person(int id, string name) {
this->id = id;
this->name = name;
}
void input() {
cout << "请输入编号:";
cin >> id;
cout << "请输入姓名:";
cin >> name;
}
void display() {
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
}
};
class Student : public Person {
private:
int classNo;
double score;
public:
Student() {}
Student(int id, string name, int classNo, double score) : Person(id, name) {
this->classNo = classNo;
this->score = score;
}
void input() {
Person::input(); // 调用基类的input方法
cout << "请输入班号:";
cin >> classNo;
cout << "请输入成绩:";
cin >> score;
}
void display() {
Person::display(); // 调用基类的display方法
cout << "班号:" << classNo << endl;
cout << "成绩:" << score << endl;
}
};
class Teacher : public Person {
private:
string title;
string department;
public:
Teacher() {}
Teacher(int id, string name, string title, string department) : Person(id, name) {
this->title = title;
this->department = department;
}
void input() {
Person::input(); // 调用基类的input方法
cout << "请输入职称:";
cin >> title;
cout << "请输入部门:";
cin >> department;
}
void display() {
Person::display(); // 调用基类的display方法
cout << "职称:" << title << endl;
cout << "部门:" << department << endl;
}
};
int main() {
Student s;
s.input();
s.display();
Teacher t;
t.input();
t.display();
return 0;
}
```
在这个程序中,我们定义了一个基类`Person`,包含编号和姓名两个成员变量,以及输入和显示这两个方法。然后我们定义了两个派生类`Student`和`Teacher`,它们都继承自`Person`,分别增加了班号和成绩、职称和部门这两个成员变量,以及对应的输入和显示方法。在主函数中,我们分别创建一个学生对象`s`和一个教师对象`t`,并调用它们的输入和显示方法。
需要注意的是,在派生类中我们需要调用基类的构造函数来初始化基类的成员变量,以及调用基类的输入和显示方法来处理基类的部分。这些操作可以通过`Person::`和`this->`来实现。
阅读全文