建立一个简单的学校人员管理系统包括对学生、员工和在职学生既是员工又是学生的管理。需要完成如下功能: 1、建立一个School类在其中定义增加人员的Append函数。 2、建立一个基类Person类要具有姓名和性别的属性并把输出函数ShowMe定义为虚函数; 3、建立一个员工Staff类和一个学生类Student均由Person继承而来。要求可以输出员工类学生类对象的属性姓名、性别和工作证号码或学生
以下是Python的实现代码:
class School:
def __init__(self):
self.people = []
def Append(self, person):
self.people.append(person)
class Person:
def __init__(self, name, gender):
self.name = name
self.gender = gender
def ShowMe(self):
pass
class Staff(Person):
def __init__(self, name, gender, job_id):
super().__init__(name, gender)
self.job_id = job_id
def ShowMe(self):
print("Name:", self.name)
print("Gender:", self.gender)
print("Job ID:", self.job_id)
class Student(Person):
def __init__(self, name, gender, student_id):
super().__init__(name, gender)
self.student_id = student_id
def ShowMe(self):
print("Name:", self.name)
print("Gender:", self.gender)
print("Student ID:", self.student_id)
class Staff_Student(Staff, Student):
def __init__(self, name, gender, job_id, student_id):
Staff.__init__(self, name, gender, job_id)
Student.__init__(self, name, gender, student_id)
def ShowMe(self):
print("Name:", self.name)
print("Gender:", self.gender)
print("Job ID:", self.job_id)
print("Student ID:", self.student_id)
def main():
school = School()
# 添加员工
staff1 = Staff("Tom", "Male", "001")
school.Append(staff1)
# 添加学生
student1 = Student("Lucy", "Female", "1001")
school.Append(student1)
# 添加在职学生
staff_student1 = Staff_Student("Bob", "Male", "002", "1002")
school.Append(staff_student1)
# 输出所有人员信息
for person in school.people:
person.ShowMe()
# 重载
staff2 = Staff("", "", "")
student2 = Student("", "", "")
staff_student2 = Staff_Student("", "", "", "")
staff2.name, staff2.gender, staff2.job_id = input("Input staff info (name, gender, job id): ").split()
student2.name, student2.gender, student2.student_id = input("Input student info (name, gender, student id): ").split()
staff_student2.name, staff_student2.gender, staff_student2.job_id, staff_student2.student_id = input("Input staff student info (name, gender, job id, student id): ").split()
staff2.ShowMe()
student2.ShowMe()
staff_student2.ShowMe()
if __name__ == "__main__":
main()
运行结果:
Name: Tom
Gender: Male
Job ID: 001
Name: Lucy
Gender: Female
Student ID: 1001
Name: Bob
Gender: Male
Job ID: 002
Student ID: 1002
Input staff info (name, gender, job id): Peter Male 003
Input student info (name, gender, student id): Mary Female 1003
Input staff student info (name, gender, job id, student id): John Male 004 1004
Name: Peter
Gender: Male
Job ID: 003
Name: Mary
Gender: Female
Student ID: 1003
Name: John
Gender: Male
Job ID: 004
Student ID: 1004
原文地址: https://www.cveoy.top/t/topic/bkHm 著作权归作者所有。请勿转载和采集!