• Python期末复习题:面向对象


    Python期末复习题:面向对象

    一、编写银行员工类BankEmployee

    编写银行员工类BankEmployee,要求:1.银行员工类的属性包括姓名name,工号num,工资salary

    2.姓名name和工号num设置为私有属性,并将salay设置为默认参数3000。

    测试输入:张飞

    007

    预期输出:

    张飞领到这个月工资3000

    请根据上述测试数据的输入输出情况,完善下面的代码:

    class BankEmployee():
    
     #        请在此处添加代码         #
    
     # *************begin************#
    
    
    
    
    
     # **************end*************#
    
    
    
    def main():
    
        name = input()
    
        num = input()
    
        bankemployee = BankEmployee(name,num)
    
        bankemployee.get_salary()
    
    
    
    if __name__=="__main__":
    
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    class BankEmployee():
        def __init__(self, name, num):
            self.__name = name
            self.__num = num
            self.salary = 3000
            
        def get_salary(self):
            print(f"{self.__name}领到这个月工资{self.salary}")
    
    def main():
    
        name = input()
    
        num = input()
    
        bankemployee = BankEmployee(name,num)
    
        bankemployee.get_salary()
    
    
    
    if __name__=="__main__":
    
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    运行的结果是:

    张飞
    007
    张飞领到这个月工资3000
    
    • 1
    • 2
    • 3

    二、编写一个银行柜员类BankTeller

    在完成第1题的基础上,编写一个银行柜员类BankTeller,继承BankEmployee类,要求:

    1.完善BankEmployee类,对私有属性name和num添加set方法和get方法以实现对私有属性的设置和获取

    2.对工号的合法性进行检验,要求工号以字母s开头,如s678是合法工号,678不是合法工号

    3.继承BankEmployee类,定义银行柜员类BankTeller类,其name属性和num属性和父类BankEmployee类相同,属性salary默认参数为2000.

    测试输入:

    张飞

    007

    预期输出:

    工号以s开头

    张飞领到这个月工资2000

    工号以s开头

    张飞 None

    测试输入:

    赵云

    s009

    预期输出:

    赵云领到这个月工资2000

    赵云 s009

    请根据上述测试数据,完善下述程序代码:

    class BankEmployee():
    
        def __init__(self,name="",num="",salary=2000): 
    
            self.__name = name
    
            self.__num = num
    
            self.salary = salary
    
        def get_salary(self): #定义领工资方法get_salary()
    
            print("%s领到这个月工资%d"%(self.__name,self.salary))
    
        # 请在此处添加代码对name和num设置set/get方法 #
    
         # *************   begin   ************#
    
       
    
         # **************  end   *************#
    
    
    
      
    
    class BankTeller(BankEmployee):
    
     #        请在此处添加代码         #
    
     # *************begin************#
    
    
    
                 
    
     # **************end*************#
    
            
    
    def main():
    
        bankteller = BankTeller()
    
        name = input()
    
        num = input()
    
        bankteller.set_name(name)
    
        bankteller.set_num(num)
    
        bankteller.get_salary()
    
        print(bankteller.get_name(),bankteller.get_num())
    
        
    
    if __name__=="__main__":
    
        main()
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    class BankEmployee():
    
        def __init__(self,name="",num="",salary=2000): 
    
            self.__name = name
    
            self.__num = num
    
            self.salary = salary
    
        def get_salary(self): #定义领工资方法get_salary()
    
            print("%s领到这个月工资%d"%(self.__name,self.salary))
    
        def get_name(self):
            return self.__name
        
        def set_name(self, name):
            self.__name = name
            
        def get_num(self):
            return self.__num
        
        def set_num(self, num):
            self.__num = num
    
    
    class BankTeller(BankEmployee):
        def set_num(self, num):
            if num[0] != 's':
                print("工号以s开头")
                self.__num = ''
            else:
                self.__num = num
        
        def get_num(self):
            if self.__num == '' or self.__num[0] != 's':
                print("工号以s开头")
                return None
            return self.__num
            
    
    def main():
    
        bankteller = BankTeller()
    
        name = input()
    
        num = input()
    
        bankteller.set_name(name)
    
        bankteller.set_num(num)
    
        bankteller.get_salary()
    
        print(bankteller.get_name(),bankteller.get_num())
    
        
    
    if __name__=="__main__":
    
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63

    运行的结果是:

    张飞
    007
    工号以s开头
    张飞领到这个月工资2000
    工号以s开头
    张飞 None
    
    赵云
    s009
    赵云领到这个月工资2000
    赵云 s009
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    2023年7月京东手机行业品牌销售排行榜(京东数据分析软件)
    C++ STL迭代器失效问题
    适用于 Linux 的 Windows 子系统获得新的“镜像”网络模式
    1.12 - 指令
    OTT营销之风正盛,商家到底该怎么投?
    用hadoop-eclipse-plugins-2.6.0来配置hadoop-3.3.6
    【PAT(甲级)】1056 Mice and Rice
    Cesium学习六:使用entity绘制ellipsoid
    $概率DP$
    python接口自动化封装导出excel方法和读写excel数据
  • 原文地址:https://blog.csdn.net/qq_52417436/article/details/128028694