鱼C论坛

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

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

  [复制链接]
发表于 2023-3-29 21:12:33 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
0  、、、、

1  =====

2  算作运算符重载,多态是对类的一种称呼???

3  ????

4  
输入端增强了内聚
输出端降低耦合度????

5  不属于




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

使用道具 举报

发表于 2023-3-28 19:31:13 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-26 23:14:55 | 显示全部楼层
问答题:
0.根据调用对象的不同,返回的结果也不同来体现
1.降低耦合度
2.可以
3.我曾经跨过山河人海
4降低耦合度
5.是的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2023-3-24 18:29:47 | 显示全部楼层
0.类的继承
1.灵活
2.可以
3.不造
4.只要会嘎嘎叫的就是鸭子
5.不是
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-24 10:47:32 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-23 09:58:45 | 显示全部楼层
6
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-22 00:50:13 | 显示全部楼层
好难啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2023-3-20 21:29:52 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2023-3-20 18:32:01 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-20 18:03:49 | 显示全部楼层
1
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-20 16:28:45 | 显示全部楼层
查看
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-19 20:02:42 | 显示全部楼层
问答题:
0.接收不同的对象作为参数,并在不检查参数类型的情况下执行他的方法
1.可以适应不同的使用情况
2.可以
3.按图索骥
4.低耦合
5.属于



class Worker:
    def __init__(self, name, job, garde, year, uid):
        self.name = name
        self.job = job
        self.garde = garde
        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_garde(self):
        return self.garde

    def get_year(self):
        return self.year

    def salary(self):
        pass


class Employee(Worker):
    def salary(self):
        return 3000 + 500 * self.garde + 50 * self.year


class Teamleader(Worker):
    def salary(self):
        return 4000 + 800 * self.garde + 100 * self.year


class Manager(Worker):
    def salary(self):
        return 5000 + 1000 * (self.garde + self.year)


class Manage:
    def __init__(self):
        self.num = 10000
        self.member = []

    # 录入
    def key_in(self):
        name = input('姓名:')
        while 1:
            job = input('职位(E.普通员工;T.组长;M.经理):')
            if job not in ('E', 'T', 'M'):
                print('输入错误,请重新输入')
            else:
                break
        while 1:
            grade = int(input('等级:'))
            if job == 'E' and grade > 10:
                print('该职位最高级别为10级别,请重新录入')
            elif job == 'T' and grade > 6:
                print('该职位最高级别为6级别,请重新录入')
            elif job == 'M' and grade > 3:
                print('该职位最高级别为3级别,请重新录入')
            else:
                break
        year = int(input('工龄:'))
        number = self.num
        self.num += 1
        if job == 'E':
            n = Employee(name, job, grade, year, number)
        elif job == 'T':
            n = Teamleader(name, job, grade, year, number)
        elif job == 'M':
            n = Manager(name, job, grade, year, number)
        self.member.append([name, job, grade, year, number, n.salary()])
        print(f'录入成功!姓名:{name},工号:{number},薪资:{n.salary()}')

    def find(self):
        while 1:
            order = input('1.员工查询  2.职位查询')
            if order not in ('1', '2'):
                print('输入错误,请重新输入')
            else:
                break
        if order == '1':
            num = input('请输入工号:')
            for i in self.member:
                if str(i[4]) == num:
                    print(f'姓名:{i[0]}')
                    print(f'职位:{i[1]}')
                    print(f'级别:{i[2]}')
                    print(f'工龄:{i[3]}')
                    print(f'薪资:{i[5]}')
                    break
            else:
                print('该工号不存在')
        elif order == '2':
            while 1:
                garde = input('职位(E.普通员工;T.组长;M.经理)')
                if garde not in ('E', 'T', 'M'):
                    print('输入错误,请重新输入')
                else:
                    break
            ss = [i for i in self.member if i[1] == garde]
            q = {'E': '普通员工', 'T': '组长', 'M': '经理'}
            if ss:
                print(f'目前{q[garde]}共有{len(ss)}人')
                for i in ss:
                    print(f'{i[4]} - {i[0]}')
            else:
                print(f'目前公司没有{q[garde]}')

    def change_up(self):
        aa = 0
        num = input('请输入工号:')
        for i in self.member:
            if str(i[4]) == num:
                print(f'{i[0]},工号:{i[4]},当前职位:{i[1]+str(i[2])},当前薪资:{i[-1]}')
                up = int(input('请输入需要增加的级数'))
                i[2] += up
                qq = i[-1]
                if i[1] == 'E':
                    if 1 <= i[2] <= 10:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 3000 + 500 * i[2] + 50 * i[3]
                    elif 11 <= i[2] <= 16:
                        self.member[self.member.index(i)][2] = 1
                        self.member[self.member.index(i)][1] = 'T'
                        self.member[self.member.index(i)][-1] = 4000 + 800 + 100 * i[3]
                    elif 19 >= i[2] >= 17:
                        self.member[self.member.index(i)][2] = 1
                        self.member[self.member.index(i)][1] = 'M'
                        self.member[self.member.index(i)][-1] = 5000 + 1000 * (1 + i[3])
                    else:
                        aa = '输入错误'
                elif i[1] == 'T':
                    if 1 <= i[2] <= 6:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 4000 + 800 * i[2] + 100 * i[3]
                    elif 7 <= i[2] <= 9:
                        self.member[self.member.index(i)][2] = 1
                        self.member[self.member.index(i)][1] = 'M'
                        self.member[self.member.index(i)][-1] = 5000 + 1000 * (1 + i[3])
                    else:
                        aa = '输入错误'
                elif i[1] == 'M':
                    if 1 <= i[2] <= 3:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 5000 + 1000 * (i[2] + i[3])
                    else:
                        aa = '输入错误'
                if aa == '输入错误':
                    print(aa)
                    break
                else:
                    print('升级成功!')
                    print(
                        f'姓名:{i[0]},工号:{i[-2]},升级后职位:{self.member[self.member.index(i)][1]+str(self.member[self.member.index(i)][2])},薪资:{self.member[self.member.index(i)][-1]}(+{self.member[self.member.index(i)][-1] - qq})')
                break
        else:
            print('该工号不存在')

    def change_down(self):
        bb = 0
        num = input('请输入工号:')
        for i in self.member:
            if str(i[4]) == num:
                print(f'{i[0]},工号:{i[4]},当前职位:{i[1]+str(i[2])},当前薪资:{i[-1]}')
                down = int(input('请输入需要减少的级数'))
                i[2] -= down
                qq = i[-1]
                if i[1] == 'E':
                    if 0 < i[2] <= 10:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 3000 + 500 * i[2] + 50 * i[3]
                    else:
                        bb = '输入错误'
                elif i[1] == 'T':
                    if 0 < i[2] <= 6:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 4000 + 800 * i[2] + 100 * i[3]
                    elif -10 <= i[2] <= -1:
                        self.member[self.member.index(i)][2] = 10
                        self.member[self.member.index(i)][1] = 'E'
                        self.member[self.member.index(i)][-1] = 3000 + 500 * 10 + 50 * i[3]
                    else:
                        bb = '输入错误'
                elif i[1] == 'M':
                    if 0 < i[2] <= 3:
                        self.member[self.member.index(i)][2] = i[2]
                        self.member[self.member.index(i)][-1] = 5000 + 1000 * (i[2] + i[3])
                    elif -3 <= i[2] <= -1:
                        self.member[self.member.index(i)][2] = 6
                        self.member[self.member.index(i)][1] = 'T'
                        self.member[self.member.index(i)][-1] = 4000 + 800 * 6 + 100 * i[3]
                    elif -13 <= i[2] <= -4:
                        self.member[self.member.index(i)][2] = 10
                        self.member[self.member.index(i)][1] = 'E'
                        self.member[self.member.index(i)][-1] = 3000 + 500 * 10 + 50 * i[3]
                    else:
                        bb = '输入错误'
                if bb == '输入错误':
                    print(bb)
                    break
                else:
                    print('降级成功!')
                    print(
                        f'姓名:{i[0]},工号:{i[-2]},升级后职位:{self.member[self.member.index(i)][1] + str(self.member[self.member.index(i)][2])},薪资:{self.member[self.member.index(i)][-1]}({self.member[self.member.index(i)][-1] - qq})')
                break
        else:
            print('该工号不存在')

    def welcome(self):
        print('欢迎使用老白企业员工管理系统')
        while 1:
            order = input('请输入指令:1.录入  2.查询  3.升级  4.降级  5.退出')
            if order not in ('1', '2', '3', '4', '5'):
                print('输入错误,请重新输入')
            elif order == '1':
                self.key_in()
            elif order == '2':
                self.find()
            elif order == '3':
                self.change_up()
            elif order == '4':
                self.change_down()
            elif order == '5':
                print('感谢您使用老白企业员工管理系统')
                break


def main():
    ff = Manage()
    ff.welcome()


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

使用道具 举报

发表于 2023-3-19 17:10:15 | 显示全部楼层
一道代码题耗费了整个下午时间,呜呜
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 16:59:48 | 显示全部楼层
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):
        salary = 3000 + 500 * self.grade + 50 * self.year
        return salary   

class Teamleader(Employee):
    def salary(self):
        salary = 4000 + 800 * self.grade + 100 * self.year
        return salary

class Manager(Employee):
    def salary(self):
        salary = 5000 + 1000 * (self.grade + self.year)
        return salary


#正文
def main():
    uid = 10000
    employee_list = {}
    jobs = {'E':[],'T':[],'M':[]}

    e_max_grade = 10
    t_max_grade = 6
    m_max_grade = 3

    while True:
        select = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
        if select == '1':
            name = input("姓名:")
            job = input("职位(E.普通员工;T.组长;M.经理):")
            year = int(input("工龄:"))
            grade = int(input("级别:"))

            if job == 'E':
                if grade > e_max_grade:
                    grade = int(input(("该职位最高级别职位为%d,请重新录入级别:" % e_max_grade)))
                    
                e = Employee(name, job, grade, year, uid)
                employee_list[uid] = e
                jobs['E'].append(e.get_uid())
                print("录入成功!姓名:%s,工号:%d,薪资:%d" % (e.get_name(), e.get_uid(), e.salary()) )
                uid = uid + 1

            if job == 'T':
                if grade > t_max_grade:
                    grade = int(input(("该职位最高级别职位为%d,请重新录入级别:" % t_max_grade)))
                    
                t = Teamleader(name, job, grade, year, uid)
                employee_list[uid] = t
                jobs['T'].append(t.get_uid())
                print("录入成功!姓名:%s,工号:%d,薪资:%d" % (t.get_name(), t.get_uid(), t.salary()) )
                uid = uid + 1
     
            if job == 'M':
                if grade > m_max_grade:
                    grade = int(input(("该职位最高级别职位为%d,请重新录入级别:" % m_max_grade)))
                    
                m = Manager(name, job, grade, year, uid)
                employee_list[uid] = m
                jobs['M'].append(m.get_uid())
                print("录入成功!姓名:%s,工号:%d,薪资:%d" % (m.get_name(), m.get_uid(), m.salary()) )
                uid = uid + 1

        if select == '2':
            stype = int(input("1.员工查询;2.职位查询:"))
            if stype == 1:
                suid = int(input("请输入工号:"))
               
                try:
                    result = employee_list[suid]
                except KeyError:
                    print("该工号不存在!")
                    continue
                    
                print("姓名:%s" % result.get_name())
                print("职位:%s" % result.get_job())
                print("级别:%d" % result.get_grade())
                print("工龄:%d" % result.get_year())
                print("薪资:%d" % result.salary())

            if stype == 2:
                sjob = input("职位(E.普通员工;T.组长;M.经理):")
                scnt = len(jobs[sjob])
               
                if sjob == 'E':
                    print("目前普通员工共有%d人:" % scnt)
                if sjob == 'T':
                    print("目前组长共有%d人:" % scnt)
                if sjob == 'M':
                    print("目前经理共有%d人:" % scnt)

                for iuid in jobs[sjob]:
                    #print(iuid)
                    #print(jobs)
                    ie = employee_list[iuid]
                    print("%d - %s" % (ie.get_uid(), ie.get_name()))
                    
        if select == '3':
            suid = int(input("请输入工号:"))
            e = employee_list[suid]
            print("%s ,工号:%d ,当前职位:%s,当前薪资:%d" % (e.get_name(), e.get_uid(),e.get_job() + str(e.get_grade()), e.salary() ))
            sgrade = int(input("请输入需要增加的级数:"))
            n_salsry = e.salary()  #目前的薪资
            
            if e.get_job() == 'E':
                if e.get_grade() + sgrade > e_max_grade :                  
                    e.grade = 1
                    e.job = 'T'

                    #更新数据库
                    #移出E类别,加入T类别
                    jobs['E'].remove(suid)
                    jobs['T'].append(suid)
                    #原来存的是Emloyee类,升级后变成Teamleader类
                    ne =  Teamleader(e.name, e.job, e.grade, e.year, e.uid)
                    employee_list[suid] = ne
               
                else:
                    e.grade = e.get_grade() + sgrade
                    
            if e.get_job() == 'T':
                if e.get_grade() + sgrade > t_max_grade :
                    e.grade = 1
                    e.job = 'M'

                    #更新数据库
                    #移出T类别,加入M类别
                    jobs['T'].remove(suid)
                    jobs['M'].append(suid)
                    #原来存的是Teamleader类,升级后变成Manager类
                    ne =  Manager(e.name, e.job, e.grade, e.year, e.uid)
                    employee_list[suid] = ne
                    
                else:
                    e.grade = e.get_grade() + sgrade

            if e.get_job() == 'M':
                if e.get_grade() + sgrade > m_max_grade :
                    print("已超经理最高级别,按最高级处理%d级" % m_max_grade)
                    e.grade = m_max_grade
                else:
                    e.grade = e.get_grade() + sgrade

            s_salary = ne.salary() #升级后的薪资
            gap_salary = s_salary - n_salsry

            #更新数据库(字典表)
            #上面直接修改了实例对象的属性值,不用在更新字典表了

            print("升级成功!")
            print("%s ,工号:%d ,当前职位:%s,升级后薪资:%d (+ %d )" % (ne.get_name(), ne.get_uid(),ne.get_job() + str(ne.get_grade()), ne.salary(), gap_salary))
      

                    
        if select == '4':
            suid = int(input("请输入工号:"))
            e = employee_list[suid]
            print("%s ,工号:%d ,当前职位:%s,当前薪资:%d" % (e.get_name(), e.get_uid(),e.get_job() + str(e.get_grade()), e.salary() ))
            sgrade = int(input("请输入需要减少的级数:"))
            n_salsry = e.salary()  #目前的薪资
            
            if e.get_job() == 'E':
                if e.get_grade() - sgrade<=0:
                    print("已超普通员工最低级别,按最低级处理1级")
                    e.grade = 1
               
                else:
                    e.grade = e.get_grade() - sgrade
                    
            if e.get_job() == 'T':
                if e.get_grade()  - sgrade<=0:
                    e.grade = e_max_grade
                    e.job = 'E'

                    #更新数据库
                    #移出T类别,加入E类别
                    jobs['T'].remove(suid)
                    jobs['E'].append(suid)
                    #原来存的是Teamleader类,降级后变成Employee类
                    ne =  Employee(e.name, e.job, e.grade, e.year, e.uid)
                    employee_list[suid] = ne
                    
                else:
                    e.grade = e.get_grade() - sgrade

            if e.get_job() == 'M':
                if e.get_grade()  - sgrade<=0:
                    e.grade = t_max_grade
                    e.job = 'T'

                    #更新数据库
                    #移出M类别,加入T类别
                    jobs['M'].remove(suid)
                    jobs['T'].append(suid)
                    #原来存的是Manager类,降级后变成Teamleader类
                    ne =  Teamleader(e.name, e.job, e.grade, e.year, e.uid)
                    employee_list[suid] = ne
                else:
                    e.grade = e.get_grade() - sgrade

            s_salary = ne.salary() #升级后的薪资
            gap_salary = n_salsry -s_salary

            #更新数据库(字典表)
            #上面直接修改了实例对象的属性值,不用在更新字典表了

            print("升级成功!")
            print("%s ,工号:%d ,当前职位:%s,升级后薪资:%d (- %d )" % (ne.get_name(), ne.get_uid(),ne.get_job() + str(ne.get_grade()), ne.salary(), gap_salary))

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

使用道具 举报

发表于 2023-3-19 11:43:14 | 显示全部楼层
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.不属于
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-19 10:44:20 | 显示全部楼层
0.通过类的继承,在子类中重写父类的方法,不同的子类的实例化对象调用同名的方法时就会呈现不一样的作用效果。
1.可以很好的应对各种不同的输入对象,扩展了运算符、函数和对象的功能丰富性
2可以,这里体现的就是运算符的多样性
3.你看起来像鸭子,那么你就是鸭子
4.降低了耦合度
5.不是,两次运算都是对数据类型求和,没有体现不同场景这个条件

0.
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
   
class Employee(Staff):  
    def salary(self):
        grade=self.get_grade()
        age=self.get_year()
        return 3000+500*grade+50*age
   
class Teamleader(Staff):
    def salary(self):
        grade=self.get_grade()
        age=self.get_year()
        return 4000+800*grade+100*age
   
class Manager(Staff):
    def salary(self):
        grade=self.get_grade()
        age=self.get_year()
        return 5000+1000*(grade+age)
   
class Main:
    message={}
    uid=10000
   
    #录入功能
    def entering(self):
        name=input("请输入员工姓名:")
        job=input("请输入职位(E:普通员工;T:组长;M:经理):")
        while True:
            try:
                year=int(input("请输入工龄:"))
                break
            except ValueError:
                print("必须输入整数!")
               
        while True:
            try:
                grade=int(input("请输入级别:"))
                if job=='E' and grade>10:
                    raise TypeError("该职位最高级别为10\n请重新输入!")
                if job=='T' and grade>6:
                    raise TypeError("该职位最高级别为6\n请重新输入!")
                if job=='M' and grade>3:
                    raise TypeError("该职位最高级别为3\n请重新输入!")
                    
                break
            except ValueError:
                print("必须输入整数!")
            
            except TypeError as e:
                print(e)
        
        if job=='E':
            staff=Employee(name,job,grade,year,self.uid)
            
        elif job=='T':
            staff=Teamleader(name,job,grade,year,self.uid)
        
        elif job=='M':
            staff=Manager(name,job,grade,year,self.uid)
            
        self.message[self.uid]=staff
        salary=staff.salary()
        self.uid+=1
        print("录入成功!")
        print(f"姓名:{staff.get_name()} 工号:{staff.get_uid()} 薪资{salary}")
           
    #验证输入工号是否存在
    def uid_verify(self,uid):
        if not self.message.get(uid):
            print("工号不存在!")
        else:
            return uid
        
    #统计员工人数(与查询功能的find()方法结合使用)
    def people_num(self,ty):
        count=0
        ls=[]
        for each in self.message.values():
            if each.job==ty:
                ls.append(each)
                count+=1
        if ty=='E':
            job="普通员工"
        elif ty=='T':
            job="组长"
        elif ty=='M':
            job="经理"
        
        return job,count,ls
   
    #查询功能         
    def find(self):
        way=input("1.员工查询;2.职位查询:")
        
        if way=='1':
            uid=int(input("请输入工号:"))
            uid=self.uid_verify(uid)
            if uid:
                staff=self.message[uid]
                salary=staff.salary()
                print(f"姓名:{staff.get_name()}\n职位:{staff.get_job()}")
                print(f"级别:{staff.get_grade()}\n薪资:{salary}")
        if way=='2':
            job=input("职位(E:普通员工;T:组长;M:经理:)")
            re=self.people_num(job)
            if re[1]==0:
                print(f"目前公司没有{re[0]}位置")
            else:
                print(f"目前{re[0]}共有{re[1]}人")
                for each in re[2]:
                    print(f"{each.uid}-{each.name}")
               
            
    #升级功能
    def up_grade(self):
        uid=int(input("请输入工号:"))
        uid=self.uid_verify(uid)
        if uid:
            staff=self.message[uid]
            salary1=staff.salary()
            print(f"姓名:{staff.get_name()} 工号:{uid} 职位:{staff.get_job()}\
                  当前薪资:{salary1}")
            
            add_grade=int(input("请输入要增加的级数:"))
            
            job=staff.job
            grade=staff.grade
            if job=='E' and grade+add_grade>10:
                self.message[uid]=Teamleader(staff.name,'T',1,staff.year,uid)
              
            else:
                staff.grade+=add_grade
               
            if job=='T' and grade+add_grade>6:
                self.message[uid]=Manager(staff.name,'M',1,staff.year,uid)
            
            else:
                staff.grade+=add_grade
               
            if job=='M' and grade+add_grade>3:
                staff.grade==3
            
            else:
                staff.grade+=add_grade
            
            new_staff=self.message[uid]
            salary2=new_staff.salary()
            print("升级成功!")
            print(f"姓名:{new_staff.get_name()}\n工号:{uid}\n职位:{new_staff.get_job()}")
            print(f"升级后薪资:{salary2}+({salary2-salary1})")
   
    #降级功能
    def down_grade(self):
        uid=int(input("请输入工号:"))
        uid=self.uid_verify(uid)
        if uid:
            staff=self.message[uid]
            salary1=staff.salary()
            print(f"姓名:{staff.get_name()} 工号:{uid} 职位:{staff.get_job()}\
                  当前薪资:{salary1}")
            
            add_grade=int(input("请输入要减少的级数:"))
            
            job=staff.job
            grade=staff.grade
            if job=='E' and grade-add_grade<=0:
                staff.grade==1
            
            else:
                staff.grade-=add_grade
               
            if job=='T' and grade-add_grade<=0:
                self.message[uid]=Teamleader(staff.name,'E',10,staff.year,uid)
            
            else:
                staff.grade-=add_grade
               
            if job=='M' and grade-add_grade<=0:
                self.message[uid]=Teamleader(staff.name,'T',6,staff.year,uid)
            
            else:
                staff.grade-=add_grade
               
            new_staff=self.message[uid]
            salary2=new_staff.salary()
            print("降级成功!")
            print(f"姓名:{new_staff.get_name()}\n工号:{uid}\n职位:{new_staff.get_job()}")
            print(f"降级后薪资:{salary2}-({salary1-salary2})")
   
    #程序功能接口
    def main(self):
        while True:
            order=input("1.录入;2.查询;3.升级;4.降级;5.退出:")
            
            if order=='1':
                self.entering()
            
            elif order=='2':
                self.find()
            
            elif order=='3':
                self.up_grade()
            
            elif order=='4':
                self.down_grade()
               
            elif order=='5':
                break
            
            else:
                print("输入命令有误!")
               
m=Main()
m.main()
               
               
            
            
               
            
            
               
            
        
        
        
        
        
        
        
               
        
            

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

使用道具 举报

发表于 2023-3-18 23:39:35 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-21 12:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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