lisihan01 发表于 2025-3-28 11:12:56

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

ioriqq123 发表于 2025-3-28 08:32:22

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

wulongsheng 发表于 2025-3-27 20:36:22

请回复您的答案^_^

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

第 0 题的答案是:

同一方法在不同的情况下执行的结果不同


第 1 题的答案是:

简化,直观?


第 2 题的答案是:

可以


第 3 题的答案是:

不知道


第 4 题的答案是:

第 5 题的答案是:

不属于


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

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

有资格吃醋吗 发表于 2025-3-26 18:14:41

请回复您的答案^_^

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

第 0 题的答案是:
同一个函数或运算符或方法,面对不同的对象输出的结果也不同
第 1 题的答案是:
同一个方法可以满足不同场景下的不同对象的需求
第 2 题的答案是:
可以
第 3 题的答案是:
如果一只鸟走路像鸭子,叫声也像鸭子,那它就是一只鸭子
第 4 题的答案是:
增强了内聚
第 5 题的答案是:
不属于
-------- 动动手 --------

请将第 0 题的代码写在下方:
listStaff = []
uno = 10000
class Staff:
    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):
      pass
    def addgrade(self,job,grade,currgrade,topgrade,salary):
      print("升级成功!")
      flag = 0
      if currgrade + grade <= topgrade:
            self.grade = currgrade + grade
            salarys = self.salary() - salary
            print(f"{self.name},工号:{self.uid},当前职位:{self.job}{self.grade},升级后薪资:{self.salary()}(+{salarys})")
      else:
            if job == 'M':
                self.grade = topgrade
                salarys = self.salary() - salary
                print(f"{self.name},工号:{self.uid},当前职位:{self.job}{self.grade},升级后薪资:{self.salary()}(+{salarys})")
            else:
                flag = 1
      return flag
      

    def dscgrade(self,job,grade,currgrade,salary):
      print("降级成功!")
      flag = 0
      if self.grade - grade >= 1:
            self.grade = self.grade - grade
            salarys = salary - self.salary()
            print(f"{each.name},工号:{each.uid},当前职位:{each.job}{each.grade},降级后薪资:{each.salary()}(-{salarys})")
      else:
            if jobs == 'E':
                self.grade = 1
                salarys = salary - self.salary()
                print(f"{each.name},工号:{each.uid},当前职位:{each.job}{each.grade},降级后薪资:{each.salary()}(-{salarys})")
            else:
                flag = 1
      return flag
            

class Employee(Staff):
    def __init__(self,name,job,grade,year,uid):
      super().__init__(name,job,grade,year,uid)
    def salary(self):
      return 3000 + 500 * self.grade + 50 * self.year

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

class Manager(Staff):
    def __init__(self,name,job,grade,year,uid):
      super().__init__(name,job,grade,year,uid)
    def salary(self):
      return 5000 + 1000 * (self.grade + self.year)
   

while(True):
    choose = int(input("\n1.录入;2.查询;3.升级;4.降级;5.退出:"))
    if choose == 1:
      name = input("姓名:")
      job = input("职位(E.普通员工;T.组长;M.经理):")
      year = int(input("工龄:"))
      grade = int(input("级别:"))
      if job =='E' and grade > 10:
            grade = int(input("该职位最高级别为10,请重新录入级别:"))
      if job =='T' and grade > 6:
            grade = int(input("该职位最高级别为6,请重新录入级别:"))
      if job =='M' and grade > 3:
            grade = int(input("该职位最高级别为3,请重新录入级别:"))
      salary = 0
      if job == 'E':
            e = Employee(name,job,grade,year,uno)
            salary = e.salary()
            listStaff.append(e)
      if job == 'T':
            t = Teamleader(name,job,grade,year,uno)
            salary = t.salary()
            listStaff.append(t)
      if job == 'M':
            m = Manager(name,job,grade,year,uno)
            salary = m.salary()
            listStaff.append(m)
      print(f"录入成功!姓名:{name},工号:{uno},薪资:{salary}")
      uno += 1

    if choose == 2:
      j = int(input("1.员工查询;2.职位查询:"))
      if j == 1:
            sno = int(input("请输入工号:"))
            flag = 0
            for each in listStaff:
                if each.get_uid() == sno:
                  flag = 1
                  print(f"姓名:{each.get_name()}")
                  print(f"职位:{each.get_job()}")
                  print(f"级别:{each.get_grade()}")
                  print(f"工龄:{each.get_year()}")
                  print(f"薪资:{each.salary()}")
            if flag == 0:
                print("该工号不存在!")
                  
      if j == 2:
            jobs = input("职位(E.普通员工;T.组长;M.经理):")
            listuid = []
            listname = []
            for each in listStaff:
                if each.get_job() == jobs:
                  listuid.append(each.get_uid())
                  listname.append(each.get_name())
            if len(listuid) == 0:
                if jobs == 'E':
                  print("目前公司没有员工!")
                if jobs == 'T':
                  print("目前公司没有组长!")
                if jobs == 'M':
                  print("目前公司没有经理!")
               
            else:
                if jobs == 'E':
                  print(f"目前普通员工共有{len(listuid)}人")
                if jobs == 'T':
                  print(f"目前组长共有{len(listuid)}人")
                if jobs == 'M':
                  print(f"目前经理共有{len(listuid)}人")
                for i in range(len(listuid)):
                  print(f"{listuid} - {listname}")
    if choose == 3:
      sno = int(input("请输入工号:"))
      for each in listStaff:
            if each.get_uid() == sno:
                print(f"{each.get_name()},工号:{each.get_uid()},当前职位:{each.get_job()}{each.get_grade()},当前薪资:{each.salary()}")
                up = int(input("请输入需要增加的级数:"))
                if each.get_job() == 'E':
                  flag =each.addgrade('E',up,each.get_grade(),10,each.salary())
                  if flag == 1:
                        index = listStaff.index(each)
                        t = Teamleader(each.get_name(),'T',1,each.get_year(),each.get_uid())
                        salary = t.salary() - each.salary()
                        print(f"{t.get_name()},工号:{t.get_uid()},当前职位:{t.get_job()}{t.get_grade()},升级后薪资:{t.salary()}(+{salary})")
                        listStaff = t
                if each.get_job() == 'T':
                  flag = each.addgrade('T',up,each.get_grade(),6,each.salary())
                  if flag == 1:
                        index = listStaff.index(each)
                        m = Manager(each.get_name(),'M',1,each.get_year(),each.get_uid())
                        salary = m.salary() - each.salary()
                        print(f"{m.get_name()},工号:{m.get_uid()},当前职位:{m.get_job()}{m.get_grade()},升级后薪资:{m.salary()}(+{salary})")
                        listStaff = m
                if each.get_job() == 'M':
                  flag = each.addgrade('M',up,each.get_grade(),3,each.salary())
               
    if choose == 4:
      sno = int(input("请输入工号:"))
      for each in listStaff:
            if each.get_uid() == sno:
                print(f"{each.get_name()},工号:{each.get_uid()},当前职位:{each.get_job()}{each.get_grade()},当前薪资:{each.salary()}")
                dec = int(input("请输入需要减少的级数:"))
                if each.get_job() == 'E':
                  flag = each.dscgrade('E',dec,each.get_grade(),each.salary())
                if each.get_job() == 'T':
                  flag = each.dscgrade('T',dec,each.get_grade(),each.salary())
                  if flag == 1:
                        index = listStaff.index(each)
                        e = Employee(each.get_name(),'E',10,each.get_year(),each.get_uid())
                        salary = each.salary() - e.salary()
                        print(f"{e.get_name()},工号:{e.get_uid()},当前职位:{e.get_job()}{e.get_grade()},降级后薪资:{e.salary()}(-{salary})")
                        listStaff = e
                if each.get_job() == 'M':
                  flag = each.dscgrade('M',dec,each.get_grade(),each.salary())
                  if flag == 1:
                        index = listStaff.index(each)
                        t = Teamleader(each.get_name(),'T',6,each.get_year(),each.get_uid())
                        salary = each.salary() - t.salary()
                        print(f"{t.get_name()},工号:{t.get_uid()},当前职位:{t.get_job()}{t.get_grade()},降级后薪资:{t.salary()}(-{salary})")
                        listStaff = t
    if choose == 5:
      break
   

miki_andy 发表于 2025-3-25 20:53:03

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

ljy020618 发表于 2025-3-25 19:23:57

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

想做幕后黑手 发表于 2025-3-22 22:38:04

请回复您的答案^_^

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

第 0 题的答案是:运算符,函数或者对象在不同场景下有不同的作用效果

第 1 题的答案是:可以使自定义的函数或者类具有多元处理功能

第 2 题的答案是:可以

第 3 题的答案是:如果它看起来像鸭子,叫声也像鸭子,那么它就可以被当作鸭子

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

第 5 题的答案是:属于

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

请将第 0 题的代码写在下方:
class Member:
   
    def __init__(self,name,job,year,grade):
      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 self.year
   
    #统计并返回工资
    def salary(self):
      if self.job == "E":
            return 3000+500*self.grade+50*self.year
      if self.job == "T":
            return 4000+800*self.grade+100*self.year
      if self.job == "M":
            return 5000+1000*(self.grade+self.year)

class ManageMixin:

    def class_rule(self,job,grade):
      if job == "E":
            if grade<=10:
                return grade
            else:
                while grade>10:
                  grade = int(input("该职位最高级别为10,请重新录入级别:"))
                return grade
      if job == "T":
            if grade<=6:
                return grade
            else:
                while grade>6:
                  grade = int(input("该职位最高级别为6,请重新录入级别:"))
                return grade
            
      if job == "M":
            if grade<=3:
                return grade
            else:
                while grade>3:
                  grade = int(input("该职位最高级别为3,请重新录入级别:"))
                return grade
            
    def class_upordown(self,uid,num,up_down="up"):
      pay = self.date_base.pay
      if self.date_base.job == "E":
            if up_down=="up":
                if self.date_base.grade+num>10:
                  self.date_base.job = "T"
                  self.date_base.grade = 1
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade += num
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
            elif up_down=="down":
                if self.date_base.grade-num<1:
                  print("这已经是最低职位了,不要摸鱼了你快被炒鱿鱼了!!")
                  self.date_base.grade = 1
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade -= num
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay
               
      elif self.date_base.job == "T":
            if up_down=="up":
                if self.date_base.grade+num>6:
                  self.date_base.job = "M"
                  self.date_base.grade = 1
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade += num
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
            elif up_down=="down":
                if self.date_base.grade-num<1:
                  self.date_base.job = "E"
                  self.date_base.grade = 10
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade -= num
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay
      elif self.date_base.job == "M":
            if up_down=="up":
                if self.date_base.grade+num>3:
                  print("恭喜你你已经是这里的老大啦!!")
                  self.date_base.grade = 3
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade += num
                  self.date_base.pay = self.date_base.salary()
                  print("升级成功!")
                  return self.date_base.pay-pay
            elif up_down=="down":
                if self.date_base.grade-num<1:
                  self.date_base.job = "T"
                  self.date_base.grade = 6
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay
                else:
                  self.date_base.grade -= num
                  self.date_base.pay = self.date_base.salary()
                  print("降级成功!")
                  return self.date_base.pay-pay


class Manage(ManageMixin):

    date_base = {}

    def welcome(self):
      menu = int(input("1.录入;2.查询;3.升级;4.降级;5.退出:"))
      while menu != 5:
            if menu == 1:
                self.add()
            elif menu == 2:
                self.inquire()
            elif menu == 3:
                self.upgrades()
            elif menu == 4:
                self.tier_down()
            menu = int(input("1.录入;2.查询;3.升级;4.降级;5.退出:"))
   
    def add(self):
      name = input("姓名:")
      job = input("职位(E.普通员工;T.组长;M.经理):")
      year = int(input("工龄:"))
      grade = int(input("级别:"))
      grade = self.class_rule(job,grade)
      self.date_base=Member(name,job,year,grade)
      uid = list(self.date_base.keys())[-1]
      self.date_base.uid = uid
      self.date_base.pay = self.date_base.salary()
      print(f"录入成功!姓名:{name},工号:{uid},薪资:{self.date_base.salary()}")

    def inquire(self):
      inquire_ = int(input("1.员工查询;2.职位查询:"))
      if inquire_ == 1:
            em_inquire = int(input("请输入工号:"))
            if em_inquire in self.date_base:
                  Mjob = self.date_base
                  print(f"姓名:{Mjob.name}\n职位:{Mjob.job}\n级别:{Mjob.grade}\n工龄:{Mjob.year}\n薪资:{Mjob.salary()}")
            else:
                  print("该工号不存在!")
      elif inquire_ == 2:
            job_inquire = input("职位(E.普通员工;T.组长;M.经理):")
            count = 0
            result = []
            for echo in self.date_base.values():
                if echo.job == job_inquire:
                  count += 1
                  result.append(f"{echo.uid} - {echo.name}")
            if job_inquire == "E":
                job_inquire1 = "普通员工"
            elif job_inquire == "T":
                job_inquire1 = "组长"
            elif job_inquire == "M":
                job_inquire1 = "经理"   
            if len(result) != 0:
                print(f"目前{job_inquire1}共有{count}人:",*result,sep = "\n")
            else:
                print(f"目前公司没有{job_inquire1}")
               
    def upgrades(self):
      uid_input = int(input("请输入工号:"))
      if uid_input in self.date_base:
            name = self.date_base.name
            job = self.date_base.job
            grade = self.date_base.grade
            pay = self.date_base.pay
            print(f"{name},工号:{uid_input},当前职位:{job}{grade},当前薪资:{pay}")
            num_input = int(input("请输入需要增加的级数:"))
            pay_count = self.class_upordown(uid_input,num_input,up_down="up")
            name = self.date_base.name
            job = self.date_base.job
            grade = self.date_base.grade
            pay = self.date_base.pay
            print(f"{name},工号:{uid_input},升职后职位:{job}{grade},升级后薪资:{pay}(+{pay_count})")
      else:
            print("工号不存在")
    def tier_down(self):
      uid_input = int(input("请输入工号:"))
      if uid_input in self.date_base:
            name = self.date_base.name
            job = self.date_base.job
            grade = self.date_base.grade
            pay = self.date_base.pay
            print(f"{name},工号:{uid_input},当前职位:{job}{grade},当前薪资:{pay}")
            num_input = int(input("请输入需要减少的级数:"))
            pay_count = self.class_upordown(uid_input,num_input,up_down="down")
            name = self.date_base.name
            job = self.date_base.job
            grade = self.date_base.grade
            pay = self.date_base.pay
            print(f"{name},工号:{uid_input},升职后职位:{job}{grade},降级后薪资:{pay}({pay_count})")
      else:
            print("工号不存在")
      
      
main = Manage()
main.welcome()


bajing 发表于 2025-3-17 15:13:23

请回复您的答案^_^

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

第 0 题的答案是:python可以让我们在子类中覆盖在父类中不满意的方法,也叫重写(实现类继承的多态)

第 1 题的答案是:根据接受到不同的参数,给出不同的解决方案

第 2 题的答案是:可以

第 3 题的答案是:一只鸟走路姿势像鸭子,形态像鸭子,叫声像鸭子,那么他就是鸭子

第 4 题的答案是:我猜都不是

第 5 题的答案是:不是

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

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

z_learning 发表于 2025-3-13 18:20:21

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

牙牙牙牙 发表于 2025-3-12 21:20:17

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

shenziliang888 发表于 2025-3-12 16:19:02

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

whoiwas 发表于 2025-3-12 15:19:34

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

charles张 发表于 2025-3-12 06:23:09

请回复您的答案^_^

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

第 0 题的答案是:
多样化
第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

wyhecw 发表于 2025-3-11 20:43:28

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

请将第 0 题的代码写在下方:class Employee: #先设置总类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): #在员工基类上先把各种def get函数设置好
      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):
      """工资计算方法(由子类实现)"""
      pass


class CommonEmployee(Employee): #再设置分类,各种员工类别
    """普通员工类"""
    def __init__(self, name, grade, year, uid):
      super().__init__(name, 'E', grade, year, uid)

    def salary(self): #工资这种分情况的在分类中设置
      return 3000 + 500 * self.grade + 50 * self.year


class Teamleader(Employee):
    """组长类"""
    def __init__(self, name, 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, grade, year, uid):
      super().__init__(name, 'M', grade, year, uid)

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


class EmployeeManage:
    """员工管理类"""
    def __init__(self):
      self.employees = {}# 存储员工信息
      self.current_uid = 10000# 起始工号

    def add_employee(self):
      """录入员工数据"""
      name = input("姓名:")
      job = input("职位(E.普通员工;T.组长;M.经理):").strip()
      year = int(input("工龄:"))
      grade = int(input("级别:"))

      # 职位对应的类和最高级别
      job_class = {'E': CommonEmployee, 'T': Teamleader, 'M': Manager}
      max_grade = {'E': 10, 'T': 6, 'M': 3}

      if grade > max_grade:
            grade = int(input(f"该职位最高级别为{max_grade},请重新录入级别:"))

      # 创建员工实例并存储
      employee = job_class(name, grade, year, self.current_uid)
      self.employees = employee
      print(f"录入成功!姓名:{name},工号:{self.current_uid},薪资:{employee.salary()}")
      self.current_uid += 1

    def search_employee(self):
      """查询员工信息"""
      choice = input("1.员工查询;2.职位查询:")
      if choice == '1':
            uid = int(input("请输入工号:"))
            employee = self.employees.get(uid)
            if employee:
                print(f"姓名:{employee.get_name()}")
                print(f"职位:{employee.get_job()}")
                print(f"级别:{employee.get_grade()}")
                print(f"工龄:{employee.get_year()}")
                print(f"薪资:{employee.salary()}")
            else:
                print("该工号不存在!")
      elif choice == '2':
            job = input("职位(E.普通员工;T.组长;M.经理):").strip()
            count = 0
            result = []
            for emp in self.employees.values():
                if emp.get_job() == job:
                  count += 1
                  result.append(f"{emp.get_uid()} - {emp.get_name()}")
            if count == 0:
                print(f"目前公司没有{job}!")
            else:
                print(f"目前{job}共有 {count} 人:")
                for r in result:
                  print(r)

    def promote_employee(self):
      """员工升级"""
      uid = int(input("请输入工号:"))
      employee = self.employees.get(uid)
      if not employee:
            print("工号不存在")
            return

      print(f"{employee.get_name()},工号:{employee.get_uid()},当前职位:{employee.get_job()}{employee.get_grade()},当前薪资:{employee.salary()}")
      add_grade = int(input("请输入需要增加的级数:"))

      job_grade = {'E': 10, 'T': 6, 'M': 3}
      current_max = job_grade
      new_grade = employee.get_grade() + add_grade

      # 处理升职逻辑
      if new_grade > current_max:
            job_map = {'E': 'T', 'T': 'M'}
            if employee.get_job() in job_map:
                new_job = job_map
                new_grade = 1
            else:# 已是经理,不能再升
                new_grade = current_max
                new_job = employee.get_job()
      else:
            new_job = employee.get_job()

      # 更新员工信息
      new_emp = {'E': CommonEmployee, 'T': Teamleader, 'M': Manager}(
            employee.get_name(), new_grade, employee.get_year(), uid)
      self.employees = new_emp
      print(f"升级成功!{employee.get_name()},工号:{uid},升级后职位:{new_job}{new_grade},升级后薪资:{new_emp.salary()}(+{new_emp.salary() - employee.salary()})")

    def demote_employee(self):
      """员工降级"""
      uid = int(input("请输入工号:"))
      employee = self.employees.get(uid)
      if not employee:
            print("工号不存在")
            return

      print(f"{employee.get_name()},工号:{employee.get_uid()},当前职位:{employee.get_job()}{employee.get_grade()},当前薪资:{employee.salary()}")
      reduce_grade = int(input("请输入需要减少的级数:"))

      job_grade = {'E': 10, 'T': 6, 'M': 3}
      current_grade = employee.get_grade()
      new_grade = current_grade - reduce_grade
      current_job = employee.get_job()

      # 处理降职逻辑
      if new_grade < 1:
            job_map = {'T': 'E', 'M': 'T'}
            if current_job in job_map:
                new_job = job_map
                new_grade = job_grade
            else:# 已是普通员工,不能再降
                new_grade = 1
                new_job = current_job
      else:
            new_job = current_job

      # 更新员工信息
      new_emp = {'E': CommonEmployee, 'T': Teamleader, 'M': Manager}(
            employee.get_name(), new_grade, employee.get_year(), uid)
      self.employees = new_emp
      print(f"降级成功!{employee.get_name()},工号:{uid},降级后职位:{new_job}{new_grade},降级后薪资:{new_emp.salary()}(+{new_emp.salary() - employee.salary()})")


def main():
    manage = EmployeeManage() #main函数调用程序管理总类
    while True:
      print("1.录入;2.查询;3.升级;4.降级;5.退出:", end="")
      choice = input().strip()
      if choice == '1':
            manage.add_employee()
      elif choice == '2':
            manage.search_employee()
      elif choice == '3':
            manage.promote_employee()
      elif choice == '4':
            manage.demote_employee()
      elif choice == '5':
            print("退出程序")
            break
      else:
            print("无效选择,请重新输入")


if __name__ == "__main__":
    main()

Jason_z 发表于 2025-3-10 14:52:28

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

我见过龙 发表于 2025-3-7 01:55:45

请回复您的答案^_^

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

第 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 题的代码写在下方:

cyrus902 发表于 2025-3-6 16:40:33

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

tamadi110 发表于 2025-3-5 15:48:34

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

Becoming_y 发表于 2025-3-5 09:16:10

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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

linglizhu 发表于 2025-3-4 16:11:03

请回复您的答案^_^

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

第 0 题的答案是:

第 1 题的答案是:

第 2 题的答案是:

第 3 题的答案是:

第 4 题的答案是:

第 5 题的答案是:

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

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