|
|
发表于 2024-10-10 12:47:25
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
根据传入的数据类型不同,实现不同的结果
第 1 题的答案是:
不同的场景下具有不同的作用效果
第 2 题的答案是:
可以
第 3 题的答案是:
如果它像鸭子,叫声像鸭子,那么它就是鸭子
第 4 题的答案是:
降低耦合度
第 5 题的答案是:
不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
class Employee:
def __init__(self, name, job, grade, year):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = Employee.next_uid()
uid_counter = 10000
@classmethod
def next_uid(cls):
uid = cls.uid_counter
cls.uid_counter += 1
return uid
def get_uid(self):
return self.uid
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 0
class RegularEmployee(Employee):
def __init__(self, name, grade, year):
super().__init__(name, "普通员工", grade, year)
def salary(self):
return 3000 + 500 * self.grade + 50 * self.year
class TeamLeader(Employee):
def __init__(self, name, grade, year):
super().__init__(name, "组长", grade, year)
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
class Manager(Employee):
def __init__(self, name, grade, year):
super().__init__(name, "经理", grade, year)
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
class EmployeeManagementSystem:
def __init__(self):
self.employees = []
print("欢迎使用公司管理系统!")
self.run()
def add_employee(self):
name = input("请输入员工姓名:")
job_type = input("请输入职位(E.普通员工;T.组长;M.经理):")
grade = int(input("请输入级别:"))
year = int(input("请输入工龄:"))
if job_type.upper() == 'E':
new_employee = RegularEmployee(name, grade, year)
elif job_type.upper() == 'T':
new_employee = TeamLeader(name, grade, year)
elif job_type.upper() == 'M':
new_employee = Manager(name, grade, year)
else:
print("无效职务,员工未添加。")
return
self.employees.append(new_employee)
print(f"员工{new_employee.get_name()} 添加成功,工号为{new_employee.get_uid()}。")
def query_employee(self):
uid = int(input("请输入要查询的工号:"))
for emp in self.employees:
if emp.get_uid() == uid:
print(f"姓名:{emp.get_name()},职位:{emp.get_job()},级别:{emp.get_grade()}。")
return
print("未找到该工号的员工。")
def promote_employee(self):
uid = int(input("请输入要升职的员工工号:"))
levels = {"E":10, "T":6, "M":3}
for emp in self.employees:
if emp.get_uid() == uid:
if emp.get_job() == "普通员工" and emp.get_grade() < levels["E"]:
emp.garde += 1
print(f"员工{emp.get_name()} 升级为普通员工{emp.get_grade()}级。")
elif emp.get_job() == "组长" and emp.get_grade() < levels["T"]:
emp.garde += 1
print(f"员工{emp.get_name()} 升级为组长{emp.get_grade()}级。")
elif emp.get_job() == "经理" and emp.get_grade() < levels["M"]:
emp.garde += 1
print(f"员工{emp.get_name()} 升级为经理{emp.get_grade()}级。")
if emp.get_job() == "普通员工" and emp.get_grade() > levels["E"]:
emp.__class__ = TeamLeader
emp.grade = 1
print(f"员工{emp.get_name()}升级为 组长 级别 1 级。")
elif emp.get_job() == "组长" and emp.get_grade() > levels["T"]:
emp.__class__ = Manager
emp.grade = 1
print(f"员工{emp.get_name()}升级为 经理 级别 1 级。")
return
print("未找到该员工的工号。")
def demote_employee(self):
uid = int(input("请输入要降职的员工工号:"))
levels = {"E":10, "T":6, "M":3}
for emp in self.employees:
if emp.get_uid() == uid:
if emp.get_job() == "经理":
emp.__class__ = TeamLeader
emp.grade = levels["T"]
print(f"员工{emp.get_name()} 降职为 组长 级别 {emp.get_grade()}。")
elif emp.get_job() == "组长":
emp.__class__ = RegularEmployee
emp.grade = levels["E"]
print(f"员工{emp.get_name()} 降职为 普通员工 级别 {emp.get_grade()}。")
return
print("未找到该员工的工号。")
def run(self):
while True:
choice = input("1.添加员工;2.查询员工;3.升职员工;4.降职员工;5.退出:")
if choice == "1":
self.add_employee()
elif choice == "2":
self.query_employee()
elif choice == "3":
self.promote_employee()
elif choice == "4":
self.demote_employee()
elif choice == "5":
print("谢谢使用!")
break
else:
print("无效选择,请重新输入。")
def main():
m = EmployeeManagementSystem()
m.run()
|
|