设计一个高校人员管理程序。首先设计一个基类Person(10分),包含编号、姓名、性别数据成员以及相关的成员函数,由它派生出教师类(10分)包括编号、姓名、性别、职称和工作学院数据的输入输出;再由Person类派生出Student类(10分),Student类派生出本科生类和研究生学生类,其中本科生类(10分)包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出并计算平均分;研究生类(10分)包括编号编号、姓名、性别、研究方向、导师数据的输入输出
时间: 2023-06-15 14:07:31 浏览: 81
下面是一个基于Python的高校人员管理程序的示例代码。其中包含了Person、Teacher、Student、Undergraduate、Graduate五个类,每个类都有自己的属性和方法。
```python
class Person:
def __init__(self, id, name, gender):
self.id = id
self.name = name
self.gender = gender
def show(self):
print("编号:", self.id)
print("姓名:", self.name)
print("性别:", self.gender)
class Teacher(Person):
def __init__(self, id, name, gender, title, department):
super().__init__(id, name, gender)
self.title = title
self.department = department
def show(self):
super().show()
print("职称:", self.title)
print("工作学院:", self.department)
class Student(Person):
def __init__(self, id, name, gender, classno):
super().__init__(id, name, gender)
self.classno = classno
def show(self):
super().show()
print("班号:", self.classno)
class Undergraduate(Student):
def __init__(self, id, name, gender, classno, english, math, data_structure):
super().__init__(id, name, gender, classno)
self.english = english
self.math = math
self.data_structure = data_structure
def show(self):
super().show()
print("英语成绩:", self.english)
print("高等数学成绩:", self.math)
print("数据结构成绩:", self.data_structure)
def average(self):
return (self.english + self.math + self.data_structure) / 3
class Graduate(Student):
def __init__(self, id, name, gender, classno, research_direction, tutor):
super().__init__(id, name, gender, classno)
self.research_direction = research_direction
self.tutor = tutor
def show(self):
super().show()
print("研究方向:", self.research_direction)
print("导师:", self.tutor)
```
这个程序的基类是Person类,包含了编号、姓名、性别三个属性,以及一个show方法来显示这些属性。教师类(Teacher)和学生类(Student)都继承自Person类,并添加了一些新的属性,如职称和工作学院,或班号等。
本科生类(Undergraduate)和研究生类(Graduate)都继承自Student类,并添加了各自特有的属性和方法,如英语、高等数学、数据结构成绩和计算平均分的方法,或研究方向和导师等。
这个程序可以通过创建不同的对象,来管理高校人员的信息,如下所示:
```python
teacher = Teacher("001", "张三", "男", "教授", "计算机学院")
teacher.show()
undergraduate = Undergraduate("101", "李四", "男", "1901", 80, 90, 85)
undergraduate.show()
print("平均分:", undergraduate.average())
graduate = Graduate("201", "王五", "女", "2001", "人工智能", "赵六")
graduate.show()
```
这段代码创建了一个教师对象、一个本科生对象和一个研究生对象,并分别调用它们的show方法来显示它们的属性。其中本科生对象还调用了计算平均分的方法来显示平均分。
阅读全文