鱼C论坛

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

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

  [复制链接]
发表于 2024-3-10 20:36:11 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
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 self.year
    def salary(self,job,grade,year):
        if job == 'E':
            return 3000 + 500 * grade + 50 * year
        if job == 'T':
            return 4000 + 800 * grade + 100 * year
        if job == 'M':
            return 5000 + 1000 * (grade + year)

        
class Check:
    def c_job(self,job):
        while True:
            if job in 'EMT':
                return job
            else:
                job = input("职位只能填写'E''M''T'中的一个:")
               
    def c_grade(self,job,grade):
        if job == 'E':
            while True:
                if grade <= 10:
                    return grade
                else:
                    grade = int(input('该职位级别最高为10,请重新录入级别:'))
        if job == 'T':
            while True:
                if grade <= 6:
                    return grade
                else:
                    grade = int(input('该职位级别最高为6,请重新录入级别:'))
        if job == 'M':
            while True:
                if grade <= 3:
                    return grade
                else:
                    grade = int(input('该职位级别最高为3,请重新录入级别:'))
                    
    def c_promption(self,job,nums,seek_uid):
        if job == 'E':
            if nums + self.members[seek_uid].grade <= 10:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                self.members[seek_uid].job = 'T'
                self.members[seek_uid].grade = 1
        if job == 'T':
            if nums + self.members[seek_uid].grade <= 6:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                self.members[seek_uid].job = 'M'
                self.members[seek_uid].grade = 1
        if job == 'M':
            if nums + self.members[seek_uid].grade <= 3:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                return print('没有此级别,升级失败!')
        return print('升级成功!')
   
    def c_demotion(self,job,nums,seek_uid):
        if job == 'M':
            if self.members[seek_uid].grade - nums > 0:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                self.members[seek_uid].job = 'T'
                self.members[seek_uid].grade = 6
        if job == 'T':
            if self.members[seek_uid].grade - nums > 0:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                self.members[seek_uid].job = 'E'
                self.members[seek_uid].grade = 10
        if job == 'E':
            if self.members[seek_uid].grade - nums > 0:
                self.members[seek_uid].grade = nums + self.members[seek_uid].grade
            else:
                return print('没有此级别,降级失败!')
        return print('降级成功!')

class Manage(Staff,Check):
    def __init__(self):
        self.current_uid = 10000
        self.members = {}
    def welcome(self):
        while True:
            ins = int(input('1.录入;2.查询;3.升级;4.降级;5.退出:'))
            if ins == 1:
                self.enter()
            if ins == 2:
                self.seek()
            if ins == 3:
                self.promotion()
            if ins == 4:
                self.demotion()
            if ins == 5:
                break
            if ins == 6:
                for each in self.members:
                    print(f'{self.members[each].uid} {self.members[each].name} '
                          f'{self.members[each].job} {self.members[each].grade} '
                          f'{self.members[each].year}')
                    
    # 录入功能
    def enter(self):
        name = input('姓名:')
        job = input('职位(E.普通员工;T.组长;M.经理):')
        job = self.c_job(job)
        grade = int(input('级别:'))
        grade = self.c_grade(job,grade)
        year = int(input('工龄:'))
        member = Staff(self.current_uid,name,job,grade,year)
        self.members[self.current_uid] = member
        print(f'录入成功!姓名:{name},工号:{self.current_uid},'
              f'薪资:{self.salary(job,grade,year)}')
        self.current_uid += 1

    #查询功能
    def seek(self):
        ins = int(input('1.员工查询;2.职位查询:'))
        if ins == 1:
            seek_uid = int(input('请输入工号:'))
            if self.members.get(seek_uid):
                member = self.members[seek_uid]
            else:
                return print('该工号不存在!')
            print(f'姓名:{member.name}\n职位:{member.job}\n'
                  f'级别:{member.grade}\n工龄:{member.year}\n'
                  f'薪资:{self.salary(member.job,member.grade,member.year)}')
        if ins == 2:
            seek_job = input('职位(E.普通职工;T.组长;M.经理):')
            nums = 0
            for each in self.members:
                if self.members[each].job == seek_job:
                    nums += 1
                else:
                    continue
            else:
                print(f'目前{seek_job}共有{nums}人')
                for each in self.members:
                    if self.members[each].job == seek_job:
                        print(f'{self.members[each].uid} - {self.members[each].name}')

    #升职功能
    def promotion(self):
        seek_uid = int(input('请输入工号:'))
        if self.members.get(seek_uid):
            member = self.members[seek_uid]
        else:
            return print('该工号不存在!')
        old_salary = self.salary(member.job,member.grade,member.year)
        print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
              f'当前薪资{old_salary}')
        nums = int(input('请输入需要增加的级数:'))
        self.c_promption(member.job,nums,seek_uid)
        member = self.members[seek_uid]
        new_salary = self.salary(member.job,member.grade,member.year)
        print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
              f'当前薪资{new_salary}({new_salary-old_salary})')

    #降职功能
    def demotion(self):
        seek_uid = int(input('请输入工号:'))
        if self.members.get(seek_uid):
            member = self.members[seek_uid]
        else:
            return print('该工号不存在!')
        old_salary = self.salary(member.job,member.grade,member.year)
        print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
              f'当前薪资{old_salary}')
        nums = int(input('请输入需要减少的级数:'))
        self.c_demotion(member.job,nums,seek_uid)
        member = self.members[seek_uid]
        new_salary = self.salary(member.job,member.grade,member.year)
        print(f'{member.name},工号:{member.uid},当前职位:{member.job},'
              f'当前薪资{new_salary}({new_salary-old_salary})')
   
def main():
    m = Manage()
    m.welcome()
        
        
               
   

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

使用道具 举报

发表于 2024-3-10 17:06:41 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-9 16:18:29 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-8 11:35:56 | 显示全部楼层
啊啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-7 04:26:13 | 显示全部楼层
'''
0. 继承了同一个父类的不同子类的实例对象,其方法和属性可以不同。另外相同的方法在面对不同的对象的时候会有不同的结果
1. 方便
2. 可以
3. 人前说人话,鬼前说鬼话
4. 降低了耦合度
5. 不算
'''

class People:
    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():
        return self.uid

    def get_name():
        return self.name

    def get_job():
        return self.job

    def get_grade():
        return self.grade

    def get_year():
        return self.year

    def get_salary():
        pass

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

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

    def get_salary(self):
        return self.salary

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

    def get_salary(self):
        return self.salary


class Management:
    def __init__(self):
        self.members=[]
        self.uid=[]

    def create(self):
        name=input('Name: ')
        job=input('Job (E. Employee; T. Teampleader; M. Manager): ')
        year=int(input('Years: '))
        grade=int(input('Grade: '))
        uid=len(self.uid)+100

        self.uid.append(uid)

        if job=='E':
            e=Employee(name,job,year,grade,uid)
            self.members.append(e)
        if job=='T':
            t=Teamleader(name,job,year,grade,uid)
            self.members.append(t)
        if job=='M':
            m=Manager(name,job,year,grade,uid)
            self.members.append(m)
      
    def check(self):
        option=int(input('1. Employee Check; 2. Job Check: '))
        if option==1:
            uid=int(input('input the employee ID: '))
            if uid in self.uid:
                m=self.members[self.uid.index(uid)]
                print(f'Name: {m.name}')
                print(f'Job: {m.job}')
                print(f'Grade: {m.grade}')
                print(f'Year: {m.year}')
                print(f'Name: {m.name}')
                print()
            else:
                print('This ID does not exist')
        if option==2:
            job=input('Job (E. Employee; T. Teampleader; M. Manager): ')
            jobs=[x.job for x in self.members]
            indexes=[]
            stop=0
            while stop<len(jobs):
                i=jobs.index(job,stop)
                indexes.append(i)
                stop=i+1
            
            count=len(indexes)
            print(f'Total: {count}')
            for i in indexes:
                print('{} -> {}'.format(self.members[i].uid,self.members[i].name))
            

    def upgrade(self):
        uid=int(input('Input the employee ID: '))
        if uid in self.uid:
            m=self.members[self.uid.index(uid)]
            print(f'{self.name},{self.uid},Current Position: {Job}{Grade}, current salary: {self.salary}')

            uplevel=int(input('Input the levels to upgrade: '))
            total_level=self.grade+uplevel
            if 1<= total_level <= 10:
                m.grade+=total_level
                m.job='E'
            if 10< total_level <= 16:
                m.grade=total_level-10
                m.job='T'
            if 16< total_level <=19:
                m.grade=total_level-16
                m.job='M'
            if total_level>19:
                print("Can't level it up")

            print('Upgrade successfully')
            print(f'{self.name},{self.uid},Current Position: {Job}{Grade}, current salary: {self.salary}')
            
               

    def downgrade(self):
        pass

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

使用道具 举报

发表于 2024-3-3 23:11:55 | 显示全部楼层
本帖最后由 explorerboom 于 2024-3-3 23:14 编辑

0.同一运算符、函数或对象在不同的场景下具有不同的作用效果
1.提高代码的灵活性
2.可以
3.一个动物外表像鸭子,走路像鸭子,叫声像鸭子,吃起来也像鸭子,那它就是鸭子
4.降低了耦合度,体现在接口的宽容度上
5.是的,自定义函数的输入变量个数改变了
0.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-3-3 21:08:59 | 显示全部楼层
520
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-1 17:34:58 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-3-1 15:31:05 | 显示全部楼层
0.允许我们在子类中定义与父类同名的方法,从而覆盖父类的方法
1.能够使不同对象在不同场景下有不同的实现效果‘
2.可以被称为多态
3.
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-29 14:58:20 | 显示全部楼层
0、在多态的情况下,程序可以根据对象的类型调用相应的方法,而不需要知道具体对象的类型
1、简化代码,提高可扩展性
2、是多态
3、
4、增强了内聚
5、是
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-28 12:59:13 | 显示全部楼层
问答题:
0. 通过同名函数的重写
1. 可以根据不同的参数执行不同的语句
2. 可以
3. 不知道
4. 增强了内聚
5. 不属于
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-27 10:19:20 | 显示全部楼层
简答题还是比较友好一些
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-27 09:45:04 | 显示全部楼层
asda
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-26 17:35:17 | 显示全部楼层
import easygui as g

# 员工及其方法类定义
class Worker:
    def __init__(self, uid, name, job, grade, year):
        self.uid = uid    # 工号
        self.name = name  # 姓名
        self.job = job    #岗位:普通员工(E)、组长(T)、经理(M)
        self.grade = grade # 级别:1级、2级....
        self.year = year   # 工龄:1,2,3,4,5.....
        
        self.salary = self.salary()
   
    def get_uid(self):
        return self.uid
   
    def get_name(self):
        return self.name
   
    def get_grade(self):
        return self.grade
   
    def get_year(self):
        return self.get_year
   
    def salary(self):
        if self.job =='E':
            salary = 3000 + 500 * self.grade + 50 * self.year
        elif self.job == 'T':
            salary = 4000 + 800 * self.grade + 100 * self.year
        else:
            salary = 5000 + 1000 * (self.grade + self.year)
        return salary

class Employee(Worker):
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)
        self.max_grade = 10

class Teamleader(Worker):
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)
        self.max_grade = 6
        
class Manager(Worker):
    def __init__(self, uid, name, job, grade, year):
        super().__init__(uid, name, job, grade, year)
        self.max_grade = 3

# 管理类及方法定义
class Manage:
    def __init__(self):
        self.workers = {}
        self.uid = 10000
   
    def job_check(self, job):
        if job not in 'ETM':
            return False
        else:
            return True
        
    def is_num_check(self, strNum):
        try:
            strTonum = int(strNum)
            return True
        except:
            return False

    def grade_check(self,job, grade):
        if job == 'E' and (0 <= int(grade) <= 10):
            return True
        elif job == 'T' and (0 <= int(grade) <= 6):
            return True
        elif job == 'M' and (0 <= int(grade) <= 3):
            return True
        else:
            return False
        
    def worker_create(self, uid, name, job, grade, year):
        if job == 'E':
            return Employee(uid, name, job, grade, year)
        elif job == 'T':
            return Teamleader(uid, name, job, grade, year)
        else:
            return Manager(uid, name, job, grade, year)
        
   
    def worker_regist(self):
        msg = '请录入员工信息'
        title  = 'FishC员工管理系统'
        fields = ['*姓名','*职位(E-普通员工,T-组长, M-经理)', '*请输入级别(数值):','*请输入工龄(数值):']
        values = []
        
        while True:
            worker_msg = g.multenterbox(msg = msg
                                        , title = title
                                        , fields = fields
                                        , values = values
                                        , callback=None
                                        , run=True)

            err_msg = ''
            for each in worker_msg:
                if len(each) == 0:
                    err_msg += '信息填写不完整,请填写准确的员工信息'
                    break
            
            if len(err_msg) == 0:
                if self.job_check(worker_msg[1]):
                    if self.is_num_check(worker_msg[3]) and self.is_num_check(worker_msg[2]):
                        if self.grade_check(worker_msg[1],worker_msg[2]):
                            worker = self.worker_create(self.uid,worker_msg[0],worker_msg[1], int(worker_msg[2]), int(worker_msg[3]))
                            self.workers[self.uid] = worker
                            self.uid += 1
                            break
                        else:
                            err_msg += '级别超出职位范围:请填写准确的债职位范围内的信息\r\n'

                    else:
                        err_msg += '数值信息录入不合法:请填写整型数值\r\n'                  

                else:
                    err_msg = '职位信息不合法:必须为英文大写字母E/T/M中的一个\r\n'
            
        if len(err_msg) == 0:
            right_msg = f'录入成功!姓名:{worker.name},工号:{worker.uid},薪资:{worker.salary}'
            g.msgbox(msg  = right_msg,
                    title = title)
        else:
            g.msgbox(msg = err_msg
                    , title = title)
            values = worker_msg
   
    def worker_search(self):
        cnt = 0
        search_msg = ''
        search_result = False
        
        choice = g.indexbox(msg = '请选择你的查询模式:'
                            ,title = 'FishC员工管理系统'
                            , choices = ('员工查询','职位查询'))
        if choice == 0:
            search_uid = g.integerbox(msg='请输入你要查询的工号'
                                      , title='FishC员工管理系统'
                                      , lowerbound=10000
                                      , upperbound=99999)
            for key,each in self.workers.items():
                if each.uid == search_uid:
                    search_msg = f'姓名:{each.name}\r\n职位:{each.job}\r\n级别:{each.grade}\r\n工龄:{each.year}\r\n薪资:{each.salary}'
                    search_result = True
                    break
            if not search_result:
                search_msg = '该工号不存在'      
   
        
        else:
            
            search_job = g.choicebox(msg='请输入你要查询的岗位:E-普通员工;T-组长;M-经理'
                                    , title='FishC员工管理系统'
                                    ,choices = ['E','T','M']
                                    )
            for key,each in self.workers.items():               
                if each.job == search_job:
                    search_msg += f'{each.uid} - {each.name}\r\n'
                    cnt += 1
                    search_result = True
            
            if search_result:
                search_msg = f'目前有{search_job}共{cnt}人:\r\n{search_msg}'
            else:
                search_msg = '该岗位暂无员工!'
        
        g.msgbox(msg= search_msg
                 , title='FishC员工管理系统')
        return[search_result,search_msg]
   
    def grade_up(self):
        uid_get = g.integerbox(msg='请输入员工工号'
                               , title='FishC员工管理系统'
                              , lowerbound=10000
                               , upperbound=99999)
        
        worker = self.workers[uid_get]
        worker_msg = f'{worker.name};工号:{worker.uid};当前职位:{worker.job}{worker.grade};当前薪资:{worker.salary}'
        
        g.msgbox(msg = worker_msg
                 , title='FishC员工管理系统')
        
        up_grade = g.integerbox(msg='请输入需要增加的级数'
                                , title='FishC员工管理系统'
                                , lowerbound=0
                                , upperbound=20)
        
        if (worker.grade + up_grade) <= worker.max_grade:
            worker.grade = worker.grade + up_grade
            up_msg = f'升级成功!\r\n{worker.name};工号:{worker.uid};升职后职位:{worker.job}{worker.grade};升职后薪资:{worker.salary}'
        elif worker.job == 'M':
            worker.grade  = worker.max_grade
            up_msg = f'升级成功!\r\n{worker.name};工号:{worker.uid};升职后职位:{worker.job}{worker.grade};升职后薪资:{worker.salary}'
        elif worker.job =='E':
            new_worker = Teamleader(worker.uid, worker.name, 'T', 1, worker.year)
            self.workers[uid_get] = new_worker
            up_msg = f'升级成功!\r\n{new_worker.name};工号:{new_worker.uid};升职后职位:{new_worker.job}{new_worker.grade};升职后薪资:{new_worker.salary}'
        else:
            new_worker = Teamleader(worker.uid, worker.name, 'M', 1, worker.year)
            self.workers[uid_get] = new_worker
            up_msg = f'升级成功!\r\n{new_worker.name};工号:{new_worker.uid};升职后职位:{new_worker.job}{new_worker.grade};升职后薪资:{new_worker.salary}'
        
        g.msgbox(msg = up_msg
                 , title='FishC员工管理系统')
   
    def degrade(self):
        uid_get = g.integerbox(msg='请输入员工工号'
                                , title='FishC员工管理系统'
                               , lowerbound=10000
                               , upperbound=99999)
        
        worker = self.workers[uid_get]
        worker_msg = f'{worker.name};工号:{worker.uid};当前职位:{worker.job}{worker.grade};当前薪资:{worker.salary}'
        
        g.msgbox(msg = worker_msg
                 , title='FishC员工管理系统')
        
        degrade = g.integerbox(msg='请输入需要降低的级数'
                                , title='FishC员工管理系统'
                              , lowerbound=0
                               , upperbound=20)
        
        if (worker.grade - degrade) > 0:
            worker.grade = worker.grade - degrade
            demsg = f'降级成功!\r\n{worker.name};工号:{worker.uid};升职后职位:{worker.job}{worker.grade};升职后薪资:{worker.salary}'
        elif worker.job == 'E':
            worker.grade  = 1
            up_msg = f'降级成功!\r\n{worker.name};工号:{worker.uid};升职后职位:{worker.job}.{worker.grade};升职后薪资:{worker.salary}'
        elif worker.job =='T':
            new_worker = Teamleader(worker.uid, worker.name, 'E',10 , worker.year)
            self.workers[uid_get] = new_worker
            demsg = f'降级成功!\r\n{new_worker.name};工号:{new_worker.uid};升职后职位:{new_worker.job}{new_worker.grade};升职后薪资:{new_worker.salary}'
        else:
            new_worker = Teamleader(worker.uid, worker.name, 'T', 6 , worker.year)
            self.workers[uid_get] = new_worker
            demsg = f'降级成功!\r\n{new_worker.name};工号:{new_worker.uid};升职后职位:{new_worker.job}{new_worker.grade};升职后薪资:{new_worker.salary}'
        
        g.msgbox(msg = demsg
                 , title='FishC员工管理系统')
        
# 主程序
def main():   
    manage = Manage()
    while True:
        choice = g.indexbox(msg = '请选择你要进行的操作',
                         title = '欢迎使用FishC员工管理系统',
                         choices = ('1. 员工录入','2. 信息查询','3. 员工升级','4. 员工降级','5. 退出程序'),
               )
        
        #调试使用
        #for each in manage.members:
        #    print(f'{each.card_no};{each.user_name};{each.psw};{each.score}')
        
        if choice == 0:
            manage.worker_regist()
        elif choice == 1:
            manage.worker_search()            
        elif choice == 2:
            manage.grade_up()            
        elif choice == 3:
            manage.degrade()            
        else:
            break
main()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-25 23:28:47 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-23 19:52:46 | 显示全部楼层
课后作业
0.不同的类的方法相同
1.减少代码量的同时,增加代码的功能
2.可以
3.看他的方法是鸭子,他就是鸭子
4.增加了内聚
5.不是

动动手
0.没有做出来,太多不想写了
My_namelist = []
def get_name():
    My_name = input('姓名:')
    while My_name in My_namelist:
        My_name = input('姓名已存在, 请从新输入姓名: ')
    My_namelist.append(My_name)
    return My_name

def get_job():
    return  input('职位 (E.普通员工;T.组长;M.经理) :')
Job_dict = {'E':['普通员工', 10],'T':['组长', 6],'M':['经理', 3]}
def get_grade():
    return int(input('级别: '))
def get_year():
    return input('工龄:')
def get_uid():
    return My_namelist.index() + 1000

def salary(self):
        if self.My_job == 'E':
            self.My_salary = 3000 + 500 * self.My_grade + 50 * self.My_year
        elif self.My_job == 'T':
            self.My_salary = 4000 + 800 * self.My_grade + 100 * self.My_year
        elif self.My_job == 'M':
            self.My_salary = 5000 + 1000 * (self.My_grade + self.My_year)
        print(f'录入成功! 姓名: {self.My_name}, 工号:{self.My_uid}, 薪资:{self.My_salary} ')
class Company:#类字典
    def __init__(self):
        self.My_job = get_job()
        self.My_grade = get_grade()
        self.My_year = get_year()
        self.My_uid = get_uid()

def main():
    while True:
        My_choose = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
        if My_choose == '1':
            My_name = get_name()
            globals()[My_name] = Company()

        elif My_choose == '2':
            My_choose2 = input('1.员工查询;2.职位查询: ')
            if My_choose2 == '1':
                My_uid = int(input('请输入工号:'))
                if (My_uid -1000 ) >= len(My_namelist):
                    print('该工号不存在!')                  

                else:
                    My_name = My_namelist[My_uid - 1000]
                    print(f'姓名: {My_name}')
                    print(f'职位:{globals()[My_name].My_job}')
                    print(f'级别:{globals()[My_name].My_grade}')
                    print(f'工龄:{globals()[My_name].My_year}')
                    print(f'薪资: {salary(globals()[My_name])}')
            else:
                My_job = get_job()
                counts = 0
                dict1 = {}
                for each in My_namelist:
                    if  globals()[each].My_job == My_job:
                        counts += 1
                        dict1[globals()[each].My_uid] = each
               
                if counts == 0:
                    print('目前公司没有组长')        
                    print(f'目前{Job_dict[My_job][0]}共有 {counts} 人:')
                    for each in dict1:
                        print(f'{each} - {dict1[each]}')  
        elif My_choose == '3':
            My_uid = int(input('请输入工号:'))
            if (My_uid -1000 ) >= len(My_namelist):
                print('该工号不存在!')
            else:
                x = globals()[My_namelist[My_uid - 1000]]
                print(f'{My_namelist[My_uid - 1000]}, 工号: {My_uid}, 当前职位:{x.My_job}{x.My_grade}, 当前薪资{salary(x)}')
                Up_grade = int(input('请输入需要增加的级数: '))
                if x.My_grade + Up_grade  

        elif My_choose == '4':
            Downgrade()
        elif My_choose == '5':
            break
main()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-2-22 18:15:58 | 显示全部楼层


1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-18 11:13:31 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-16 10:50:37 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-2-14 21:26:06 | 显示全部楼层
答案
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-19 18:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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