|
|
发表于 2026-6-27 16:46:00
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
变量不同,反馈也不同
第 1 题的答案是:
方便代码扩展
第 2 题的答案是:
可以
第 3 题的答案是:
第 4 题的答案是:
增强了内聚,降低耦合
第 5 题的答案是:
是
-------- 动动手 --------
请将第 0 题的代码写在下方:
class Member:
def __init__(self,name,grade,year,uid):
self.name = name
self.grade = grade
self.year = year
self.uid = uid
class Employee(Member):
job = 'E'
class Teamleader(Member):
job = 'T'
class Manager(Member):
job = 'M'
class Main:
message_d = {}
uid = 10000
message_d_job = {'E':[],'T':[],'M':[]}
def choose(self):
while True:
function = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
if function == '1':
self.enlist()
elif function == '2':
self.get()
elif function == '3':
self.upgrate()
elif function == '4':
self.downgrate()
else:
print("已退出")
break
def enlist(self):
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
while job not in ('E','T','M'):
job = input("输入错误,请重试:")
year = int(input("工龄:"))
grade = int(input("级别:"))
if job == 'E':
self.message_d[self.uid] = Employee(name,grade,year,self.uid)
elif job == 'T':
self.message_d[self.uid] = Teamleader(name,grade,year,self.uid)
else:
self.message_d[self.uid] = Manager(name,grade,year,self.uid)
self.message_d_job[job].append((self.uid,name))
self.salary(self.uid)
print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.message_d[self.uid].salary}")
self.uid += 1
def get(self):
sub_function = input("1.员工查询;2.职位查询:")
if sub_function == '1':
uid = int(input("请输入工号:"))
if uid in self.message_d:
self.get_name(uid)
self.get_job(uid)
self.get_grade(uid)
self.get_year(uid)
salary = self.salary(uid)
print(f'薪资:{salary}')
else:
print("该工号不存在!")
else:
job = input("职位(E.普通员工;T.组长;M.经理):")
self.get_uid(job)
def get_uid(self,job):
element = self.message_d_job[job]
length = len(element)
if job == 'E':
member = '普通员工'
elif job == 'T':
member = '组长'
else:
member = '经理'
print(f"目前{member}共有{length}人:")
for i in element:
print(i[0],' - ',i[1])
def get_name(self,uid):
print('姓名:',self.message_d[uid].name)
def get_job(self,uid):
print("职位:",self.message_d[uid].job)
def get_grade(self,uid):
print("级别:",self.message_d[uid].grade)
def get_year(self,uid):
print("工龄:",self.message_d[uid].year)
def salary(self,uid):
job = self.message_d[uid].job
year = self.message_d[uid].year
grade = self.message_d[uid].grade
if job == 'E':
func = lambda x,y:3000 + 500 * y + 50 * x
elif job == 'T':
func = lambda x,y:4000 + 800 * y + 100 * x
else:
func = lambda x,y:5000 + 1000 * ( x + y )
salary = func(year,grade)
self.message_d[uid].salary = salary
return salary
def upgrate(self):
uid = int(input("请输入工号:"))
_ = self.message_d[uid]
if uid in self.message_d:
print(f"{_.name},工号:{_.uid},当前职位:{_.job}{_.grade},当前薪资:{_.salary}")
up = int(input("请输入需要增加的级数:"))
a = up + _.grade
job = _.job
if job == 'E' and a > 10:
a = 1
job = 'T'
elif job == 'T' and a > 6:
a = 1
job = 'M'
elif job == 'M' and a > 3:
print("超过最高职位,无法执行")
_.grade = a
_.job = job
_.salary = self.salary(uid)
print("升级成功!")
print(f"{_.name},工号:{_.uid},升级后职位:{_.job}{_.grade},升级后薪资:{_.salary}")
else:
print("该工号不存在")
def downgrate(self):
uid = int(input("请输入工号:"))
_ = self.message_d[uid]
if uid in self.message_d:
print(f"{_.name},工号:{_.uid},当前职位:{_.job}{_.grade},当前薪资:{_.salary}")
down = int(input("请输入需要减少的级数:"))
a = _.grade - down
job = _.job
if job == 'E' and a <= 0:
print("低于最低职位,无法执行!")
elif job == 'T' and a <= 0:
a = 10
job = 'E'
elif job == 'M' and a <= 0:
a = 6
job = 'T'
_.grade = a
_.job = job
_.salary = self.salary(uid)
print("升级成功!")
print(f"{_.name},工号:{_.uid},降级后职位:{_.job}{_.grade},降级后薪资:{_.salary}")
else:
print("该工号不存在!")
def main():
m = Main()
m.choose()
|
|