皮皮鑫不皮 发表于 2024-10-10 09:55:19

1请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

油条儿啊 发表于 2024-9-25 10:46:22

请回复您的答案^_^

-------- 问答题 --------

第 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 题的答案是:
不属于
-------- 动动手 --------

请将第 0 题的代码写在下方:

QBR 发表于 2024-9-25 10:00:02

请回复您的答案^_^
我图一时之快
-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

阿拉光 发表于 2024-9-16 11:39:25

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

凉亭少年 发表于 2024-9-15 14:10:00

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:来自同一类的不同实例对象拥有不同的属性和方法

第 1 题的答案是:同一方法在不同场景中有不同的效果

第 2 题的答案是:可以 ‘+’号在不同类型之前效果不同

第 3 题的答案是:如果它看起来像鸭子,游泳像鸭子,叫声像鸭子,那么它很可能就是一只鸭子

第 4 题的答案是:鸭子类型主要通过减少模块间的依赖关系来降低耦合度,同时通过鼓励单一职责原则间接促进了内聚性的提高。

第 5 题的答案是:no

-------- 动动手 --------

请将第 0 题的代码写在下方:

哈图 发表于 2024-9-12 22:59:23

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:
不同的场景有不同的作用
第 1 题的答案是:
一个函数可以实现多个功能,减少代码量
第 2 题的答案是:
这叫运算符的多态。
第 3 题的答案是:
不知道
第 4 题的答案是:
降低了耦合
第 5 题的答案是:
不是
-------- 动动手 --------

请将第 0 题的代码写在下方:

木耳一道 发表于 2024-9-10 20:43:11

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

zhjw0612 发表于 2024-9-10 20:24:53

看答案

小豆壳儿 发表于 2024-9-9 16:52:23

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

夏季的春秋 发表于 2024-9-9 13:20:03

请回复您的答案^_^
0、一个对象可以调用方法不同的用处
1、一个函数实现多个功能
2、可以
3、
4、增强了内聚
5、不是
-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

learner95 发表于 2024-9-9 08:21:24

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

剑来龙族悍刀行 发表于 2024-9-7 20:04:42

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

璨璨呀 发表于 2024-9-4 15:38:16

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:面对不同对象,一些函数的作用不同

第 1 题的答案是:

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:降低耦合

第 5 题的答案是:属于

-------- 动动手 --------

请将第 0 题的代码写在下方:
class Information:
   
    def __init__(self):
      self.names = []
      self.uids = []
      self.jobs = []
      self.grades = []
      self.years = []
    def get_name(self,name):
      self.names.append(name)
    def get_uid(self,uid):#工号
      self.uids.append(uid)
    def get_job(self,job):#职位
      self.jobs.append(job)
    def get_grade(self,grade):#级别
      self.grades.append(grade)
    def get_year(self,year):#工龄
      self.years.append(year)
    def salary(self,name):
      i = self.names.index(name)
      g = int(self.grades)
      j = self.jobs
      y = int(self.years)
      if j == 'E':
            s = 3000 + 500*g + 50*y
      elif j == 'T':
            s = 4000 + 800*g + 100*y
      elif j == 'M':
            s = 5000 + 1000*(g+y)
      return s

class Check(Information):
    def check_grade(self,job,grade):
      grade = int(grade)
      if job == 'E':
            while grade > 10:
                grade = int(input('该职位最高级别为10,请重新录入级别:'))
      elif job == 'T':
            while grade > 6:
                grade = int(input('该职位最高级别为6,请重新录入级别:'))
      elif job == 'M':
            while grade > 3:
                grade = int(input('该职位最高级别为3,请重新录入级别:'))
      return grade         
      
    def check_employee(self,u):
      if self.uids.count(u) == 0:
            print('该工号不存在!')
      else:
            i = self.uids.index(u)
            return i
    def check_job(self,j):
      if j == 'E':
            job = '普通员工'
      elif j == 'T':
            job = '组长'
      elif j == 'M':
            job = '经理'
      num = self.jobs.count(j)
      if num == 0:
            print(f'目前公司没有{job}')
      else:
            return job,num
            
   

class Function(Check,Information):
    def Input(self):
      name = input('姓名:')
      super().get_name(name)
      job = input('职位(E.普通员工;T.组长;M.经理):')
      super().get_job(job)
      year = input('工龄:')
      super().get_year(year)
      grade = input('级别:')
      grade = super().check_grade(job,grade)
      super().get_grade(grade)
      uid = 10000+len(self.names)-1
      super().get_uid(uid)
      s = super().salary(name)
      print(f'录入成功!姓名:{name},工号:{uid},薪资:{s}')
    def Inquiry(self):
      number = input('1.员工查询;2.职位查询:')
      if number == '1':
            u = int(input('请输入工号:'))
            i = super().check_employee(u)
            print(f'姓名:{self.names}\n职位:{self.jobs}')
            print(f'级别:{self.grades}\n工龄:{self.years}')
            print(f'薪资:{super().salary(self.names)}')
      if number == '2':
            j = input('职位(E.普通员工;T.组长;M.经理):')
            job,num = super().check_job(j)
            print(f'目前{job}共有{num}人:')
            for k in range(len(self.names)):
                if self.jobs == j:
                  print(f'{self.uids} - {self.names}')
    def upgrade(self):
      u = int(input('请输入工号:'))
      i = super().check_employee(u)
      n = self.names
      j = self.jobs
      g = self.grades
      s = super().salary(self.names)
      print(f'{n},工号:{self.uids},当前职位:{j}{g},当前薪资:{s}')
      add = int(input('请输入需要增加的级数:'))
      g += add
      if j == 'E' and g>10:
            self.jobs = 'T'
            self.grades = 1
      elif j == 'T' and g>6:
            self.jobs = 'M'
            self.grades = 1
      else:
            self.grades = g
      print('升级成功!')
      s = super().salary(self.names)
      print(f'{n},工号:{self.uids},当前职位:{self.jobs}{self.grades},当前薪资:{s}')

lovcpp 发表于 2024-9-2 17:43:29

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:继承和重写

第 1 题的答案是:对不同的对象采取不同的操作

第 2 题的答案是:可以

第 3 题的答案是:

第 4 题的答案是:降低了耦合度

第 5 题的答案是:不是

-------- 动动手 --------

请将第 0 题的代码写在下方:
class Member:
    def __init__(self,uid,name,job,year,grade):
      self.uid=uid
      self.name=name
      self.job=job
      self.year=year
      self.grade=grade
class Employee(Member):
    def __init__(self, uid, name, job, year, grade):
      super().__init__(uid, name, job, year, grade)
      while self.grade>10:
            self.grade=int(input('该职位最高级别为10,请重新录入级别:'))
    def salary(self):
      return 3000+500*self.grade+50*self.year
class Teamleader(Member):
    def __init__(self,uid, name, job, year, grade):
      super().__init__(uid, name, job, year, grade)
      while self.grade>6:
            self.grade=int(input('该职位最高级别为6,请重新录入级别:'))
    def salary(self):
      return 4000+800*self.grade+100*self.year
class Manager(Member):
    def __init__(self, uid, name, job, year, grade):
      super().__init__(uid, name, job, year, grade)
      while self.grade>3:
            self.grade=int(input('该职位最高级别为3,请重新录入级别:'))
    def salary(self):
      return 5000+1000*self.grade+1000*self.year

class Manage:
    def __init__(self):
      self.code=10000
      self.member={}
    def operate(self):
      order=int(input('1.录入;2.查询;3.升级;4.降级;5.退出'))
      while not order==5:
            if order==1:
                self.creat_member()
            if order==2:
                self.view()
            if order==3:
                self.upgrade()
            if order==4:
                self.demote()
            order = int(input('1.录入;2.查询;3.升级;4.降级;5.退出'))
    def entering(self,uid,name,job,year,grade):
      if job=='E':
            self.member=Employee(uid,name,job,year,grade)
      elif job=='T':
            self.member=Teamleader(uid,name,job,year,grade)
      elif job=='M':
            self.member=Manager(uid,name,job,year,grade)
    def creat_member(self):
      name=input('姓名:')
      uid=self.code
      self.code+=1
      job=input('职位(E.普通员工;T.组长;M.经理):')
      year=int(input('工龄:'))
      grade=int(input('级别:'))
      self.entering(uid,name,job,year,grade)
      print(f'录入成功!姓名:{name},工号:{uid},薪资:{self.member.salary()}')
    def view(self):
      order=input('1.员工查询;2.职位查询:')
      if order=='1':
            num=int(input('请输入工号:'))
            if num in self.member:
                print(f'姓名:{self.member.name}')
                print(f'职位:{self.member.job}')
                print(f'级别:{self.member.grade}')
                print(f'工龄:{self.member.year}')
                print(f'薪资:{self.member.salary()}')
            else:
                print('该员工号不存在!')
      elif order=='2':
            job=input('职位(E.普通员工;T.组长;M.经理):')
            count=0
            l=[]
            for each in self.member:
                if self.member.job==job:
                  count+=1
                  l.append(each)
            if job=='E':
                jobname='普通员工'
            elif job=='T':
                jobname = '组长'
            elif job=='M':
                jobname='经理'
            if count>0:
                print(f'目前{jobname}共有{count}人')
                for each in l:
                  print(f'{each}-{self.member.name}')
            else:
                print(f'目前公司没有{jobname}!')
    def upgrade(self):
      num=int(input('请输入工号:'))
      if num in self.member:
            name=self.member.name
            job=self.member.job
            grade=self.member.grade
            year=self.member.year
            salary_old=self.member.salary()
            print(f'{name},工号:{num},当前职位:{job}{grade},当前薪资:{salary_old}')
            self.member.pop(num)
            grade_up=int(input('请输入需要增加的级数:'))
            grade+=grade_up
            if job=='E' and grade>10:
                job='T'
                grade=1
            elif job=='T' and grade>6:
                job='M'
                grade=1
            elif job=='M' and grade>3:
                print('经理最高职级为3级!')
                grade-=grade_up
            self.entering(num, name, job, year, grade)
            salary_new = self.member.salary()
            print('升级成功!')
            print(f'{name},工号:{num},升级后职位:{job}{grade},升级后薪资:{salary_new}(+{salary_new-salary_old})')
      else:
            print('该员工号不存在!')
    def demote(self):
      num = int(input('请输入工号:'))
      if num in self.member:
            name = self.member.name
            job = self.member.job
            grade = self.member.grade
            year = self.member.year
            salary_old = self.member.salary()
            print(f'{name},工号:{num},当前职位:{job}{grade},当前薪资:{salary_old}')
            self.member.pop(num)
            grade_de = int(input('请输入需要减少的级数:'))
            grade -= grade_de

            if job == 'T' and grade <0:
                job = 'M'
                grade = 10
            elif job == 'M' and grade <0:
                job = 'T'
                grade = 6
            elif job == 'E' and grade < 0:
                print('无法降级!')
                grade -= grade_de
            self.entering(num, name, job, year, grade)
            salary_new = self.member.salary()
            print('降级成功!')
            print(f'{name},工号:{num},降级后职位:{job}{grade},降级后薪资:{salary_new}({salary_new - salary_old})')
      else:
            print('该员工号不存在!')
m=Manage()
m.operate()

who-fox 发表于 2024-8-30 16:05:07

0001

hehedawang 发表于 2024-8-29 17:13:04

see

dragoncwh 发表于 2024-8-29 02:44:11

请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:

小黑屋1024 发表于 2024-8-28 22:12:37

0.
通过操作符、函数参数、对象的方式实现多态的。
1.相同的函数、操作符,通过输入不同类型的对象,从而得到不同类型的效果。
2.可以
3.
4.增强了内聚,但是增加了耦合
5.不是

bk2020113458 发表于 2024-8-28 12:18:15

查看答案

kkk1029 发表于 2024-8-28 10:04:51

ss请回复您的答案^_^

-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

-------- 动动手 --------

请将第 0 题的代码写在下方:
页: 8 9 10 11 12 13 14 15 16 17 [18] 19 20 21 22 23 24 25 26 27
查看完整版本: 第063讲:类和对象(VI)| 课后测试题及答案