编写一个学生和教师数据输入和显示程序,学生数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师数据操作类teacher的基类。用C++实现
时间: 2024-06-10 20:06:34 浏览: 109
好的,这是一个与技术相关的问题。我将尝试回答它。
你可以按照以下步骤来编写这个程序:
1.先定义一个类person,包含编号和姓名两个数据成员。编写相应的构造函数和析构函数。
2.根据person类定义两个派生类student和teacher,它们分别包含班号和成绩、职称和部门两个数据成员。同样,编写相应的构造函数和析构函数。
3.在主函数中,先输入学生和教师的人数,再创建相应的对象数组。
4.通过继承,将编号和姓名的输入和输出放在person类中,而学生和教师的其他数据输入和输出操作放在相应派生类中。
5.最后,程序通过循环分别输入每个学生和教师的数据,并输出它们的全部信息。
下面是C++代码的示例:
```
#include <iostream>
#include <string>
using namespace std;
class person {
public:
person() {}
person(int i, string n) : id(i), name(n) {}
~person() {}
virtual void input() {
cout << "请输入编号:";
cin >> id;
cout << "请输入姓名:";
cin >> name;
}
virtual void output() {
cout << "编号:" << id << endl;
cout << "姓名:" << name << endl;
}
protected:
int id;
string name;
};
class student : public person {
public:
student() {}
student(int i, string n, int c, int s) : person(i, n), classNum(c), score(s) {}
~student() {}
void input() {
person::input();
cout << "请输入班号:";
cin >> classNum;
cout << "请输入成绩:";
cin >> score;
}
void output() {
person::output();
cout << "班号:" << classNum << endl;
cout << "成绩:" << score << endl;
}
private:
int classNum;
int score;
};
class teacher : public person {
public:
teacher() {}
teacher(int i, string n, string t, string d) : person(i, n), title(t), department(d) {}
~teacher() {}
void input() {
person::input();
cout << "请输入职称:";
cin >> title;
cout << "请输入部门:";
cin >> department;
}
void output() {
person::output();
cout << "职称:" << title << endl;
cout << "部门:" << department << endl;
}
private:
string title;
string department;
};
int main() {
int num1, num2;
cout << "请输入学生人数和教师人数:";
cin >> num1 >> num2;
student* s = new student[num1];
teacher* t = new teacher[num2];
for (int i = 0; i < num1; i++) {
cout << "输入第" << i+1 << "个学生的信息:" << endl;
s[i].input();
}
for (int i = 0; i < num2; i++) {
cout << "输入第" << i+1 << "个教师的信息:" << endl;
t[i].input();
}
for (int i = 0; i < num1; i++) {
cout << "输出第" << i+1 << "个学生的信息:" << endl;
s[i].output();
}
for (int i = 0; i < num2; i++) {
cout << "输出第" << i+1 << "个教师的信息:" << endl;
t[i].output();
}
delete[] s;
delete[] t;
return 0;
}
```
阅读全文
相关推荐













