学校师生管理(继承)

请编写程序实现

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值