编写一个学生和教师数据输入和显示程序。其中,学生数据有编号、姓名、班级和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类Person;然后设计类Person的派生类:学生类 Student 和教师类 Teacher;编写一个主函数,通过定义student、teacher的对象,完成相应功能。
时间: 2023-05-13 09:07:37 浏览: 834
好的,这是一个典型的面向对象编程问题。我们可以先定义一个基类Person,包含编号和姓名两个成员变量,以及对应的输入和输出函数。然后再定义两个派生类Student和Teacher,分别添加班级/成绩和职称/部门两个成员变量,以及对应的输入和输出函数。最后在主函数中定义对象并调用相应的函数即可。
以下是示例代码:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
int id;
string name;
virtual void input() {
cout << "请输入编号和姓名:";
cin >> id >> name;
}
virtual void output() {
cout << "编号:" << id << ",姓名:" << name << endl;
}
};
class Student : public Person {
public:
int classNo;
double score;
void input() {
Person::input();
cout << "请输入班级和成绩:";
cin >> classNo >> score;
}
void output() {
Person::output();
cout << "班级:" << classNo << ",成绩:" << score << endl;
}
};
class Teacher : public Person {
public:
string title;
string department;
void input() {
Person::input();
cout << "请输入职称和部门:";
cin >> title >> department;
}
void output() {
Person::output();
cout << "职称:" << title << ",部门:" << department << endl;
}
};
int main() {
Student stu;
Teacher tea;
stu.input();
stu.output();
tea.input();
tea.output();
return 0;
}
```
注意,这里使用了虚函数,以便在派生类中重写基类的输入和输出函数。另外,为了简化代码,这里没有添加错误处理和界面设计等功能,实际应用中需要根据具体需求进行修改。
阅读全文