一个教学系统至少有学生和教师两种类型的人员,假设教师的数据有教师编号、姓名、年龄、性别、职称和系别,学生的数据有学号、姓名、年龄、性别、班级和语文、数学、英语三门课程的成绩。编程完成学生和教师档案数据的输入和显示。要求如下: 设计三个类Person、Teacher、Student,Person是Teacher和Student的基类,具有此二类共有的数据成员姓名、年龄、性别,并具有输入和显示这些数据的成员函数;Teacher类继承了Person类的功能,并增加对教师编号、职称和系别等数据成员进行输入和显示的成员函数。按同样的方法完善Student类的设计。
时间: 2023-07-10 09:36:36 浏览: 112
好的,我理解了你的问题。下面是一个可能的实现:
```python
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def input_info(self):
self.name = input("请输入姓名:")
self.age = input("请输入年龄:")
self.gender = input("请输入性别:")
def print_info(self):
print("姓名:", self.name)
print("年龄:", self.age)
print("性别:", self.gender)
class Teacher(Person):
def __init__(self, name, age, gender):
super().__init__(name, age, gender)
self.teacher_id = None
self.title = None
self.department = None
def input_info(self):
super().input_info()
self.teacher_id = input("请输入教师编号:")
self.title = input("请输入职称:")
self.department = input("请输入系别:")
def print_info(self):
super().print_info()
print("教师编号:", self.teacher_id)
print("职称:", self.title)
print("系别:", self.department)
class Student(Person):
def __init__(self, name, age, gender):
super().__init__(name, age, gender)
self.student_id = None
self.cls = None
self.chinese = None
self.math = None
self.english = None
def input_info(self):
super().input_info()
self.student_id = input("请输入学号:")
self.cls = input("请输入班级:")
self.chinese = input("请输入语文成绩:")
self.math = input("请输入数学成绩:")
self.english = input("请输入英语成绩:")
def print_info(self):
super().print_info()
print("学号:", self.student_id)
print("班级:", self.cls)
print("语文成绩:", self.chinese)
print("数学成绩:", self.math)
print("英语成绩:", self.english)
```
在上面的代码中,我们定义了三个类:`Person`、`Teacher` 和 `Student`。其中,`Teacher` 和 `Student` 都是 `Person` 的子类,继承了它的 `name`、`age` 和 `gender` 属性。同时,`Teacher` 和 `Student` 分别定义了自己的属性,如 `teacher_id`、`title`、`department`、`student_id`、`cls`、`chinese`、`math` 和 `english`。这些属性都可以通过 `input_info` 函数进行输入,通过 `print_info` 函数进行输出。
下面是一个简单的示例程序,演示如何使用上面的类:
```python
t = Teacher("张三", 35, "男")
t.input_info()
t.print_info()
s = Student("李四", 18, "女")
s.input_info()
s.print_info()
```
运行上面的程序,你可以输入教师和学生的信息并打印出来。注意,这里我们没有在 `Teacher` 和 `Student` 类中定义 `input_info` 和 `print_info` 函数的参数,而是在这些函数中使用 `input` 和 `print` 函数来进行输入和输出。这样做的好处是可以让用户自己输入想要的信息,而不是强制要求参数的格式。
阅读全文