学校类:
使用一个名为name的实例变量记录学校名字
使用一个名为addr的实例变量记录学校地址
使用一个名为students的列表记录所有实例化后的学生对象
使用一个名为staffs的列表记录所有实例化后的教师对象
该类的构造方法有两个形参分别是name和addr,在构造方法中完成name和addr两个实例变量的初始化
定义一个名为enroll的方法,该方法有一个形参为学生对象该方法可以将传入的学生对象存储到students列表中
定义一个名为hire的方法,该方法有一个形参为教师对象。该方法可以将传入的学生对象存储到staffs列表中
定义一个名为print_info的方法,该方法可以打印学校的信息(具体信息显示规则见输出样例)
定义一个名为print_staffs的方法,该方法可以打印所有学生的信息(具体信息显示规则见输出样例)
定义一个名为print_students的方法,该方法可以打印所有教师的信息(具体信息显示规则见输出样例)
成员类:
成员类为教师类和学生类的基类
使用一个名为name的实例变量记录成员名字
使用一个名为age的实例变量记录成员年龄
使用一个名为sex的实例变量记录成员性别
定义一个名为tell的方法,在成员类中该方法不需要实现具体的代码
该类的构造方法有三个形参分别是name、age、sex。在构造方法中对实例变量name、age、sex进行初始化
教师类:
教师类为继承成员类的子类
除了基类中的实例变量,该类还有两个额外的实例变量
定义一个为salary的实例变量记录教师的薪水
定义一个为course的实例变量记录教师所教授的课程
该类的构造方法有五个形参分别是name、age、sex、salary、course。在构造方法中对五个实例变量进行初始化
重写基类中的tell方法,打印教师相关信息(具体信息显示规则见输出样例)
学生类:
学生类为继承成员类的子类
除了基类中的实例变量,该类还有两个额外的实例变量
使用一个名为stu_id的实例变量记录学生的学号
使用一个名为grade的实例变量记录学生的成绩
该类的构造方法有五个形参分别是name、age、sex、stu_id、grade。在构造方法中对五个实例变量进行初始化
重写基类中的tell方法,打印学生相关信息(具体信息显示规则见输出样例)
#学习类
class School:
def __init__(self,name,addr,students,staffs):
self.name=name
self.addr=addr
self.students=students
self.staffs=staffs
def enroll(self):
self.students.append(self.)
#成员类
class Member:
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def tell(self):
return self.name,self.age,self.sex
# 教师类
class Teacher(Member):
def __init__(self, name, age,sex, salary ,course):
super().__init__(name,age,sex)
self.salary=salary
self.course=course
def tell(self):
#学生类
class Student(Member):
def __init__(self, name, age, sex, stu_id, grade):
super().__init__(name, age, sex)
self.stu_id = stu_id
self.grade = grade
def tell(self):
return print()
# 输入待注册的学生数量
stu_num = int(input())
# 学生列表
stu_list = list()
for i in range(stu_num):
# 获取学生的相关信息,属性与属性之间用空格间隔
stu_name, stu_age, stu_sex, stu_id, stu_grade = input().split(" ")
stu_age, stu_grade = map(int, (stu_age, stu_grade))
stu_list.append([stu_name, stu_age, stu_sex, stu_id, stu_grade])
# 教师列表
teach_list = list()
teach_num = int(input())
for i in range(teach_num):
# 获取教师的相关信息,属性与属性之间用空格间隔
teach_name, teach_age, teach_sex, teach_salary, teach_course = input().split(" ")
teach_age, teach_salary = map(int, (teach_age, teach_salary))
teach_list.append([teach_name, teach_age, teach_sex, teach_salary, teach_course])
#实例化学校
school = School(name="学校", addr="地址")
for item in stu_list:
stu_name, stu_age, stu_sex, stu_id, stu_grade = item
#实例化学生
s1 = Student(name=stu_name, age=stu_age, sex=stu_sex, stu_id=stu_id, grade=stu_grade)
# 注册学生
school.enroll(s1)
for item in teach_list:
teach_name, teach_age, teach_sex, teach_salary, teach_course = item
#实例化老师
t1 = Teacher(name=teach_name, age=teach_age, sex=teach_sex, salary=teach_salary, course=teach_course)
# 雇用老师
school.hire(t1)
#打印学校信息
school.print_info()
#打印学生信息
school.print_stus()
#打印教师信息
school.print_staffs()
输入:
1
xiaom1 9 女 20211102 78
1
xiaom 48 女 1300 JAVA程序设计
输出:
学校的地址为地址
学生xiaom1的信息: 年龄-9 性别-女 学号-20211102 成绩-78
教师xiaom的信息: 年龄-48 性别-女 薪水-1300 课程-JAVA程序设计