|
|
发表于 2026-7-28 23:01:20
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
同样的方法面对不同对象有不同作用,比如 ‘*’ 号 整数和整数是相乘 ,字符串和整数是把该字符串复制int遍。
第 1 题的答案是:
灵活
第 2 题的答案是:
可以
第 3 题的答案是:
when i see a bird that walks like a duck swims like a duck quacks like a duck i call that bird a duck
第 4 题的答案是:
降低了耦合
第 5 题的答案是:
属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
class BaseEmployee:
def __init__(self,uid,name,job,grade,year):
self.uid = uid
self.name = name
self.job = job
self.grade = grade
self.year = year
class Employee(BaseEmployee):
def salary(self):
return 3000 + 500 * self.grade + 50 * self.year
class Teamleader(BaseEmployee):
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
class Manager(BaseEmployee):
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
class Manage:
def __init__(self):
self.emp = {}
self.number = 9999
self.all_job = {'E':'普通员工',
'T':'组长',
'M':'经理'}
self.max_grade = {'E':10,
'T':6,
'M':3,}
self.now_job = ['E','T','M']
def set_employee(self):
self.name = input('请输入员工姓名: ')
self.job = input('职位(E.普通员工;T.组长;M.经理): ')
self.year = int(input('员工工龄: '))
self.grade = int(input('员工级别: '))
while self.year < 0:
print('员工工龄不能小于0,请重新输入: ')
self.year = int(input('员工工龄: '))
while self.grade < 1:
print('员工级别不能小于1,请重新输入: ')
self.grade = int(input('员工级别: '))
while self.grade > self.max_grade[self.job]:
print(f'员工级别"{self.grade}"超过当前职位"{self.job}"的上限,请重新输入 ')
self.job = input('职位(E.普通员工;T.组长;M.经理): ')
self.grade = int(input('员工级别: '))
self.number += 1
if self.job == 'E':
self.emp[self.number] = Employee(self.number,self.name,self.job,self.grade,self.year)
elif self.job == 'T':
self.emp[self.number] = Teamleader(self.number,self.name,self.job,self.grade,self.year)
elif self.job == 'M':
self.emp[self.number] = Manager(self.number,self.name,self.job,self.grade,self.year)
print(f'录入成功!姓名{self.name}, 工号:{self.number}, 薪资: {self.emp[self.number].salary()}')
def find_job(self,find):
each = 0
allE = []
for i in self.emp:
if self.emp[i].job == find:
each += 1
allE.append(i)
return each , allE
def find_employee(self):
while True:
chose = input('1.员工查询; 2.职位查询: ')
if chose == '1':
find_uid = int(input('请输入工号:'))
if find_uid in self.emp:
print(f'姓名:{self.emp[find_uid].name}'
f'职位:{self.emp[find_uid].job}'
f'级别:{self.emp[find_uid].grade}'
f'工龄:{self.emp[find_uid].year}'
f'薪资:{self.emp[find_uid].salary()}')
break
else:
print('该工号不存在')
elif chose == '2':
find = input('请输入职位(E.普通员工;T.组长;M.经理): ')
each, allE, = self.find_job(find)
if each == 0:
print(f'公司当前没有{self.all_job[find]}')
else:
print(f'当前{self.all_job[find]}共有 {each} 人:')
for i in allE:
print(f'{i} - {self.emp[i].name}')
break
else:
print('请输入正确指令')
continue
def up(self):
while True:
uid = int(input('请输入工号:'))
if uid in self.emp:
break
else:
print('工号不存在请重新输入')
emp = self.emp[uid]
print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')
up_grade = int(input('请输入需要增加的级数:'))
zhiwei = self.now_job.index(emp.job)
while up_grade + emp.grade > self.max_grade[emp.job]:
up_grade += emp.grade
if emp.job == self.now_job[-1]:
print('已经是最高等级')
emp.job = self.now_job[-1]
emp.grade = self.max_grade[emp.job]
print(f'当前职位:{self.all_job[emp.job]} {emp.grade}级')
break
if len(self.now_job)-1 >= zhiwei:
up_grade -= self.max_grade[self.now_job[zhiwei]]
zhiwei += 1
emp.job = self.now_job[zhiwei]
emp.grade = 0
continue
if up_grade == 0:
emp.grade = 1
print(f'升级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')
break
else:
emp.grade += up_grade
print(f'升级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')
def low(self):
while True:
uid = int(input('请输入工号:'))
if uid in self.emp:
break
else:
print('工号不存在请重新输入')
emp = self.emp[uid]
print(f'姓名:{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')
low_grade = int(input('请输入需要降低的级数:'))
zhiwei = self.now_job.index(emp.job)
while emp.grade - low_grade < 1:
if zhiwei == 0:
print('已经是最低等级')
emp.job = self.now_job[zhiwei]
emp.grade = 1
print(f'当前职位:{self.all_job[emp.job]} {emp.grade}级')
break
if zhiwei > 0:
low_grade -= emp.grade
zhiwei -= 1
emp.job = self.now_job[zhiwei]
emp.grade = self.max_grade[emp.job]
continue
elif low_grade == 0:
emp.job = self.now_job[zhiwei]
emp.grade = self.max_grade[emp.job]
continue
elif low_grade > 0:
emp.job = self.now_job[zhiwei]
emp.grade -= low_grade
continue
else:
emp.grade -= low_grade
print(f'降级成功,当前职位:{self.all_job[emp.job]} {emp.grade}级')
a = Manage()
while True:
chose = int(input('1.录入;2.查询;3.升级;4.降级;5.退出;'))
if chose == 1:
a.set_employee()
elif chose == 2:
a.find_employee()
elif chose == 3:
a.up()
elif chose == 4:
a.low()
elif chose == 5:
print('感谢使用系统~')
break
|
|