|
|
发表于 2024-5-2 10:44:07
|
显示全部楼层
本帖最后由 kfc2012008 于 2024-5-2 16:41 编辑
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:多态在编程中是一个非常重要的概念,它是指同一个运算符、函数或对象在不同的场景下,具有不同的作用效果
第 2 题的答案是:可以
第 3 题的答案是:When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
第 4 题的答案是:降低内聚,增加了耦合
第 5 题的答案是:不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
class Members:
def __init__(self,name,job,year,uld,grade):
self.name = name
self.job = job
self.year = year
self.uld = uld
self.grade = grade
self.x = 0
self.y = 0
self.z = 0
def get_uid(self):
return self.uld
def get_name(self):
return self.name
def get_job(self):
return self.job
def get_grade(self):
return self.grade
def get_year(self):
return self.year
def salary(self):
return self.x+self.y*self.grade+self.z*self.year
class Employee(Members):
def __init__(self,name,job,year,uld,grade):
Members.__init__(self,name,job,year,uld,grade)
self.x = 3000
self.y = 500
self.z = 50
class Teamleader(Members):
def __init__(self,name,job,year,uld,grade):
Members.__init__(self,name,job,year,uld,grade)
self.x = 4000
self.y = 800
self.z = 100
class Manager(Members):
def __init__(self,name,job,year,uld,grade):
Members.__init__(self,name,job,year,uld,grade)
self.x = 5000
self.y = 1000
self.z = 1000
class Manage:
def __init__(self):
self.uld = 10000
self.members = {}
self.Employee = {}
self.Teamleader ={}
self.Manager = {}
def c_grade(self,job,grade):
if job == "E":
while True:
if grade <= 10:
return grade
else:
grade =int(input("该职位最高级别为10,请重新录入级别:"))
elif job == "T":
while True:
if grade <= 6:
return grade
else:
grade =int(input("该职位最高级别为6,请重新录入级别:"))
elif job == "M":
while True:
if grade <= 3:
return grade
else:
grade =int(input("该职位最高级别为3,请重新录入级别:"))
def c_job(self,name,job,year,uld,grade):
if job == "E":
return Employee(name,job,year,uld,grade)
elif job == "T":
return Teamleader(name,job,year,uld,grade)
elif job == "M":
return Manager(name,job,year,uld,grade)
def m_1(self):
while True:
n = input("\n1.录入;2.查询;3.升级;4.降级;5.退出:")
if n == "1":
self.in_p()
elif n == "2":
self.c_x()
elif n == "3":
self.up_job()
elif n == "4":
self.down_job()
elif n == '5':
break
def in_p(self):
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
year = int(input("工龄:"))
grade = int(input("级别:"))
grade = self.c_grade(job,grade)
members_1 = self.c_job(name,job,year,self.uld,grade)
self.members[self.uld] = members_1
salary = members_1.salary()
print(f"录入成功!姓名:{name},工号:{self.uld},薪资:{salary}")
self.uld = self.uld + 1
def ex_job(self,x): #转换名称
if x == "E":
return "普通员工"
elif x == "T":
return "组长"
elif x == "M":
return "经理"
def c_x(self):
n = input("1.员工查询;2.职位查询")
if n == "1":
uld = int(input("请输入工号"))
if self.members.get(uld):
print(f"姓名:{self.members[uld].name}\n职位:{self.members[uld].job}\n级别:{self.members[uld].grade}\n薪资:{self.members[uld].salary()}")
else:
print("该工号不存在")
elif n == "2":
job = input("职位(E.普通员工;T.组长;M.经理):")
n = 0
list_1 = []
for each in self.members:
if self.members[each].job == job:
n = n + 1
list_1.append(f"{self.members[each].uld} - {self.members[each].name}")
if n == 0:
print(f"目前公司没有{self.ex_job(job)}")
else:
print(f"目前共有{self.ex_job(job)}{n}人。")
for each in list_1:
print(each)
def up_job(self):
uld = int(input("请输入工号:"))
if self.members.get(uld):
print(f"{self.members[uld].name},工号:{uld},当前职位:{self.members[uld].job}{self.members[uld].grade},薪资:{self.members[uld].salary()}")
ex_grade = int(input("请输入增加级数:"))
old_pay = self.members[uld].salary()
new_grade = self.members[uld].grade + ex_grade
if self.members[uld].job == "E":
if new_grade <= 10:
self.members[uld].grade = new_grade
else:
self.members[uld] = Teamleader(self.members[uld].name,"T",self.members[uld].year,uld,1)
elif self.members[uld].job == "T":
if new_grade <= 6:
self.members[uld].grade = new_grade
else:
self.members[uld] = Manager(self.members[uld].name,"M",self.members[uld].year,uld,1)
elif self.members[uld].job == "M":
if new_grade <= 3:
self.members[uld].grade = new_grade
else:
self.members[uld].grade = 3
print("已达最高")
new_pay = self.members[uld].salary()
change_pay = new_pay - old_pay
print("升级成功!")
print(f"{self.members[uld].name},工号:{uld},当前职位:{self.members[uld].job}{self.members[uld].grade},升级后薪资:{self.members[uld].salary()}(+{change_pay})")
def down_job(self):
uld = int(input("请输入工号:"))
if self.members.get(uld):
print(f"{self.members[uld].name},工号:{uld},当前职位:{self.members[uld].job}{self.members[uld].grade},薪资:{self.members[uld].salary()}")
ex_grade = int(input("请输入减少级数:"))
old_pay = self.members[uld].salary()
new_grade = self.members[uld].grade - ex_grade
if self.members[uld].job == "E":
if new_grade >= 1:
self.members[uld].grade = new_grade
else:
print("已达最低")
self.members[uld].grade = 1
elif self.members[uld].job == "T":
if new_grade >= 1:
self.members[uld].grade = new_grade
else:
self.members[uld] = Employee(self.members[uld].name,"E",self.members[uld].year,uld,10)
elif self.members[uld].job == "M":
if new_grade >= 1 :
self.members[uld].grade = new_grade
else:
self.members[uld] = Teamleader(self.members[uld].name,"T",self.members[uld].year,uld,6)
new_pay = self.members[uld].salary()
change_pay = old_pay - new_pay
print("降级级成功!")
print(f"{self.members[uld].name},工号:{uld},当前职位:{self.members[uld].job}{self.members[uld].grade},降级后薪资:{self.members[uld].salary()}(-{change_pay})")
def main():
m = Manage()
m.m_1()
main() |
|