请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
通过继承与1调整不同的参数可以使实例化对象拥有不同的功能
第 1 题的答案是:
能让函数灵活发挥不同的效果
第 2 题的答案是:
可以
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
1请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:不同类的对象对同一方法可以有不同的响应
第 1 题的答案是:大大提高程序的可复用性,可以提高可扩充性和可维护性
第 2 题的答案是:不行
第 3 题的答案是:If it walks like a duck and quacks like a duck, then it must be a duck.
第 4 题的答案是:增强了内聚
第 5 题的答案是:属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:不关心变量的类型
第 1 题的答案是:使用的范围广
第 2 题的答案是:可以
第 3 题的答案是:
第 4 题的答案是:低耦合
第 5 题的答案是:不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 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 Employee:
MAX_GRADE = 10
JOB_CODE = "E"
def __init__(self, name, grade, year, uid):
self.name = name
self.grade = grade
self.year = year
self.uid = uid
self.job = "普通员工"
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 3000 + 500 * self.grade + 50 * self.year
def promote(self, levels):
new_grade = self.grade + levels
if new_grade > self.MAX_GRADE:
return Teamleader(self.name, 1, self.year, self.uid)
self.grade = new_grade
return self
def demote(self, levels):
new_grade = self.grade - levels
# 不能降级到0级以下
if new_grade < 1:
return None
self.grade = new_grade
return self
class Teamleader(Employee):
MAX_GRADE = 6
JOB_CODE = "T"
def __init__(self, name, grade, year, uid):
super().__init__(name, grade, year, uid)
self.job = "组长"
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
def promote(self, levels):
new_grade = self.grade + levels
if new_grade > self.MAX_GRADE:
return Manager(self.name, 1, self.year, self.uid)
self.grade = new_grade
return self
def demote(self, levels):
new_grade = self.grade - levels
if new_grade < 1:
return Employee(self.name, Employee.MAX_GRADE, self.year, self.uid)
self.grade = new_grade
return self
class Manager(Employee):
MAX_GRADE = 3
JOB_CODE = "M"
def __init__(self, name, grade, year, uid):
super().__init__(name, grade, year, uid)
self.job = "经理"
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
def promote(self, levels):
new_grade = self.grade + levels
# 已经是最高职位
if new_grade > self.MAX_GRADE:
return self
self.grade = new_grade
return self
def demote(self, levels):
new_grade = self.grade - levels
if new_grade < 1:
return Teamleader(self.name, Teamleader.MAX_GRADE, self.year, self.uid)
self.grade = new_grade
return self
class EmployeeSystem:
def __init__(self):
self.employees = {}
self.next_uid = 10000
def add_employee(self):
name = input("姓名:")
while True:
job = input("职位(E.普通员工;T.组长;M.经理):").upper()
if job in ['E', 'T', 'M']:
break
print("无效职位,请重新输入!")
while True:
try:
year = int(input("工龄:"))
break
except:
print("错误:请输入正常年龄数字")
if job == 'E':
max_grade = Employee.MAX_GRADE
elif job == 'T':
max_grade = Teamleader.MAX_GRADE
else:
max_grade = Manager.MAX_GRADE
while True:
try:
grade = int(input("级别:"))
except:
print("错误:请输入正常级别数字")
continue
if 1 <= grade <= max_grade:
break
print(f"该职位最高级别为 {max_grade} ,请重新录入级别!")
uid = self.next_uid
self.next_uid += 1
if job == 'E':
employee = Employee(name, grade, year, uid)
elif job == 'T':
employee = Teamleader(name, grade, year, uid)
else:
employee = Manager(name, grade, year, uid)
self.employees = employee
print(f"录入成功!姓名:{name},工号:{uid},薪资:{employee.salary()}")
def query_employee(self):
while True:
try:
uid = int(input("请输入工号:"))
break
except:
print("错误:请输入正常工号数字")
if uid in self.employees:
e = self.employees
print(f"姓名:{e.get_name()}")
print(f"职位:{e.get_job()}")
print(f"级别:{e.get_grade()}")
print(f"工龄:{e.get_year()}")
print(f"薪资:{e.salary()}")
else:
print("该工号不存在!")
def query_job(self):
while True:
job = input("职位(E.普通员工;T.组长;M.经理):").upper()
if job in ['E', 'T', 'M']:
break
print("无效职位,请重新输入!")
job_name = {'E': '普通员工', 'T': '组长', 'M': '经理'}
employees =
print(f"目前{job_name}共有{len(employees)}人:")
for e in employees:
print(f"{e.get_uid()} - {e.get_name()}")
def promote_employee(self):
while True:
try:
uid = int(input("请输入工号:"))
break
except:
print("错误:请输入正常工号数字")
if uid not in self.employees:
print("该工号不存在!")
return
employee = self.employees
print(f"{employee.get_name()},工号:{employee.get_uid()},当前职位:{employee.JOB_CODE}{employee.get_grade()},当前薪资:{employee.salary()}")
while True:
try:
levels = int(input("请输入需要增加的级数:"))
break
except:
print("错误:请输入正常等级数字")
continue
old_salary = employee.salary()
new_employee = employee.promote(levels)
if new_employee != employee:
self.employees = new_employee
print(f"升职成功!")
else:
print(f"升级成功!")
print(f"{new_employee.get_name()},工号:{new_employee.get_uid()},升级后职位:{new_employee.JOB_CODE}{new_employee.get_grade()},升级后薪资:{new_employee.salary()}(+{new_employee.salary() - old_salary})")
def demote_employee(self):
while True:
try:
uid = int(input("请输入工号:"))
break
except:
print("错误:请输入正常工号数字")
if uid not in self.employees:
print("该工号不存在!")
return
employee = self.employees
print(f"{employee.get_name()},工号:{employee.get_uid()},当前职位:{employee.JOB_CODE}{employee.get_grade()},当前薪资:{employee.salary()}")
while True:
try:
levels = int(input("请输入需要减少的级数:"))
break
except:
print("错误:请输入正常等级数字")
continue
old_salary = employee.salary()
new_employee = employee.demote(levels)
if new_employee is None:
print("不能降级到0级以下!")
return
if new_employee != employee:
self.employees = new_employee
print(f"降职成功!")
else:
print(f"降级成功!")
print(f"{new_employee.get_name()},工号:{new_employee.get_uid()},降级后职位:{new_employee.JOB_CODE}{new_employee.get_grade()},降级后薪资:{new_employee.salary()}(-{old_salary - new_employee.salary()})")
def run(self):
while True:
print("\n1.录入;2.查询;3.升级;4.降级;5.退出:", end="")
choice = input().strip()
if choice == '1':
self.add_employee()
elif choice == '2':
print("1.员工查询;2.职位查询:", end="")
sub_choice = input().strip()
if sub_choice == '1':
self.query_employee()
elif sub_choice == '2':
self.query_job()
else:
print("无效选择!")
elif choice == '3':
self.promote_employee()
elif choice == '4':
self.demote_employee()
elif choice == '5':
print("感谢使用员工管理系统!")
break
else:
print("无效选择,请重新输入!")
if __name__ == "__main__":
system = EmployeeSystem()
system.run()
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:子类重写父类的方法
第 1 题的答案是:通过统一的接口处理不同类型的对象
第 2 题的答案是:是的
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:是
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:对于不同情况作出不同行为
第 1 题的答案是:处理不同情况
第 2 题的答案是:可以
第 3 题的答案是:
第 4 题的答案是:弱内聚,低耦合
第 5 题的答案是:是的
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 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 Person:
def __init__(self,name,job,grade,year,uid):
self.name = name
self.job = job
self.grade = grade
self.year = year
self.uid = uid
def get_uid(self):
return f"工号:{self.uid}"
def get_name(self):
return f"姓名:{self.name}"
def get_job(self):
return f"职位:{self.job}"
def get_grade(self):
return f"级别:{self.grade}"
def get_year(self):
return f"工龄:{self.year}"
def salary(self):
if self.job == "E":
money = 3000 + 500 * self.grade + 50 * self.year
elif self.job == "T":
money = 4000 + 800 * self.grade + 100 * self.year
elif self.job == "M":
money = 5000 + 1000 * (self.grade + self.year)
return money
class Main:
data = []
j = {"E":,"T":,"M":}
def save(self):
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
year = int(input("工龄:"))
grade = int(input("级别:"))
if job == "E":
while grade > 10:
grade = int(input("该职位最高级别为10,请重新录入级别:"))
elif job == "T":
while grade > 6:
grade = int(input("该职位最高级别为6,请重新录入级别:"))
elif job == "M":
while grade > 3:
grade = int(input("该职位最高级别为3,请重新录入级别:"))
uid = 10000 + len(self.data)
self.data.append(Person(name,job,grade,year,uid))
_ = Person(name,job,grade,year,uid).salary()
print(f"录入成功!姓名:{name},工号:{uid},薪资:{_}")
def find(self):
_ins = input("1.员工查询;2.职位查询:")
if _ins == "1":
a = int(input("请输入工号:"))
for each in self.data:
if each.uid == a:
print(each.get_name())
print(each.get_job())
print(each.get_grade())
print(each.get_year())
print(f"薪资:{each.salary()}")
break
else:
print("该工号不存在!")
elif _ins == "2":
count = 0
x = []
job = input("职位(E.普通员工;T.组长;M.经理):")
for each in self.data:
if each.job == job:
x.append(f"{each.uid}-{each.name}")
count += 1
else:
if count == 0:
print(f"目前公司没有{self.j}!")
else:
print(f"目前{self.j}共有{count}人")
for each in x:
print(each)
def up(self):
a = int(input("请输入工号:"))
for each in self.data:
if each.uid == a:
x = each.salary()
print(f"{each.name},{each.get_uid()},当前职位:{each.job + str(each.grade)},当前薪资:{x}")
level = int(input("请输入需要增加的级数:"))
if each.grade + level > self.j:
each.job = list(self.j.keys())
each.grade = 1
else:
each.grade += level
_ = each.job + str(each.grade)
y = each.salary()
print(f"升级成功!\n{each.name},{each.get_uid()},升级后职位:{_},升级后薪资:{y}(+{y-x})")
break
else:
print("工号错误")
def down(self):
a = int(input("请输入工号:"))
for each in self.data:
if each.uid == a:
x = each.salary()
print(f"{each.name},{each.get_uid()},当前职位:{each.job + str(each.grade)},当前薪资:{x}")
level = int(input("请输入需要减少的级数:"))
if each.grade - level < 1:
each.job = list(self.j.keys())
each.grade = self.j
else:
each.grade -= level
_ = each.job + str(each.grade)
y = each.salary()
print(f"降级成功!\n{each.name},{each.get_uid()},降级后职位:{_},降级后薪资:{y}(-{x-y})")
break
else:
print("工号错误")
main = Main()
while True:
ins = input("1.录入;2.查询;3.升级;4.降级;5.退出:")
if ins == "1":
main.save()
elif ins == "2":
main.find()
elif ins == "3":
main.up()
elif ins == "4":
main.down()
elif ins == "5":
break