设计Person基类及其派生的学生和教师子类并测试
首先,我们需要创建一个基类Person,包括姓名、性别和年龄等属性以及相关的方法。然后,从Person类派生出学生类Student和教师类Teacher,分别添加学号、年级、专业等属性以及必要的方法。最后,编写一个主函数来测试这些类的功能。
以下是简洁的C代码:
```c
#include <stdio.h>
#include <string.h>
// 基类Person
typedef struct Person {
char name[50];
char gender;
int age;
} Person;
void print_person_info(Person p) {
printf("姓名:%s,性别:%c,年龄:%d
", p.name, p.gender, p.age);
}
// 派生类Student
typedef struct Student {
Person base;
int student_id;
int grade;
char major[50];
} Student;
void print_student_info(Student s) {
print_person_info((Person)s);
printf("学号:%d,年级:%d,专业:%s
", s.student_id, s.grade, s.major);
}
// 派生类Teacher
typedef struct Teacher {
Person base;
int teacher_id;
char title[50];
float salary;
} Teacher;
void print_teacher_info(Teacher t) {
print_person_info((Person)t);
printf("教师号:%d,职称:%s,工资:%.2f
", t.teacher_id, t.title, t.salary);
}
int main() {
Student student = {"张三", 'M', 20, "计算机科学与技术"};
print_student_info(student);
Teacher teacher = {"李四", 'F', "副教授", 8000.0};
print_teacher_info(teacher);
return 0;
}
```
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。