用类的组合技术,设计一个基本信息类、一个学生类、一个教师类。基本信息类包括姓名、性别、手机号、班级;学生类包括姓名、性别、手机号、班级、数学、语文和英语等成绩;教师类包括姓名、性别、手机号、班级、专业、教龄等。以上三个类必须包含构造函数,其他成员函数自行设计。主函数中,分别生成一个学生类和教师类对象,并调用成员函数。
时间: 2023-10-20 14:59:23 浏览: 24
好的,我来为您解答这个问题。
首先,我们需要设计一个基本信息类,包括姓名、性别、手机号和班级。代码如下:
```python
class BasicInfo:
def __init__(self, name, gender, phone, classroom):
self.name = name
self.gender = gender
self.phone = phone
self.classroom = classroom
```
接下来,我们需要设计一个学生类,继承基本信息类,并增加数学、语文和英语等成绩。代码如下:
```python
class Student(BasicInfo):
def __init__(self, name, gender, phone, classroom, math, chinese, english):
super().__init__(name, gender, phone, classroom)
self.math = math
self.chinese = chinese
self.english = english
def get_average_score(self):
return (self.math + self.chinese + self.english) / 3
```
最后,我们需要设计一个教师类,继承基本信息类,并增加专业和教龄等信息。代码如下:
```python
class Teacher(BasicInfo):
def __init__(self, name, gender, phone, classroom, major, teaching_years):
super().__init__(name, gender, phone, classroom)
self.major = major
self.teaching_years = teaching_years
def get_teacher_info(self):
return f"姓名:{self.name}\n性别:{self.gender}\n手机号:{self.phone}\n班级:{self.classroom}\n专业:{self.major}\n教龄:{self.teaching_years}年"
```
在主函数中,我们可以先创建一个学生对象和一个教师对象,然后调用它们的成员函数。代码如下:
```python
if __name__ == '__main__':
student = Student('小明', '男', '12345678901', '一年级一班', 90, 80, 70)
teacher = Teacher('张三', '男', '13987654321', '一年级一班', '数学', 5)
print(f"{student.name}的平均成绩为:{student.get_average_score()}")
print(teacher.get_teacher_info())
```
输出结果如下:
```
小明的平均成绩为:80.0
姓名:张三
性别:男
手机号:13987654321
班级:一年级一班
专业:数学
教龄:5年
```
这样就完成了题目要求,希望能够对您有所帮助。