请用大一计算机学生视角用c++代码完成一下问题:1、编写一个学生和教师数据输入和显示程序,学生的数据有编号、姓名、班号和成绩,教师数据有编号、姓名、职称和部门。要求将编号、姓名输入和显示设计成一个类person,并作为学生数据操作类student和教师类teacher的基类。2、修改上一题程序,要求使用带参数的构造函数赋初值;
时间: 2024-04-01 18:38:41 浏览: 85
好的,我来回答你的问题。
以下是一个大一计算机学生可能会编写的C++代码,实现了你所提出的问题,并且使用了带参数的构造函数赋初值:
```cpp
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
int id;
string name;
void input() {
cout << "请输入编号:";
cin >> id;
cout << "请输入姓名:";
cin >> name;
}
void display() {
cout << "编号:" << id << ",姓名:" << name << endl;
}
};
class Student : public Person {
public:
int classNo;
float score;
Student(int id, string name, int classNo, float score) {
this->id = id;
this->name = name;
this->classNo = classNo;
this->score = score;
}
void input() {
Person::input();
cout << "请输入班号:";
cin >> classNo;
cout << "请输入成绩:";
cin >> score;
}
void display() {
Person::display();
cout << "班号:" << classNo << ",成绩:" << score << endl;
}
};
class Teacher : public Person {
public:
string title;
string department;
Teacher(int id, string name, string title, string department) {
this->id = id;
this->name = name;
this->title = title;
this->department = department;
}
void input() {
Person::input();
cout << "请输入职称:";
cin >> title;
cout << "请输入部门:";
cin >> department;
}
void display() {
Person::display();
cout << "职称:" << title << ",部门:" << department << endl;
}
};
int main() {
Student s(1, "张三", 1, 98.5);
Teacher t(2, "李四", "教授", "计算机系");
cout << "学生信息:" << endl;
s.display();
cout << "教师信息:" << endl;
t.display();
return 0;
}
```
这段代码实现了一个学生和教师数据输入和显示程序,使用了类的继承和带参数的构造函数赋初值。在程序中,我们定义了一个`Person`类作为学生和教师数据操作类`Student`和`Teacher`的基类。`Person`类包含编号和姓名两个属性,`Student`类和`Teacher`类各自增加了自己的属性班号和成绩、职称和部门,并分别实现了输入和显示的功能。
在`Student`类和`Teacher`类的构造函数中,我们使用了带参数的构造函数赋初值的方式,通过传入初始值来初始化对象的属性。
在`main`函数中,我们先分别创建一个`Student`对象`s`和一个`Teacher`对象`t`,并调用它们的`display`函数,以实现学生和教师数据的显示。
总体上,这段代码简单易懂,符合大一计算机学生的水平,同时也满足了问题的要求。
阅读全文