本关任务:编写一个输出学生和教师数据的程序,学生数据有编号、姓名、年龄、班号和成绩;教师数据有编号、姓名、年龄、职称和部门。要求声明一个person类,并作为学生数据操作类student和教师数据操作类teacher的基类。 (1)定义Person类 int number1,age; //编号、年龄 char name[10];//姓名 Person() ://默认构造函数 Person(int i,int j,const char*p) : //带参构造函数 void disp()://数据输出 (2)定义Student类 int lesson; //班号 char grade; //成绩 Student(int i,int j,const char*p, int k,char a) : //构造函数 void disp(): //数据输出 (3)定义Teacher类 char job[10],workplace[30]; // 职称、部门 Teacher(int i,int j,charp,const chara,const char*b) ://构造函数 void disp() ://数据输出
时间: 2024-01-24 16:01:49 浏览: 103
好的,根据您的要求,以下是一个简单的程序示例,以C++语言为例:
```c++
#include <iostream>
#include <string.h>
using namespace std;
class Person { // Person类为基类,包含编号、姓名、年龄等属性
public:
int number1;
int age;
char name[10];
Person() {} // 默认构造函数
Person(int i, int j, const char *p) { // 带参构造函数
number1 = i;
age = j;
strcpy(name, p);
}
virtual void disp() { // 数据输出
cout << "编号:" << number1 << endl;
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
}
};
class Student : public Person { // Student类继承自Person类,增加班号和成绩属性
public:
int lesson;
char grade;
Student(int i, int j, const char *p, int k, char a) : Person(i, j, p) { // 构造函数
lesson = k;
grade = a;
}
virtual void disp() { // 数据输出
cout << "学生信息:" << endl;
Person::disp();
cout << "班号:" << lesson << endl;
cout << "成绩:" << grade << endl;
}
};
class Teacher : public Person { // Teacher类继承自Person类,增加职称和部门属性
public:
char job[10];
char workplace[30];
Teacher(int i, int j, const char *p, const char *a, const char *b) : Person(i, j, p) { // 构造函数
strcpy(job, a);
strcpy(workplace, b);
}
virtual void disp() { // 数据输出
cout << "教师信息:" << endl;
Person::disp();
cout << "职称:" << job << endl;
cout << "部门:" << workplace << endl;
}
};
int main() {
Person *p[3];
p[0] = new Student(1, 18, "张三", 1, 'A');
p[1] = new Teacher(1001, 35, "李老师", "教授", "计算机科学与技术");
p[2] = new Student(2, 19, "李四", 2, 'B');
for (int i = 0; i < 3; i++) {
p[i]->disp();
cout << endl;
}
return 0;
}
```
这个程序定义了一个Person类,作为学生数据操作类Student和教师数据操作类Teacher的基类。其中,Student类和Teacher类都继承自Person类,并增加了各自特有的属性。在主函数中,我们创建了三个指向Person类对象的指针,分别指向一个Student对象、一个Teacher对象和另一个Student对象。通过指针调用disp()方法输出各自的属性信息。
需要注意的是,我们在Person类中将disp()方法声明为虚函数,这是因为在多态的情况下,通过指向基类对象的指针调用虚函数可以实现动态绑定,从而调用正确的派生类中的函数。
希望这个程序可以帮助您完成本关任务。如果您有任何问题,欢迎随时问我。
阅读全文