|
|
发表于 2026-9-20 09:31:10
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
class Workers:
def __init__(self,uid,name,job,grade,year,salary):
self.uid = uid
self.name = name
self.job = job
self.grade = grade
self.year = year
self.salary = salary
class Checkin:
def is_exist(self):
uid = int(input('请输入工号:'))
if self.employees.get(uid):
return uid
else:
print('该工号不存在')
class Progress(Checkin):
def __init__(self):
self.employees = {}
self.uid = 10000
def get_uid(self,uid):
if self.employees.get(uid):
return uid
def get_name(self,uid):
name = self.employees[uid].name
return name
def get_job(self,uid):
job = self.employees[uid].job
return job
def get_grade(self,uid):
grade = self.employees[uid].grade
return grade
def get_year(self,uid):
year = self.employees[uid].year
return year
def get_salary(self,job,grade,year):
if job == 'E':
self.salary = 3000 + 500*grade + 50*year
if job == 'T':
self.salary = 4000 + 800*grade + 100*year
if job == 'M':
self.salary = 5000 + 1000*(grade+year)
return self.salary
def SalaryMixin(self,uid):
if self.employees[uid].job == 'E':
self.salary = 3000 + 500*self.employees[uid].grade + 50*self.employees[uid].year
if self.employees[uid].job == 'T':
self.salary = 4000 + 800*self.employees[uid].grade + 50*self.employees[uid].year
if self.employees[uid].job == 'M':
self.salary = 5000 + 1000*(self.employees[uid].grade+self.employees[uid].year)
return self.salary
def enter(self):
name = input('姓名:')
job = input('职位(E.普通员工;T.组长;M.经理):')
while job not in ('E','T','M'):
job = input('输入错误请重新输入:/n (E.普通员工;T.组长;M.经理):')
year = int(input('工龄:'))
grade = int(input('级别:'))
if job == 'E':
while grade <= 0 or grade > 10:
grade = int(input('该职位最高级别为10,请重新录入级别:'))
if job == 'T':
while grade <=0 or grade > 6:
grade = int(input('该职位最高级别为6,请重新录入级别:'))
if job == 'M':
while grade <=0 or grade > 3:
grade = int(input('该职位最高级别为3,请重新录入级别:'))
salary = self.get_salary(job,grade,year)
worker = Workers(self.uid,name,job,grade,year,salary)
self.employees[self.uid] = worker
print(f'录入成功!姓名:{name},工号:{self.uid},薪资:{salary}')
self.uid += 1
def check(self):
c = input('1.员工查询;2.职位查询:')
if c == '1':
uid = self.is_exist()
if uid:
print(f'姓名:{self.employees[uid].name}')
print(f'职位:{self.employees[uid].job}')
print(f'级别:{self.employees[uid].grade}')
print(f'工龄:{self.employees[uid].year}')
print(f'薪资:{self.employees[uid].salary}')
if c == '2':
job = input('职位(E.普通员工;T.组长;M.经理):')
m_ = []
d_ = {'E':'普通员工','T':'组长','M':'经理'}
for i in self.employees.keys():
if self.employees[i].job == job:
m_.append(i)
if len(m_) != 0:
print(f'目前{d_[job]}共有{len(m_)}人:')
for m in m_:
print(f'{m} - {self.employees[m].name}')
else:
print(f'目前公司没有{d_[job]}')
def up(self):
uid = self.is_exist()
if uid:
print(f'{self.employees[uid].name},工号:{uid},当前职位:{self.employees[uid].job}{self.employees[uid].grade},当前薪资:{self.employees[uid].salary}')
add = int(input('请输入需要增加的级数:'))
if self.get_job(uid) == 'E':
if self.get_grade(uid)+add > 10:
self.employees[uid].job = 'T'
self.employees[uid].grade = 1
else:
self.employees[uid].grade = self.get_grade(uid)+add
elif self.get_job(uid) == 'T':
if self.get_grade(uid)+add > 6:
self.employees[uid].job = 'M'
self.employees[uid].grade = 1
else:
self.employees[uid].grade = self.get_grade(uid)+add
elif self.get_job(uid) == 'M':
if self.get_grade(uid)+add > 3:
print('超出最大职级')
return
else:
self.employees[uid].grade = self.get_grade(uid)+add
print('升级成功')
print(f'{self.get_name(uid)},工号:{uid},升级后职位:{self.get_job(uid)}{self.get_grade(uid)},升级后薪资:{self.SalaryMixin(uid)}(+{self.SalaryMixin(uid)-self.employees[uid].salary})')
self.employees[uid].salary = self.SalaryMixin(uid)
def down(self):
uid = self.is_exist()
if uid:
print(f'{self.employees[uid].name},工号:{uid},当前职位:{self.employees[uid].job}{self.employees[uid].grade},当前薪资:{self.employees[uid].salary}')
sub = int(input('请输入需要减少的级数:'))
if self.get_job(uid) == 'M':
if self.get_grade(uid)-sub <= 0:
self.employees[uid].job = 'T'
self.employees[uid].grade = 6
else:
self.employees[uid].grade = self.get_grade(uid)-sub
elif self.get_job(uid) == 'T':
if self.get_grade(uid)-sub <= 0:
self.employees[uid].job = 'E'
self.employees[uid].grade = 10
else:
self.employees[uid].grade = self.get_grade(uid)-sub
elif self.get_job(uid) == 'E':
if self.get_grade(uid)-sub <= 0:
print('超出最小职级')
return
else:
self.employees[uid].grade = self.get_grade(uid)-sub
print('降级成功')
print(f'{self.get_name(uid)},工号:{uid},降级后职位:{self.get_job(uid)}{self.get_grade(uid)},升级后薪资:{self.SalaryMixin(uid)}(-{self.employees[uid].salary-self.SalaryMixin(uid)})')
self.employees[uid].salary = self.SalaryMixin(uid)
def main():
p = Progress()
e = 0
while e != '5':
e = input('1.录入;2.查询;3.升级;4.降级;5.退出:')
if e == '1':
p.enter()
if e == '2':
p.check()
if e == '3':
p.up()
if e == '4':
p.down()
|
|