|
|
发表于 2024-12-15 21:10:19
|
显示全部楼层
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:同一函数,对象在不同的场景下具有不同的效果体现
第 1 题的答案是:接收不同的对象作为参数,且不用检测参数类型可执行相应的方法
第 2 题的答案是:
可以
第 3 题的答案是:
当我们看见一只鸟的行为与鸭子行为相似的时候,我们就可以称它为鸭子
第 4 题的答案是:
高内聚低耦合
第 5 题的答案是:
不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
###企业员工管理系统
##员工属性
class EmployeeInfo:
def __init__(self,name,job,grade,year,uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
###员工分类:普通员工
class Employee():
def __init__(self,grade,year,job):
self.grade = grade
self.year = year
self.job = job
def salarys(self):
print(f"grade:{self.grade},year:{self.year},job:{self.job}")
return 3000 + 500 * self.grade + 50 * self.year
class Teamleader():
def __init__(self,grade,year,job):
self.grade = grade
self.year = year
self.job = job
def salarys(self):
print(f"grade:{self.grade},year:{self.year},job:{self.job}")
return 4000 + 800 * self.grade + 100 * self.year
class Manager():
def __init__(self,grade,year,job):
self.grade = grade
self.year = year
self.job = job
def salarys(self):
print(f"grade:{self.grade},year:{self.year},job:{self.job}")
return 5000 + 1000 * (self.grade + self.year)
class Manage:
def __init__(self):
self.uid = 10000
self.employees = {}
def get_uid(self):
return self.uid
def get_name(self):
self.name = input("姓名:")
return self.name
def get_job(self):
self.job = input("职位(E.普通员工;T.组长;M.经理):")
return self.job
def get_grade(self):
self.grade = int(input("级别:"))
return self.grade
def get_year(self):
self.year = int(input("工龄:"))
return self.year
def check_grade(self,job,grade):
if self.job == 'E':
if self.grade > 10:
self.grade = int(input("该职务最高级别为10,请重新录入:"))
return self.grade
elif self.job == 'T':
if self.grade > 6:
self.grade = int(input("该职务最高级别为6,请重新录入:"))
return self.grade
elif self.job == 'M':
if self.grade > 3:
self.grade = int(input("该职务最高级别为3,请重新录入:"))
return self.grade
def confirm_uid(self):
uid = int(input("请输入工号:"))
if not self.employees.get(uid):
print("该工号不存在!")
return uid
def welcome(self):
ybz = ''
while ybz != '5':
ybz = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
if ybz == '1':
self.create_info()
elif ybz == '2':
self.search()
elif ybz == '3':
self.levelup()
elif ybz == '4':
self.leveldown()
elif ybz == '5':
pass
def salary(self,x):
return x.salarys()
def create_info(self):
name = self.get_name()
uid = self.get_uid()
job = self.get_job()
grade = self.get_grade()
grade = self.check_grade(job,grade)
year = self.get_year()
employee = EmployeeInfo(name,job,grade,year,uid)
if job == 'E':
e = Employee(grade,year,job)
elif job == 'T':
e = Teamleader(grade,year,job)
elif job == 'M':
e = Manager(grade,year,job)
salary = self.salary(e)
self.employees[uid] = employee
print(f"录入成功!姓名:{name},工号:{uid},薪资:{salary}")
self.uid += 1
def search(self):
ys = ''
while ys != '3':
ys = input("1.员工查询;2.职位查询;3.退出查询:")
if ys == '1':
uid = self.confirm_uid()
if self.employees.get(uid):
if self.employees.get(uid).uid == uid:
print(f"姓名:{self.employees.get(uid).name} ")
print(f"职位:{self.employees.get(uid).job} ")
print(f"级别:{self.employees.get(uid).grade} ")
print(f"工龄:{self.employees.get(uid).year} ")
if self.employees.get(uid).job == 'E':
e = Employee(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'T':
e = Teamleader(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'M':
e = Manager(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
print(f"薪资:{self.salary(e)}")
elif ys == '2':
count = 0
user = {}
job = self.get_job()
for i in set(self.employees):
if self.employees[i].job == job:
count += 1
user[i] = self.employees[i].name
if job == 'E':
print(f"目前普通员工共有{count}人")
elif job == 'T':
print(f"目前组长共有{count}人")
elif job == 'M':
print(f"目前经理共有{count}人")
for keys,values in user.items():
print(f"{keys} - {values}")
def levelup(self):
uid = self.confirm_uid()
levelsalary = 0
levelupsalary = 0
if self.employees.get(uid):
if self.employees.get(uid).uid == uid:
if self.employees.get(uid).job == 'E':
e = Employee(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'T':
e = Teamleader(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'M':
e = Manager(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
levelsalary = self.salary(e)
print(f"{self.employees.get(uid).name},",end="")
print(f"工号:{uid},当前职位:{self.employees.get(uid).job}{self.employees.get(uid).grade} ",end="")
print(f"当前薪资:{levelsalary}")
level = int(input("请输入需要增加的级数:"))
if self.employees.get(uid).job == 'E':
while level + self.employees.get(uid).grade - 16 > 3:
level = int(input("增加级数超过最高等级,请重新录入:"))
if level + self.employees.get(uid).grade > 10:
if level + self.employees.get(uid).grade - 10 > 6:
self.employees.get(uid).job = 'M'
self.employees.get(uid).grade += (level-10-6)
else:
self.employees.get(uid).job = 'T'
self.employees.get(uid).grade += (level-10)
else:
self.employees.get(uid).grade += level
elif self.employees.get(uid).job == 'T':
while level + self.employees.get(uid).grade - 6 > 3:
level = int(input("增加级数超过最高等级,请重新录入:"))
if level + self.employees.get(uid).grade > 6:
self.employees.get(uid).job = 'M'
self.employees.get(uid).grade += (level-6)
else:
self.employees.get(uid).grade += level
elif self.employees.get(uid).job == 'M':
while level + self.employees.get(uid).grade > 3:
level = int(input("增加级数超过最高等级,请重新录入:"))
self.employees.get(uid).grade += level
if self.employees.get(uid).job == 'E':
t = Employee(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'T':
t = Teamleader(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'M':
t = Manager(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
levelupsalary = self.salary(t)
print(f"levelupsalary:{levelupsalary}")
print("升级成功")
print(f"{self.employees.get(uid).name},",end="")
print(f"工号:{uid},升级后职位:{self.employees.get(uid).job}{self.employees.get(uid).grade} ",end="")
print(f"升级后薪资:{levelupsalary}(+{levelupsalary-levelsalary})")
def leveldown(self):
uid = self.confirm_uid()
levelsalary = 0
levelupsalary = 0
if self.employees.get(uid):
if self.employees.get(uid).uid == uid:
if self.employees.get(uid).job == 'E':
e = Employee(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'T':
e = Teamleader(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'M':
e = Manager(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
levelsalary = self.salary(e)
print(f"{self.employees.get(uid).name},",end="")
print(f"工号:{uid},当前职位:{self.employees.get(uid).job}{self.employees.get(uid).grade} ",end="")
print(f"当前薪资:{levelsalary}")
level = int(input("请输入需要降级的级数:"))
if self.employees.get(uid).job == 'M':
while self.employees.get(uid).grade < level - 16:
level = int(input("降级级数小于最低等级,请重新录入:"))
if self.employees.get(uid).grade <= level :
if level - self.employees.get(uid).grade < 6:
self.employees.get(uid).job = 'T'
self.employees.get(uid).grade += (6 - level)
else:
self.employees.get(uid).job = 'E'
self.employees.get(uid).grade += (16 - level)
else:
self.employees.get(uid).grade -= level
elif self.employees.get(uid).job == 'T':
while self.employees.get(uid).grade < level - 10:
level = int(input("降级级数小于最低等级,请重新录入:"))
if self.employees.get(uid).grade <= level :
self.employees.get(uid).job = 'E'
self.employees.get(uid).grade += (10-level)
else:
self.employees.get(uid).grade -= level
elif self.employees.get(uid).job == 'E':
while self.employees.get(uid).grade < level :
level = int(input("降级级数小于最低等级,请重新录入:"))
self.employees.get(uid).grade -= level
if self.employees.get(uid).job == 'E':
t = Employee(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'T':
t = Teamleader(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
elif self.employees.get(uid).job == 'M':
t = Manager(self.employees.get(uid).grade,self.employees.get(uid).year,self.employees.get(uid).job)
levelupsalary = self.salary(t)
print(f"levelupsalary:{levelupsalary}")
print("降级成功")
print(f"{self.employees.get(uid).name},",end="")
print(f"工号:{uid},降级后职位:{self.employees.get(uid).job}{self.employees.get(uid).grade} ",end="")
print(f"降级后薪资:{levelupsalary}({levelupsalary-levelsalary})")
def main():
manage = Manage()
manage.welcome()
|
|