|
|
发表于 2026-5-20 13:34:49
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
不同的类可以使用相同的方法,得到不同的结果
第 1 题的答案是:
灵活
第 2 题的答案是:
是的
第 3 题的答案是:
第 4 题的答案是:
增强了
第 5 题的答案是:
不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
class user:
def __init__(self,job):
self.job=job
def get_uid(self):
print(f"工号: {self.uid}")
def get_name(self):
print(f"姓名: {self.name}")
def get_job(self):
print(f"职位: {self.job}")
def get_grade(self):
print(f"级别: {self.grade}")
def get_year(self):
print(f"工龄: {self.year}")
def salary(self,jc,gw,gl):
self.mony=jc+gw*int(self.grade)+gl*int(self.year)
"""
if self.job == 'E':
self.mony=3000 + 500*int(self.grade)+50*int(self.year)
elif self.job== 'T':
self.mony=4000 + 800*int(self.grade)+100*int(self.year)
else:
self.mony=5000 + 1000*(int(self.grade)+int(self.year))
"""
class Employee(user):
def __init__(self,name,grade,year,uid):
self.name=name
self.year=year
self.uid=uid
super().__init__("E")
while grade > 10:
grade = input("该职位最高级别为10,请重新录入级别:")
self.grade=grade
def salary(self):
super().salary(3000,500,50)
class Teamleader(user):
def __init__(self,name,grade,year,uid):
self.name=name
self.year=year
self.uid=uid
super().__init__("T")
while grade > 6:
grade = int(input("该职位最高级别为10,请重新录入级别:"))
self.grade=grade
def salary(self):
super().salary(4000,800,100)
class Manager(user):
def __init__(self,name,grade,year,uid):
self.name=name
self.year=year
self.uid=uid
super().__init__("M")
while grade > 3:
grade = input("该职位最高级别为10,请重新录入级别:")
self.grade=grade
def salary(self):
super().salary(5000,1000,1000)
##定义功能函数
def create(count):
name=input("姓名:")
job=input("职位(E.普通员工;T.组长;M.经理):")
year=int(input("工龄:"))
grade=int(input("级别:"))
if job == 'E':
return Employee(name,grade,year,count)
elif job == 'T':
return Teamleader(name,grade,year,count)
else:
return Manager(name,grade,year,count)
def search(uid):
s=input("1.员工查询;2.职位查询:")
if s=='1':
s2=int(input("请输入工号:"))
if s2 not in uid:
print("该工号不存在!")
else:
uid[s2].get_name()
uid[s2].get_job()
uid[s2].get_grade()
uid[s2].get_year()
uid[s2].salary()
print(f"当前薪资: {self.mony}")
else:
s2=input("职位(E.普通员工;T.组长;M.经理):")
num = 0
name=[]
for i in uid:
if uid[i].job == s2:
num +=1
name.append([uid[i].uid,uid[i].name])
if s2=='E':
print(f"目前普通员工共有{num}人:")
elif s2=="T":
print(f"目前组长共有{num}人:")
else:
print(f"目前经理共有{num}人:")
for i in name:
print(f"{i[0]} - {i[1]}")
def up(uid):
s=int(input("请输入工号:"))
if s not in uid:
print("该工号不存在")
else:
a=uid[s]
print(f"{a.name},工号:{a.uid},当前职位:{a.job}{a.grade}",end=',')
a.salary()
s2=int(input("请输入需增加的级数:"))
moy=a.mony
if uid[s].job == 'E':
if (uid[s].grade+s2) > 10:
uid[s]=Teamleader(a.name,0,a.year,a.uid)
else:
a.grade += s2
elif uid[s].job == 'T':
if (uid[s].grade+s2) > 6:
uid[s]=Manager(a.name,0,a.year,a.uid)
else:
a.grade += s2
else:
if (uid[s].grade+s2) > 3:
uid[s].grade = 3
else:
a.grade += s2
uid[s].salary()
print(f"升级成功")
print(f"{uid[s].name},工号:{uid[s].uid},升级后职位:{uid[s].job}{uid[s].grade},升级后薪资:{uid[s].mony}(+{uid[s].mony-moy})")
def down(uid):
s=int(input("请输入工号:"))
if s not in uid:
print("该工号不存在")
else:
a=uid[s]
print(f"{a.name},工号:{a.uid},当前职位:{a.job}{a.grade}",end=',')
a.salary()
s2=int(input("请输入需减少的级数:"))
moy=a.mony
if uid[s].job == 'E':
if (uid[s].grade-s2) < 0:
uid[s].grade = 0
else:
a.grade -= s2
elif uid[s].job == 'T':
if (uid[s].grade-s2) < 0:
uid[s]=Employee(a.name,10,a.year,a.uid)
else:
a.grade -= s2
else:
if (uid[s].grade-s2) < 0:
uid[s]=Teamleader(a.name,6,a.year,a.uid)
else:
a.grade -= s2
uid[s].salary()
print(f"升级成功")
print(f"{uid[s].name},工号:{uid[s].uid},升级后职位:{uid[s].job}{uid[s].grade},升级后薪资:{uid[s].mony}({uid[s].mony-moy})")
def main():
count=10000
uid=dict()
while True:
s=input("1.录入;2.查询;3.升级;4.降级;5.退出:")
if s=='1':
uid[count]=create(count)
uid[count].salary()
print(f"录入成功! 姓名:{uid[count].name},工号:{uid[count].uid},薪资:{uid[count].mony} ")
count +=1
if s=='2':
search(uid)
if s=='3':
up(uid)
if s=='4':
down(uid)
if s=='5':
break
|
|