请编写程序实现
SchoolMember 类
学校成员类SchoolMember
作为父类,具有所有人员的共有实例属性:姓名name
、年龄age
、性别sex
和类别type
。
该类包含下面几类实例方法:
- 构造方法:对属性进行初始化;
- 设置方法
register()
实现注册功能:- 如果类别是
教师
,则输出注册了一名教师:[XXX]
; - 否则输出
注册了一名学生:[XXX]
;
- 如果类别是
- 设置方法
info()
输出个人信息,格式如下;
----张伟的信息如下----
name 张伟
age 28
sex M
type 教师
salary 3000
course Python
----end----
Teacher 类
教师类Teacher
,继承学校成员类SchoolMember
,该类的要求如下:
- 重写构造方法,增加工资
salary
和课程course
两个属性; - 设置
teaching()
输出授课信息,格式为[XXX] 老师正在讲授[XXX]课程
。
Student 类
学生类Student
,继承学校成员类SchoolMember
,具体要求如下:
- 重写构造方法,增加专业
major
、学费tuition
和学费总额amount
三个属性,学费总额初始值为0; - 设置方法
pay_tuition()
输出学费缴纳信息,格式为学生[XXX]已经缴清学费[XXX]元
,同时更新学费总额,增加相应的已缴清学费的金额。 - 重写
info()
方法,输出我是[XXX]专业的学生
。
示例输出
注册了一名教师:[张伟]. ----张伟的信息如下---- name 张伟 age 28 sex M type 教师 salary 3000 course Python ----end---- 注册了一名学生:[李海涛]. 学生[李海涛]已经缴清学费[4000]元 我是 计算机 专业的学生 ----李海涛的信息如下---- name 李海涛 age 18 sex M type 学生 major 计算机 tuition 4000 amount 4000 ----end---- 注册了一名学生:[凤飞飞]. 学生[凤飞飞]已经缴清学费[4500]元 学校共有师生: 3 人 开除了[凤飞飞] 学校共有师生: 2 人 [张伟]老师正在讲授[Python]课程
# 请在此处编写代码
class SchoolMember:
def __init__(self,name,age,sex,type):
self.name=name
self.age=age
self.sex=sex
self.type=type
def register(self,type):
if(self.type=="教师"):
print(f"注册了一名教师:[{self.name}]")
else:
print(f"注册了一名学生:[{self.name}]")
def info(self):
print(f"----{self.name}的信息如下----")
print(f"name {self.name}")
print(f"age {self.age}")
print(f"sex {self.sex}")
print(f"type {self.type}")
class Teacher(SchoolMember):
def __init__(self,name,age,sex,type,salary,course):
super().__init__(name,age,sex,type)
self.salary=salary
self.course=course
def teaching(self):
print(f"[{self.name}]老师正在讲授[{self.course}]课程")
def info(self):
super().info()
print("salary",self.salary)
print("course",self.course)
print("----end----")
class Student(SchoolMember):
amount=0
def __init__(self,name,age,sex,type,major,tuition,amount):
super().__init__(name,age,sex,type)
self.major=major
self.tuition=tuition
self.amount=amount
def pay_tuition(self):
print(f"学生[{self.name}]已经缴纳学费[{self.tuition}]元")
def info(self):
print(f"我是{self.major}专业的学生")
super().info()
print("major",self.major)
print("tuition",self.tuition)
print("amount",self.amount)
print("----end----")
if __name__=="__main__":
t1=Teacher('张伟', 28, 'M', '教师', 3000, 'Python')
t1.register("教师")
t1.info()
s1=Student('李海涛', 18, 'M', '学生', '计算机', 4000,4000)
s1.pay_tuition()
s1.info()
s2=Student('凤飞飞', 19, 'F', '学生', '软件测试', 4500,0)
s2.register("学生")
s2.pay_tuition()
print('学校共有师生:3 人')
print(f"开除了[{s2.name}]")
print('学校共有师生:2 人')
t1.teaching()