鱼C论坛

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

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

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

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

第 0 题的答案是:
同一个符号在不同语境中有不同作用
第 1 题的答案是:
减少函数的定义
第 2 题的答案是:
可以
第 3 题的答案是:

第 4 题的答案是:
增加内聚
第 5 题的答案是:
也算吧
-------- 动动手 --------

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

使用道具 举报

发表于 2025-7-23 21:49:58 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-22 17:19:48 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:调用不同的类?

第 1 题的答案是:简化代码

第 2 题的答案是:不可以

第 3 题的答案是:不知道鸭鸭鸭

第 4 题的答案是:鸭子是什么呀。。。。

第 5 题的答案是:不属于

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

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

使用道具 举报

发表于 2025-7-20 09:57:26 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:
方便,泛用性广
第 2 题的答案是:
可以
第 3 题的答案是:

第 4 题的答案是:
低耦合
第 5 题的答案是:
不是
-------- 动动手 --------

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

使用道具 举报

发表于 2025-7-20 08:47:08 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-19 21:06:44 | 显示全部楼层
这个级别到底咋设置的,为啥普通员工级别能在组长和经理之间?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-7-19 14:45:45 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-18 10:46:17 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:
子类重写父类的方法
第 1 题的答案是:
简化代码,提高代码灵活性和扩展性,减少耦合
第 2 题的答案是:
可以
第 3 题的答案是:
如果它像鸭子一样行走和鸣叫,那么它就是鸭子
第 4 题的答案是:
降低了耦合度
第 5 题的答案是:
不是
-------- 动动手 --------

请将第 0 题的代码写在下方:
class Staff:
    """员工类"""
    def __init__(self, uid, name, job, grade, year):
        self.uid = uid
        self.name = name
        self.job = job
        self.grade = grade
        self.year = year
        
    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 year
   

class Employee(Staff):
    """普通员工类"""
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)

    def salary(self):
        return 3000 + 500 * self.grade + 50 * self.year

    def promotion(self, num):
        """升职"""
        if self.grade + num > 10:
            return Teamleader(self.uid, self.name, "T", 1, self.year)
        else:
            return Employee(self.uid, self.name, self.job, self.grade + num, self.year)

    def demotion(self, num):
        """降职"""
        return Employee(self.uid, self.name, self.job, max(self.grade - num, 1), self.year)
   

class Teamleader(Staff):
    """组长类"""
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)

    def salary(self):
        return 4000 + 800 * self.grade + 100 * self.year

    def promotion(self, num):
        """升职"""
        if self.grade + num > 6:
            return Manager(self.uid, self.name, "M", 1, self.year)
        else:
            return Teamleader(self.uid, self.name, self.job, self.grade + num, self.year)

    def demotion(self, num):
        """降职"""
        if self.grade - num <= 0:
            return Employee(self.uid, self.name, "E", 10, self.year)
        else:
            return Teamleader(self.uid, self.name, self.job, self.grade - num, self.year)
   

class Manager(Staff):
    """经理类"""
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)

    def salary(self):
        return 5000 + 1000 * (self.grade + self.year)

    def promotion(self, num):
        """升职"""
        return Manager(self.uid, self.name, self.job, min(self.grade + num, 3), self.year)

    def demotion(self, num):
        """降职"""
        if self.grade - num <= 0:
            return Teamleader(self.uid, self.name, "T", 6, self.year)
        else:
            return Manager(self.uid, self.name, self.job, self.grade - num, self.year)


class GradeMixin:
    """Mixin类:级别判断相关的组件"""
    def check_grade(self, job, 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

     

   
class ManagementSystem(GradeMixin):
    """管理系统类"""
    def __init__(self):
        self.staffs = {}
        self.uid = 10000
        self.jobs = {'E':'普通员工', 'T':'组长', 'M':'经理'}

    def regist_staff(self):
        """注册新员工"""
        name = input("姓名:")
        job = input("职位(E.普通员工;T.组长;M.经理):")
        year = int(input("工龄:"))
        grade = int(input("级别:"))
        grade = self.check_grade(job, grade)
        if job == 'E':
            self.staffs[self.uid] = Employee(self.uid, name, job, grade, year)
        elif job == 'T':
            self.staffs[self.uid] = Teamleader(self.uid, name, job, grade, year)
        elif job == 'M':
            self.staffs[self.uid] = Manager(self.uid, name, job, grade, year)
        print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.staffs[self.uid].salary()}")
        self.uid += 1

    def query_staff(self):
        """员工查询"""
        uid = self.confirm_uid()
        if uid:
            print(f"姓名:{self.staffs[uid].name}")
            print(f"职位:{self.staffs[uid].job}")
            print(f"级别:{self.staffs[uid].grade}")
            print(f"工龄:{self.staffs[uid].year}")
            print(f"薪资:{self.staffs[uid].salary()}")
        else:
            print("该工号不存在!")

    def query_job(self):
        """职位查询"""
        ins = input("职位(E.普通员工;T.组长;M.经理):")
        count = 0
        res = []
        for value in self.staffs.values():
            if value.job == ins:
                res.append(value)
                count += 1
        if count:
            print(f"目前{self.jobs[ins]}共有 {count} 人:")
            for each in res:
                print(f"{each.uid} - {each.name}")
        else:
            print(f"目前公司没有{self.jobs[ins]}!")
            
    def promotion(self):
        """升职"""
        uid = self.confirm_uid()
        if uid:
            current_salary = self.staffs[uid].salary()
            print(f"{self.staffs[uid].name},工号:{uid},当前职位:{self.staffs[uid].job}{self.staffs[uid].grade},当前薪资:{current_salary}")
            num = int(input("请输入需要增加的级数:"))
            self.staffs[uid] = self.staffs[uid].promotion(num)
            print("升级成功!")
            new_salary = self.staffs[uid].salary()
            print(f"{self.staffs[uid].name},工号:{uid},升级后职位:{self.staffs[uid].job}{self.staffs[uid].grade},升级后薪资:{new_salary}({new_salary - current_salary:+})")
        else:
            print("该工号不存在!")
        
    def demotion(self):
        """降职"""
        uid = self.confirm_uid()
        if uid:
            current_salary = self.staffs[uid].salary()
            print(f"{self.staffs[uid].name},工号:{uid},当前职位:{self.staffs[uid].job}{self.staffs[uid].grade},当前薪资:{current_salary}")
            num = int(input("请输入需要减少的级数:"))
            self.staffs[uid] = self.staffs[uid].demotion(num)
            print("降级成功!")
            new_salary = self.staffs[uid].salary()
            print(f"{self.staffs[uid].name},工号:{uid},降级后职位:{self.staffs[uid].job}{self.staffs[uid].grade},降级后薪资:{new_salary}({new_salary - current_salary:+})")
        else:
            print("该工号不存在!")

        
    def confirm_uid(self):
        """确认工号是否存在"""
        uid = int(input("请输入工号:"))
        if self.staffs.get(uid):
            return uid
        return False
        
    def query(self):
        """查询界面"""
        ins = input("1.员工查询;2.职位查询:")
        if ins == '1':
            self.query_staff()
        elif ins == '2':
            self.query_job()
        


        
    def display(self):
        """显示主界面"""
        while True:
            ins = input("\n1.录入;2.查询;3.升级;4.降级;5.退出:")
            if ins == '1':
                self.regist_staff()
            elif ins == '2':
                self.query()
            elif ins == '3':
                self.promotion()
            elif ins == '4':
                self.demotion()
            elif ins == '5':
                break

   
def main():
    m = ManagementSystem()
    m.display()

main()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-7-16 15:27:08 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:
继承的多态,同名属性方法可以覆盖
第 1 题的答案是:方便

第 2 题的答案是:可以

第 3 题的答案是:
不管黑猫白猫抓到老鼠就是好猫
第 4 题的答案是:
降低了耦合度
第 5 题的答案是:不属于吧

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

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

使用道具 举报

发表于 2025-7-15 17:45:04 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-15 00:28:25 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:
'''员工类体系(Employee, Teamleader, Manager)'''

class Employee:
     
     def __init__(self, name, job, grade, year, uid):
          self.name = name
          self.job = job#职位
          self.grade = grade#级别
          self.year = year#工龄
          self.uid = uid

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

     def __init__(self, name, job, grade, year, uid):
          super().__init__(name,'T',grade,year,uid)
         
     def salary(self):
          return 4000 + 800 * self.grade + 100 * self.year

class Manager(Employee):
     def __init__(self, name, job, grade, year, uid):
          super().__init__(name,'M',grade,year,uid)



     def salary(self):
          return 5000 + 1000 * self.grade + 1000* self.year

'''管理系统类 Manage'''

class Manage:

     def __init__(self):
         
          self.employees = {} # 存储所有员工,格式:{工号: 员工对象}
          self.current_uid = 10000 # 下一个可分配的工号,从10000开始自增


          # 职位最大级别
          self.max_grades = {'E': 10, 'T': 6, 'M': 3}

           # 职位名称映射
          self.job_names = {'E': '普通员工', 'T': '组长', 'M': '经理'}

     def add_employees(self,name,job,grade,year):
         
          if  grade >  self.max_grades[job]:#这个grade也是输入的
               print(f'该职位最高级别为{self.max_grades[job]},请重新录入')
               
          if job  == 'E':
               emp = Employee(name, job, grade, year, self.current_uid)
          elif job == 'T':
               emp =Teamleader(name, job, grade, year, self.current_uid)
          elif job == 'M':
               emp =Manager(name, job, grade, year, self.current_uid)

          self.employees[self.current_uid] = emp#存入字典里
          print(f'录入成功,姓名:{name},工号:{self.current_uid},薪资:{emp.salary()}')
          self.current_uid+=1


           

     def query_employee(self,uid):

          if uid in self.employees:
               emp =self.employees[uid]#emp是 Employee、Teamleader 或 Manager 的实例
               print(f'姓名:{emp.get_name()}')
               print(f'职位:{emp.get_job()}')
               print(f"级别: {emp.get_grade()}")
               print(f"工龄: {emp.get_year()}")
               print(f"薪资: {emp.salary()}")
          else:
               print('该工号不存在')
               
     def query_job(self,job):
         
          matching_employees=[]
          for uid,emp  in self.employees.items():#遍历self.employees的值,Employee、Teamleader 或 Manager 的实例
               if emp.job == job:#这个job是参数,用户输入的
                    matching_employees.append(f'{uid}-{emp.name}')

          job_name  =  self.job_names[job]

          if matching_employees:
               print(f'目前{job_name}共有{len(matching_employees)}人')
               for each in  matching_employees:
                    print(each)#打印每个(f'{uid}-{emp.name}')
          else:
               print('公司无此职位')
         
               

     def ungrade(self,uid,levels):
          if uid not in self.employees:
               print('该工号不存在')

          emp =self.employees[uid]#emp是 Employee、Teamleader 或 Manager 的实例
          print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')

     
          new_grade = emp.grade + levels

          if new_grade > self.max_grades[emp.job]:#跨阶级升级
               if emp.job == 'E':
                    new_job = 'T'
                    new_grade = 1  # 升职后重置为1级
               elif emp.job == 'T':
                    new_job ='M'
                    new_grade = 1  # 升职后重置为1级
               else:
                    print("已经是最高级了")
         
               if new_job == 'T':
                     
                     new_emp =Teamleader(emp.name, new_job, new_grade, emp.year, uid)
               else:
                     new_emp =Manager(emp.name, new_job, new_grade, emp.year, uid)
                     
               self.employees[uid] =new_emp
               
               salary_diff = new_emp.salary() - emp.salary()

               print(f"升级成功!{emp.name},升级后职位:{new_job}{new_grade},升级后薪资:{new_emp.salary()}+({salary_diff})")
          else:
               emp.grade = new_grade
               
               print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{new_grade},当前薪资:{emp.salary()}')

         

     def downgrade(self,uid,levels):
          if uid not in self.employees:
               print('该工号不存在')
     
          emp =self.employees[uid]#emp是 Employee、Teamleader 或 Manager 的实例
          print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')

          new_grade = emp.grade - levels
           

          if new_grade <1:#跨职降级
               
                if emp.job == 'M':
                     new_job ='T'
                     new_grade = self.max_grades['T']  # 降职后设为最高级

                elif emp.job == 'T':
                     new_job = 'E'
                     new_grade = self.max_grades['E']

                else:
                     print("已经是最低职位,无法再降级")

                if new_job == 'T':
                     
                     new_emp = Teamleader(emp.name, new_job, new_grade, emp.year, uid)
                else:
                     new_emp = Employee(emp.name, new_job, new_grade, emp.year, uid)

                     self.employees[uid] =new_emp
               
                     salary_diff= emp.salary()-new_emp.salary()
                     print(f"降级成功!{emp.name},升级后职位:{new_job}{new_grade},降级后薪资:{new_emp.salary()}-({salary_diff})")
          else:
               emp.grade = new_grade
               print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{new_grade},当前薪资:{emp.salary()}')


def main():
     m =Manage()
     while True:
         
          print("1.录入;2.查询;3.升级;4.降级;5.退出:")
          choice = input().strip()

          if choice == '1':
               print("姓名:")
               name = input().strip()

               print('职位(E.普通员工;T.组长;M.经理):')
               job = input().strip().upper()
               while job not in ['E','T','M']:
                    print('请重新输入(E\T\M)')
                    job = input().strip().upper()
                    
               print('工龄:')
               year =int(input())


               print("级别:")
               grade =int(input())
                    
               m.add_employees(name,job,grade,year)

          elif choice == '2':
               print("1. 员工查询;2. 职位查询;", end="")
               ins  = input().strip()

               if ins =='1':
                    print('请输入工号:')
                    uid = int(input())
                    m.query_employee(uid)
               elif ins =='2':
                    print('职位(E.普通员工;T.组长;M.经理:')
                    job = input().strip().upper()
                    while job not in ['E','T','M']:
                         print('请重新输入(E\T\M)')
                         job = input().strip().upper()
                    
                    m.query_job(job)

          elif choice =='3':
               print("请输入工号:")
               uid = int(input())
               
               print("请输入增加的级数:")
               levels =int(input())
               
               m.ungrade(uid,levels)

          elif choice == '4':
               print("请输入工号:")
               uid = int(input())
               
               print("请输入减少的级数:")
               levels =int(input())
               
               m.downgrade(uid,levels)
               
          elif choice =='5':
               print(">>>")
               break


         
         
         
     


小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2025-7-14 18:42:13 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-7-14 16:55:52 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:
类似于重写
第 1 题的答案是:
可以根据不同的对象执行不同的操作
第 2 题的答案是:
可以
第 3 题的答案是:
不晓得
第 4 题的答案是:
增强内聚
第 5 题的答案是:
我觉得不属于
-------- 动动手 --------

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

使用道具 举报

发表于 2025-7-13 12:17:57 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-13 12:16:12 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-12 23:09:46 | 显示全部楼层
本帖最后由 建人 于 2025-7-17 20:48 编辑

请回复您的答案^_^

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

第 0 题的答案是:函数可以处理不同类的参数

第 1 题的答案是:灵活

第 2 题的答案是:可以

第 3 题的答案是:布吉岛 鸟走起路来像鸭子、游起泳来像鸭子、叫起来也像鸭子,嘎嘎嘎的,那么这个鸟我们就可以把它称之为鸭子

第 4 题的答案是:降低耦合鸭子类型体现在接口的宽容度上

第 5 题的答案是:不属于 × 属于自定义函数的多态

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

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

def get_uid():
    uid=10000
    while True:
        yield uid
        uid += 1
                 
def get_name():
    name=input('姓名:')
    return name

def get_job():
    job=input('职位(E.普通员工;T.组长;M.经理):')
    return job

def get_year():
    year=input('工龄:')
    return year

def get_grade():
    grade=input('级别:')
    return grade

class Employee:
    def __init__(self,uid,name,job,year,grade):
        self.uid=uid
        self.name=name
        self.job=job
        self.year=year
        self.grade=grade
    def salary(self):
        self.salary=3000+500*int(self.grade)+50*int(self.year)
    def promotion(self,num):
        self.grade = int(self.grade) + num
    def demotion(self,num):
        self.grade = int(self.grade) - num

class Teamleader(Employee):
    def __init__(self,uid,name,job,year,grade):
        super().__init__(uid,name,job,year,grade)
    def salary(self):
        self.salary=4000+800*int(self.grade)+100*int(self.year)
        
class Manager(Employee):
    def __init__(self,uid,name,job,year,grade):
        super().__init__(uid,name,job,year,grade)
    def salary(self):
        self.salary=5000+1000*int(self.grade)+1000*int(self.year)

def set_promotion(c,num):
    if c.job == 'E':
        if int(c.grade) + num > 10:
            c.job='T'
            c.grade='1'
            l.append(Teamleader(c.uid,c.name,c.job,c.year,c.grade))
            l.remove(c)
        else:
            c.promotion(num)
    elif c.job == 'T':
        if int(c.grade) + num > 6:
            c.job='M'
            c.grade='1'
            l.append(Manager(c.uid,c.name,c.job,c.year,c.grade))
            l.remove(c)
        else:
            c.promotion(num)
    elif c.job == 'M':
        c.promotion(num)
    print('升级成功!')

def set_demotion(c,num):
    if c.job == 'E':
        c.demotion(num)
    elif c.job == 'T':
        if int(c.grade) - num < 1:
            c.job='E'
            c.grade='10'
            l.append(Employee(c.uid,c.name,c.job,c.year,c.grade))
            l.remove(c)
        else:
            c.demotion(num)
    elif c.job == 'M':
        if int(c.grade) - num < 1:
            c.job='T'
            c.grade='6'
            l.append(Teamleader(c.uid,c.name,c.job,c.year,c.grade))
            l.remove(c)
        else:
            c.demotion(num)
    print('降级成功!')
   

def main():
    ins=input('1.录入;2.查询;3.升级;4.降级;5.退出:')
    while ins != '5':
        if ins == '1':
            
            uid=next(get_uid)
            name=get_name()
            job=get_job()
            year=get_year()
            grade=get_grade()
            if job == 'E':
                l.append(Employee(uid,name,job,year,grade))
            elif job == 'T':
                l.append(Teamleader(uid,name,job,year,grade))
            elif job == 'M':
                l.append(Manager(uid,name,job,year,grade))
            l[-1].salary()
            print(f'录入成功!姓名:{l[-1].name},工号:{l[-1].uid},薪资:{l[-1].salary}')

        if ins == '2':
            check=input('1.员工查询;2.职位查询:')
            if check == '1':
                target=int(input('请输入工号:'))
                for i in l:
                    if i.uid == target:
                        print(f'姓名:{i.name}')
                        print(f'职位:{i.job}')
                        print(f'级别:{i.grade}')
                        print(f'工龄:{i.year}')
                        print(f'薪资:{i.salary}')
                        break
                else:
                    print('该工号不存在!')
            if check == '2':
                target=input('职位(E.普通员工;T.组长;M.经理):')
                result=[]
                for i in l:
                    if i.job == target:
                        result.append(i)
                if target == 'E':
                    if len(result) == 0:
                        print('目前公司没有普通员工')
                    else:
                        print(f'目前普通员工共有{len(result)}人')
                        for i in result:
                            print(f'{i.uid} - {i.name}')
                if target == 'T':
                    if len(result) == 0:
                        print('目前公司没有组长')
                    else:
                        print(f'目前组长共有{len(result)}人')
                        for i in result:
                            print(f'{i.uid} - {i.name}')
                if target == 'M':
                    if len(result) == 0:
                        print('目前公司没有经理')
                    else:
                        print(f'目前经理共有{len(result)}人')
                        for i in result:
                            print(f'{i.uid} - {i.name}')

        if ins == '3':
            target=int(input('请输入工号:'))
            for i in l:
                if i.uid == target:
                    result=i
            temp=result.salary
            print(f'{result.name},工号:{result.uid},当前职位{result.job}{result.grade},当前薪资:{result.salary}')
            add=int(input('请输入需要增加的级数:'))
            set_promotion(result,add)
            l[-1].salary()
            variance=l[-1].salary-temp
            print(f'{l[-1].name},工号:{l[-1].uid},当前职位{l[-1].job}{l[-1].grade},当前薪资:{l[-1].salary}({variance})')

        if ins == '4':
            target=int(input('请输入工号:'))
            for i in l:
                if i.uid == target:
                    result=i
            temp=result.salary
            print(f'{result.name},工号:{result.uid},当前职位{result.job}{result.grade},当前薪资:{result.salary}')
            reduce=int(input('请输入需要减少的级数:'))
            set_demotion(result,reduce)
            l[-1].salary()
            variance=temp-l[-1].salary
            print(f'{l[-1].name},工号:{l[-1].uid},当前职位{l[-1].job}{l[-1].grade},当前薪资:{l[-1].salary}({variance})')

        ins=input('1.录入;2.查询;3.升级;4.降级;5.退出:')

get_uid=get_uid()
l=[]
main()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-7-12 20:23:16 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:在 Python 中,多态(Polymorphism) 是面向对象编程的核心特性之一,它允许不同类的对象对同一方法调用做出不同的响应。Python 通过动态类型和鸭子类型(Duck Typing)天然支持多态,无需显式继承接口(尽管继承也能实现)。以下是 Python 体现多态的主要方式

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-9 15:54:49 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:是

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

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

使用道具 举报

发表于 2025-7-9 15:50:23 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

发表于 2025-7-8 09:31:46 | 显示全部楼层
请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-21 11:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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