编写一个学生和教师数据输入和输出的程序。学生数据包括编号、姓名、班号和成绩;教师的数据含有编号、姓名、职称和部门。要求设计一个person类,作为学生数据操作类student和教师数据操作类teacher 的基类。
时间: 2024-05-24 09:11:05 浏览: 156
下面是一个 C++ 的示例代码,实现了上述要求:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
Person(int id, string name) : m_id(id), m_name(name) {}
virtual void output() = 0; // 纯虚函数
protected:
int m_id;
string m_name;
};
class Student : public Person {
public:
Student(int id, string name, int classNo, double score)
: Person(id, name), m_classNo(classNo), m_score(score) {}
void output() {
cout << "学生编号:" << m_id << endl;
cout << "学生姓名:" << m_name << endl;
cout << "班级编号:" << m_classNo << endl;
cout << "成绩:" << m_score << endl;
}
private:
int m_classNo;
double m_score;
};
class Teacher : public Person {
public:
Teacher(int id, string name, string title, string department)
: Person(id, name), m_title(title), m_department(department) {}
void output() {
cout << "教师编号:" << m_id << endl;
cout << "教师姓名:" << m_name << endl;
cout << "职称:" << m_title << endl;
cout << "所属部门:" << m_department << endl;
}
private:
string m_title;
string m_department;
};
int main() {
Person* student = new Student(1, "张三", 1, 90.5);
Person* teacher = new Teacher(1001, "李老师", "教授", "计算机科学与技术");
student->output();
teacher->output();
delete student;
delete teacher;
return 0;
}
```
这个程序中,`Person` 是一个抽象类,包含了编号和姓名两个公共成员变量,并且定义了一个纯虚函数 `output()`,用于输出对象的信息。`Student` 和 `Teacher` 都是 `Person` 的子类,分别添加了自己的成员变量和实现了 `output()` 函数。在 `main()` 函数中,我们使用指针来动态创建 `Student` 和 `Teacher` 对象,并且通过 `output()` 函数输出它们的信息。最后别忘了释放内存。
阅读全文