编写一个学生和教师数据输入和显示程序,要求: (1)学生数据有编号、姓名、班号和成绩。 (2)教师数据有编号、姓名、职称和部门。 (3)将编号、姓名的输入和显示设计成类person,作为学生数据操作类student和教师数据操作类teacher的基类。用c++语言表示
时间: 2024-06-10 12:04:26 浏览: 147
以下是一个简单的实现:
```c
#include <stdio.h>
#include <string.h>
// 定义基类 Person
typedef struct {
char id[20]; // 编号
char name[100]; // 姓名
} Person;
// 定义子类 Student,继承自 Person
typedef struct {
Person person; // 继承基类 Person,包含编号和姓名
int class_id; // 班号
int score; // 成绩
} Student;
// 定义子类 Teacher,继承自 Person
typedef struct {
Person person; // 继承基类 Person,包含编号和姓名
char title[100];// 职称
char dept[100]; // 部门
} Teacher;
// 输入学生信息
void input_student(Student *p) {
printf("请输入学生编号、姓名、班号和成绩:");
scanf("%s%s%d%d", p->person.id, p->person.name, &p->class_id, &p->score);
}
// 显示学生信息
void show_student(const Student *p) {
printf("编号:%s,姓名:%s,班号:%d,成绩:%d\n", p->person.id, p->person.name, p->class_id, p->score);
}
// 输入教师信息
void input_teacher(Teacher *p) {
printf("请输入教师编号、姓名、职称和部门:");
scanf("%s%s%s%s", p->person.id, p->person.name, p->title, p->dept);
}
// 显示教师信息
void show_teacher(const Teacher *p) {
printf("编号:%s,姓名:%s,职称:%s,部门:%s\n", p->person.id, p->person.name, p->title, p->dept);
}
int main() {
Student stu;
input_student(&stu);
show_student(&stu);
Teacher tch;
input_teacher(&tch);
show_teacher(&tch);
return 0;
}
```
这段代码定义了一个基类 `Person`,包含编号和姓名两个属性;另外定义了两个子类 `Student` 和 `Teacher`,它们分别继承了基类 `Person`,并分别增加了若干个属性。`input_student()` 和 `input_teacher()` 函数用于输入学生和教师信息,`show_student()` 和 `show_teacher()` 函数用于显示学生和教师信息。这里的实现方式是在输入和显示函数里面进行操作,也可以把操作封装成类的成员函数。
阅读全文