鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[课后作业] 第063讲:类和对象(VI)| 课后测试题及答案

  [复制链接]
发表于 2024-10-10 09:55:19 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
1请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-25 10:00:02 | 显示全部楼层
请回复您的答案^_^
我图一时之快
-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-16 11:39:25 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-15 14:10:00 | 显示全部楼层
请回复您的答案^_^

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

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

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

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

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

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

第 5 题的答案是:no

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-12 22:59:23 | 显示全部楼层
请回复您的答案^_^

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

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-10 20:43:11 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-10 20:24:53 | 显示全部楼层
看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-9 16:52:23 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-9 13:20:03 | 显示全部楼层
请回复您的答案^_^
0、一个对象可以调用方法不同的用处
1、一个函数实现多个功能
2、可以
3、
4、增强了内聚
5、不是
-------- 问答题 --------

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-9 08:21:24 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-9-7 20:04:42 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[i])
        j = self.jobs[i]
        y = int(self.years[i])
        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[i]}\n职位:{self.jobs[i]}')
            print(f'级别:{self.grades[i]}\n工龄:{self.years[i]}')
            print(f'薪资:{super().salary(self.names[i])}')
        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[k] == j:
                    print(f'{self.uids[k]} - {self.names[k]}')
    def upgrade(self):
        u = int(input('请输入工号:'))
        i = super().check_employee(u)
        n = self.names[i]
        j = self.jobs[i]
        g = self.grades[i]
        s = super().salary(self.names[i])
        print(f'{n},工号:{self.uids[i]},当前职位:{j}{g},当前薪资:{s}')
        add = int(input('请输入需要增加的级数:'))
        g += add
        if j == 'E' and g>10:
            self.jobs[i] = 'T'
            self.grades[i] = 1
        elif j == 'T' and g>6:
            self.jobs[i] = 'M'
            self.grades[i] = 1
        else:
            self.grades[i] = g
        print('升级成功!')
        s = super().salary(self.names[i])
        print(f'{n},工号:{self.uids[i]},当前职位:{self.jobs[i]}{self.grades[i]},当前薪资:{s}')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[uid]=Employee(uid,name,job,year,grade)
        elif job=='T':
            self.member[uid]=Teamleader(uid,name,job,year,grade)
        elif job=='M':
            self.member[uid]=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[uid].salary()}')
    def view(self):
        order=input('1.员工查询;2.职位查询:')
        if order=='1':
            num=int(input('请输入工号:'))
            if num in self.member:
                print(f'姓名:{self.member[num].name}')
                print(f'职位:{self.member[num].job}')
                print(f'级别:{self.member[num].grade}')
                print(f'工龄:{self.member[num].year}')
                print(f'薪资:{self.member[num].salary()}')
            else:
                print('该员工号不存在!')
        elif order=='2':
            job=input('职位(E.普通员工;T.组长;M.经理):')
            count=0
            l=[]
            for each in self.member:
                if self.member[each].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[each].name}')
            else:
                print(f'目前公司没有{jobname}!')
    def upgrade(self):
        num=int(input('请输入工号:'))
        if num in self.member:
            name=self.member[num].name
            job=self.member[num].job
            grade=self.member[num].grade
            year=self.member[num].year
            salary_old=self.member[num].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[num].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[num].name
            job = self.member[num].job
            grade = self.member[num].grade
            year = self.member[num].year
            salary_old = self.member[num].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[num].salary()
            print('降级成功!')
            print(f'{name},工号:{num},降级后职位:{job}{grade},降级后薪资:{salary_new}({salary_new - salary_old})')
        else:
            print('该员工号不存在!')
m=Manage()
m.operate()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-30 16:05:07 | 显示全部楼层
0001
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-8-29 17:13:04 | 显示全部楼层
see
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-8-29 02:44:11 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-28 22:12:37 | 显示全部楼层
0.
通过操作符、函数参数、对象的方式实现多态的。
1.相同的函数、操作符,通过输入不同类型的对象,从而得到不同类型的效果。
2.可以
3.
4.增强了内聚,但是增加了耦合
5.不是
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-28 12:18:15 | 显示全部楼层
查看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-28 10:04:51 | 显示全部楼层
ss请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-8-21 10:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表