Fishc_2022 发表于 2023-10-25 10:16:36

1

zhoutianshu12 发表于 2023-10-23 14:35:10

1

天才星星 发表于 2023-10-22 12:22:45

0:
继承、组合、覆盖
1:
灵活,不用再重新编辑方法
2:
可以
3:
是不是鸭子不重要,只要它能游泳,能表现出和鸭子相似的行为

4:
增强了内聚

5:
不是

兰之心 发表于 2023-10-21 21:42:45

01

Caligulasick 发表于 2023-10-21 15:25:42

poi

Vivivvvi 发表于 2023-10-20 23:09:36

0.同一个符号、函数或对象在不同的场景下具有不同的作用效果
1.一是增加程序的灵活性,二是增加程序的可扩展性
2.可以
3.When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
4.低耦合
5.不是

从哪开始学啊 发表于 2023-10-13 13:25:35

0

Twelve- 发表于 2023-10-12 14:02:58

1

鑫xx 发表于 2023-10-11 11:50:30

0

Ethan惊天 发表于 2023-10-10 20:43:28

1

Owenxu1991 发表于 2023-10-10 09:27:50

111

重新学习 发表于 2023-10-7 15:59:46

答案

Rachel01 发表于 2023-10-5 15:06:30

no

FRDX 发表于 2023-10-4 19:34:20

0.重写
1.
2.可以
3.

ywj100 发表于 2023-10-4 13:00:28

wew

Snxsky 发表于 2023-10-4 08:33:19

11

Alfred_pf 发表于 2023-10-3 18:41:44

问答题:
0. 通过在类外定义使用类方法的函数。
1. 相同的函数,但可以面向不同的对象输出不同的结果。
2. 可以
3.
4. 降低耦合
5. 不属于

十号的猫 发表于 2023-9-30 15:09:50

1

yjr1124 发表于 2023-9-30 13:53:53

0,同一个函数在面对不同类型的对象能体现出相似但不同的功能
1,我认为主要是提高代码的简洁性,降低学习的难度
2.可以
3.
4.我认为是增强了内聚
5.不是,他只不过是利用了函数的基本特性


0.就这样吧
class PubInfoMixin:# 公共信息库
    uid = 10000
    pi_dict = {}


class Employee(PubInfoMixin):# 普通员工类
   
    iic = 0#类的实例化次数

    def __init__(self, name, job, grade, year, uid):
      self.name = name
      self.job = job
      self.grade = grade
      self.year = year
      self.uid = uid
      Employee.iic += 1
   
    def __del__(self):
      Employee.iic -= 1
      

    def get_uid(self):
      return self.uid
   
    def get_name(self):
      return self.name
   
    def get_job(self):
      return self.job
   
    def get_grade(self):
      return self.grade
   
    def get_year(self):
      return self.year
   
    def salary(self):
      return 3000 + 500*self.grade +50*self.year
   


class Teamleader(PubInfoMixin):
   
    iic = 0

    def __init__(self, name, job, grade, year, uid):
      self.name = name
      self.job = job
      self.grade = grade
      self.year = year
      self.uid = uid
      Teamleader.iic += 1
   
    def __del__(self):
      Teamleader.iic -= 1

    def get_uid(self):
      return self.uid
   
    def get_name(self):
      return self.name
   
    def get_job(self):
      return self.job
   
    def get_grade(self):
      return self.grade
   
    def get_year(self):
      return self.year
   
    def salary(self):
      return 4000 + 800*self.grade + 100*self.year



class Manager(PubInfoMixin):

    iic = 0

    def __init__(self, name, job, grade, year, uid):
      self.name = name
      self.job = job
      self.grade = grade
      self.year = year
      self.uid = uid
      Manager.iic += 1
   
    def __del__(self):
      Manager.iic -= 1
      

    def get_uid(self):
      return self.uid
   
    def get_name(self):
      return self.name
   
    def get_job(self):
      return self.job
   
    def get_grade(self):
      return self.grade
   
    def get_year(self):
      return self.year
   
    def salary(self):
      return 5000 + 1000*(self.grade + self.year)



def luru():
    name = input("姓名")
    job = input("职位(E.普通职员;T.组长;M.经理):")
    year = int(input("工龄"))
    grade = int(input("级别"))
    while job :
      if job == 'E':
            PubInfoMixin.pi_dict = Employee(name, job, grade, year, PubInfoMixin.uid)
            PubInfoMixin.uid += 1
            break
      elif job == 'T':
            PubInfoMixin.pi_dict = Teamleader(name, job, grade, year, PubInfoMixin.uid)
            PubInfoMixin.uid += 1
            break
      elif job == 'M':
            PubInfoMixin.pi_dict = Manager(name, job, grade, year, PubInfoMixin.uid)
            PubInfoMixin.uid += 1
            break
      else:
            job = input("指令错误,请重新输入\n职位(E.普通职员;T.组长;M.经理):")

def chaxun():
    ins = input("1.员工查询;2.职位查询")
    ifins == '1':
      uid = int(input("请输入工号:"))
      ygdx = PubInfoMixin.pi_dict.get(uid)
      if ygdx:
            print("姓名:",ygdx.name)
            print("职位:",ygdx.job)
            print("级别:",ygdx.grade)
            print("工龄:",ygdx.year)
            print("薪资:",ygdx.salary())
      else:
            print("该工号不存在!")
               
    elif ins == '2':
            job_ = input("职位(E.普通职员;T.组长;M.经理):")
            if job_ == 'E':
                print('目前普通职员共有',Employee.iic,'人', sep='')
            elif job_ == 'T':
                print('目前组长共有',Teamleader.iic,'人', sep='')
            elif job_ == 'M':
                print('目前经理共有',Manager.iic,'人', sep='')
            else:
                print("指令错误,请重新输入指令")

    else:
      print("指令错误,请重新输入指令")


def shengji():
    _id = int(input("请输入工号"))
    dx = PubInfoMixin.pi_dict.get(_id)
    if dx:
      xz_1 = dx.salary()
      print(dx.name, "工号:", dx.uid, "当前职位:", dx.job, dx.grade, "当前薪资", xz_1, sep='')
      _ = int(input("请输入要增加的级数:"))
      dx.grade += _
      print("升级成功!")
      print(dx.name, "工号:", dx.uid, "升级后职位:", dx.job, dx.grade, "升级后薪资", dx.salary(), '(',dx.salary()-xz_1 , ')', sep='')
    else:
      print("无此工号!")


def jiangji():
    _id = int(input("请输入工号"))
    dx = PubInfoMixin.pi_dict.get(_id)
    if dx:
      xz_1 = dx.salary()
      print(dx.name, "工号:", dx.uid, "当前职位:", dx.job, dx.grade, "当前薪资", xz_1, sep='')
      _ = int(input("请输入要减少的级数:"))
      dx.grade += _
      print("降级成功!")
      print(dx.name, "工号:", dx.uid, "降级后职位:", dx.job, dx.grade, "降级后薪资", dx.salary(), '(', xz_1-dx.salary(), ')', sep='')
    else:
      print("无此工号!")



def main():

    ins = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
    while ins != '5':
      if ins == '1':
            luru()
      elif ins == '2':
            chaxun()
      elif ins == '3':
            shengji()
      elif ins == '4':
            jiangji()
      else:
            ins = input("请重新输入指令:")
      ins = input('1.录入;2.查询;3.升级;4.降级;5.退出:')


main()

panwei0774 发表于 2023-9-28 21:45:34

查看
页: 20 21 22 23 24 25 26 27 28 29 [30] 31 32 33 34 35 36 37 38 39
查看完整版本: 第063讲:类和对象(VI)| 课后测试题及答案