|
|
发表于 2023-8-25 19:52:33
|
显示全部楼层
- class Personnel:
- def __init__(self,name,job,grade,year,uid):
- self.name = name
- self.job = job
- self.grade = int(grade)
- self.year = int(year)
- self.uid = uid
- self.wage = 0
-
- 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 salary(self):
- if self.job == 'E':
- self.wage = 3000 + 500 * self.grade + 50 * self.year
- elif self.job == 'T':
- self.wage = 4000 + 800 * self.grade + 100 * self.year
- elif self.job == 'M':
- self.wage = 5000 + 1000 * (self.grade + self.year)
- return self.wage
- def adj_grade(self):
- if self.job == 'E':
- if self.grade > 10:
- self.job = 'T'
- self.grade = 1
- elif self.grade < 1:
- sele.grade = 1
- elif self.job == 'T':
- if self.grade < 1:
- self.job = 'E'
- self.grade = 10
- elif self.grade > 6:
- self.job = 'M'
- self.grade = 1
- elif self.job == 'M':
- if self.grade < 1:
- self.job = 'T'
- self.grade = 6
- elif self.grade > 3:
- self.grade = 3
-
- class Manage:
- def __init__(self):
- self.personnel = {}
- self.E = []
- self.T = []
- self.M = []
- self.uid = 10000
- def use(self):
- ins = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
- while ins != '5':
- if ins == '1':
- self.add_people()
- if ins == '2':
- self.check()
- if ins == '3':
- self.upgrade()
- if ins == '4':
- self.demote()
- ins = input('\n1.录入;2.查询;3.升级;4.降级;5.退出:')
- def add_people(self):
- name = input('姓名:')
- job = input('职位(E.普通员工;T.组长;M.经理):')
- year = input('工龄:')
- grade = input('级别:')
- p = Personnel(name,job,grade,year,self.uid)
- self.personnel[self.uid] = p
- if job == 'E':
- self.E.append((str(self.uid),name))
- if job == 'T':
- self.T.append((str(self.uid),name))
- if job == 'M':
- self.M.append((str(self.uid),name))
- print(f'录入成功!姓名:{name},工号:{self.uid},薪资:{p.salary()}')
- self.uid += 1
- def check(self):
- op = input('1.员工查询;2.职位查询:')
- if op == '1':
- uid = int(input('请输入工号:'))
- if uid not in self.personnel:
- print('该工号不存在!')
- else:
- p = self.personnel[uid]
- print('姓名:',p.name)
- print('职位:',p.job)
- print('级别:',p.grade)
- print('工龄:',p.year)
- print('薪资:',p.wage)
- if op == '2':
- grade = input('职位(E.普通员工;T.组长;M.经理):')
- if grade == 'E':
- if self.E:
- print(f'目前普通员工共有{len(self.E)}人')
- for each in self.E:
- print(' - '.join(each))
- else:
- print('目前公司没有普通员工!')
- if grade == 'T':
- if self.T:
- print(f'目前组长共有{len(self.T)}人')
- for each in self.T:
- print(' - '.join(each))
- else:
- print('目前公司没有组长!')
- if grade == 'M':
- if self.M:
- print(f'目前普通员工共有{len(self.M)}人')
- for each in self.M:
- print(' - '.join(each))
- else:
- print('目前公司没有普通员工!')
- def upgrade(self):
- uid = int(input('请输入工号:'))
- if self.personnel.get(uid):
- person = self.personnel[uid]
- old_wage = person.wage
- print(f'{person.name},工号:{uid},当前职位:{person.job}{person.grade},当前薪资:{person.wage}')
- num = int(input('请输入需要增加的级数:'))
- person.grade += num
- person.adj_grade()
- person.salary()
- print('升级成功!')
- new_wage = person.wage
- adjust = new_wage - old_wage
- print(f'{person.name},工号:{uid},升级后职位:{person.job}{person.grade},升级后薪资:{new_wage}({adjust:+})')
- else:
- print('该工号不存在')
- def demote(self):
- uid = int(input('请输入工号:'))
- if self.personnel.get(uid):
- person = self.personnel[uid]
- old_wage = person.wage
- print(f'{person.name},工号:{uid},当前职位:{person.job}{person.grade},当前薪资:{person.wage}')
- num = int(input('请输入需要减少的级数:'))
- person.grade -= num
- person.adj_grade()
- person.salary()
- print('降级成功!')
- new_wage = person.wage
- adjust = new_wage - old_wage
- print(f'{person.name},工号:{uid},降级后职位:{person.job}{person.grade},降级后薪资:{new_wage}({adjust:+})')
- else:
- print('该工号不存在')
- def main():
- m = Manage()
- m.use()
复制代码 |
|