请回复您的答案^_^
-------- 问答题 --------
第 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 题的答案是:
如果它像鸭子一样行走和鸣叫,那么它就是鸭子
第 4 题的答案是:
降低了耦合度
第 5 题的答案是:
不是
-------- 动动手 --------
请将第 0 题的代码写在下方:
class Staff:
"""员工类"""
def __init__(self, uid, name, job, grade, year):
self.uid = uid
self.name = name
self.job = job
self.grade = grade
self.year = year
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 year
class Employee(Staff):
"""普通员工类"""
def __init__(self, uid, name, job, grade, year):
super().__init__(uid, name, job, grade, year)
def salary(self):
return 3000 + 500 * self.grade + 50 * self.year
def promotion(self, num):
"""升职"""
if self.grade + num > 10:
return Teamleader(self.uid, self.name, "T", 1, self.year)
else:
return Employee(self.uid, self.name, self.job, self.grade + num, self.year)
def demotion(self, num):
"""降职"""
return Employee(self.uid, self.name, self.job, max(self.grade - num, 1), self.year)
class Teamleader(Staff):
"""组长类"""
def __init__(self, uid, name, job, grade, year):
super().__init__(uid, name, job, grade, year)
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
def promotion(self, num):
"""升职"""
if self.grade + num > 6:
return Manager(self.uid, self.name, "M", 1, self.year)
else:
return Teamleader(self.uid, self.name, self.job, self.grade + num, self.year)
def demotion(self, num):
"""降职"""
if self.grade - num <= 0:
return Employee(self.uid, self.name, "E", 10, self.year)
else:
return Teamleader(self.uid, self.name, self.job, self.grade - num, self.year)
class Manager(Staff):
"""经理类"""
def __init__(self, uid, name, job, grade, year):
super().__init__(uid, name, job, grade, year)
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
def promotion(self, num):
"""升职"""
return Manager(self.uid, self.name, self.job, min(self.grade + num, 3), self.year)
def demotion(self, num):
"""降职"""
if self.grade - num <= 0:
return Teamleader(self.uid, self.name, "T", 6, self.year)
else:
return Manager(self.uid, self.name, self.job, self.grade - num, self.year)
class GradeMixin:
"""Mixin类:级别判断相关的组件"""
def check_grade(self, job, grade):
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,请重新录入级别:"))
return grade
class ManagementSystem(GradeMixin):
"""管理系统类"""
def __init__(self):
self.staffs = {}
self.uid = 10000
self.jobs = {'E':'普通员工', 'T':'组长', 'M':'经理'}
def regist_staff(self):
"""注册新员工"""
name = input("姓名:")
job = input("职位(E.普通员工;T.组长;M.经理):")
year = int(input("工龄:"))
grade = int(input("级别:"))
grade = self.check_grade(job, grade)
if job == 'E':
self.staffs = Employee(self.uid, name, job, grade, year)
elif job == 'T':
self.staffs = Teamleader(self.uid, name, job, grade, year)
elif job == 'M':
self.staffs = Manager(self.uid, name, job, grade, year)
print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.staffs.salary()}")
self.uid += 1
def query_staff(self):
"""员工查询"""
uid = self.confirm_uid()
if uid:
print(f"姓名:{self.staffs.name}")
print(f"职位:{self.staffs.job}")
print(f"级别:{self.staffs.grade}")
print(f"工龄:{self.staffs.year}")
print(f"薪资:{self.staffs.salary()}")
else:
print("该工号不存在!")
def query_job(self):
"""职位查询"""
ins = input("职位(E.普通员工;T.组长;M.经理):")
count = 0
res = []
for value in self.staffs.values():
if value.job == ins:
res.append(value)
count += 1
if count:
print(f"目前{self.jobs}共有 {count} 人:")
for each in res:
print(f"{each.uid} - {each.name}")
else:
print(f"目前公司没有{self.jobs}!")
def promotion(self):
"""升职"""
uid = self.confirm_uid()
if uid:
current_salary = self.staffs.salary()
print(f"{self.staffs.name},工号:{uid},当前职位:{self.staffs.job}{self.staffs.grade},当前薪资:{current_salary}")
num = int(input("请输入需要增加的级数:"))
self.staffs = self.staffs.promotion(num)
print("升级成功!")
new_salary = self.staffs.salary()
print(f"{self.staffs.name},工号:{uid},升级后职位:{self.staffs.job}{self.staffs.grade},升级后薪资:{new_salary}({new_salary - current_salary:+})")
else:
print("该工号不存在!")
def demotion(self):
"""降职"""
uid = self.confirm_uid()
if uid:
current_salary = self.staffs.salary()
print(f"{self.staffs.name},工号:{uid},当前职位:{self.staffs.job}{self.staffs.grade},当前薪资:{current_salary}")
num = int(input("请输入需要减少的级数:"))
self.staffs = self.staffs.demotion(num)
print("降级成功!")
new_salary = self.staffs.salary()
print(f"{self.staffs.name},工号:{uid},降级后职位:{self.staffs.job}{self.staffs.grade},降级后薪资:{new_salary}({new_salary - current_salary:+})")
else:
print("该工号不存在!")
def confirm_uid(self):
"""确认工号是否存在"""
uid = int(input("请输入工号:"))
if self.staffs.get(uid):
return uid
return False
def query(self):
"""查询界面"""
ins = input("1.员工查询;2.职位查询:")
if ins == '1':
self.query_staff()
elif ins == '2':
self.query_job()
def display(self):
"""显示主界面"""
while True:
ins = input("\n1.录入;2.查询;3.升级;4.降级;5.退出:")
if ins == '1':
self.regist_staff()
elif ins == '2':
self.query()
elif ins == '3':
self.promotion()
elif ins == '4':
self.demotion()
elif ins == '5':
break
def main():
m = ManagementSystem()
m.display()
main()
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
继承的多态,同名属性方法可以覆盖
第 1 题的答案是:方便
第 2 题的答案是:可以
第 3 题的答案是:
不管黑猫白猫抓到老鼠就是好猫
第 4 题的答案是:
降低了耦合度
第 5 题的答案是:不属于吧
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
'''员工类体系(Employee, Teamleader, Manager)'''
class Employee:
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 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
class Teamleader(Employee):
def __init__(self, name, job, grade, year, uid):
super().__init__(name,'T',grade,year,uid)
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
class Manager(Employee):
def __init__(self, name, job, grade, year, uid):
super().__init__(name,'M',grade,year,uid)
def salary(self):
return 5000 + 1000 * self.grade + 1000* self.year
'''管理系统类 Manage'''
class Manage:
def __init__(self):
self.employees = {} # 存储所有员工,格式:{工号: 员工对象}
self.current_uid = 10000 # 下一个可分配的工号,从10000开始自增
# 职位最大级别
self.max_grades = {'E': 10, 'T': 6, 'M': 3}
# 职位名称映射
self.job_names = {'E': '普通员工', 'T': '组长', 'M': '经理'}
def add_employees(self,name,job,grade,year):
ifgrade >self.max_grades:#这个grade也是输入的
print(f'该职位最高级别为{self.max_grades},请重新录入')
if job== 'E':
emp = Employee(name, job, grade, year, self.current_uid)
elif job == 'T':
emp =Teamleader(name, job, grade, year, self.current_uid)
elif job == 'M':
emp =Manager(name, job, grade, year, self.current_uid)
self.employees = emp#存入字典里
print(f'录入成功,姓名:{name},工号:{self.current_uid},薪资:{emp.salary()}')
self.current_uid+=1
def query_employee(self,uid):
if uid in self.employees:
emp =self.employees#emp是 Employee、Teamleader 或 Manager 的实例
print(f'姓名:{emp.get_name()}')
print(f'职位:{emp.get_job()}')
print(f"级别: {emp.get_grade()}")
print(f"工龄: {emp.get_year()}")
print(f"薪资: {emp.salary()}")
else:
print('该工号不存在')
def query_job(self,job):
matching_employees=[]
for uid,empin self.employees.items():#遍历self.employees的值,Employee、Teamleader 或 Manager 的实例
if emp.job == job:#这个job是参数,用户输入的
matching_employees.append(f'{uid}-{emp.name}')
job_name=self.job_names
if matching_employees:
print(f'目前{job_name}共有{len(matching_employees)}人')
for each inmatching_employees:
print(each)#打印每个(f'{uid}-{emp.name}')
else:
print('公司无此职位')
def ungrade(self,uid,levels):
if uid not in self.employees:
print('该工号不存在')
emp =self.employees#emp是 Employee、Teamleader 或 Manager 的实例
print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')
new_grade = emp.grade + levels
if new_grade > self.max_grades:#跨阶级升级
if emp.job == 'E':
new_job = 'T'
new_grade = 1# 升职后重置为1级
elif emp.job == 'T':
new_job ='M'
new_grade = 1# 升职后重置为1级
else:
print("已经是最高级了")
if new_job == 'T':
new_emp =Teamleader(emp.name, new_job, new_grade, emp.year, uid)
else:
new_emp =Manager(emp.name, new_job, new_grade, emp.year, uid)
self.employees =new_emp
salary_diff = new_emp.salary() - emp.salary()
print(f"升级成功!{emp.name},升级后职位:{new_job}{new_grade},升级后薪资:{new_emp.salary()}+({salary_diff})")
else:
emp.grade = new_grade
print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{new_grade},当前薪资:{emp.salary()}')
def downgrade(self,uid,levels):
if uid not in self.employees:
print('该工号不存在')
emp =self.employees#emp是 Employee、Teamleader 或 Manager 的实例
print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{emp.grade},当前薪资:{emp.salary()}')
new_grade = emp.grade - levels
if new_grade <1:#跨职降级
if emp.job == 'M':
new_job ='T'
new_grade = self.max_grades['T']# 降职后设为最高级
elif emp.job == 'T':
new_job = 'E'
new_grade = self.max_grades['E']
else:
print("已经是最低职位,无法再降级")
if new_job == 'T':
new_emp = Teamleader(emp.name, new_job, new_grade, emp.year, uid)
else:
new_emp = Employee(emp.name, new_job, new_grade, emp.year, uid)
self.employees =new_emp
salary_diff= emp.salary()-new_emp.salary()
print(f"降级成功!{emp.name},升级后职位:{new_job}{new_grade},降级后薪资:{new_emp.salary()}-({salary_diff})")
else:
emp.grade = new_grade
print(f'{emp.name},工号:{emp.uid},当前职位:{emp.job}{new_grade},当前薪资:{emp.salary()}')
def main():
m =Manage()
while True:
print("1.录入;2.查询;3.升级;4.降级;5.退出:")
choice = input().strip()
if choice == '1':
print("姓名:")
name = input().strip()
print('职位(E.普通员工;T.组长;M.经理):')
job = input().strip().upper()
while job not in ['E','T','M']:
print('请重新输入(E\T\M)')
job = input().strip().upper()
print('工龄:')
year =int(input())
print("级别:")
grade =int(input())
m.add_employees(name,job,grade,year)
elif choice == '2':
print("1. 员工查询;2. 职位查询;", end="")
ins= input().strip()
if ins =='1':
print('请输入工号:')
uid = int(input())
m.query_employee(uid)
elif ins =='2':
print('职位(E.普通员工;T.组长;M.经理:')
job = input().strip().upper()
while job not in ['E','T','M']:
print('请重新输入(E\T\M)')
job = input().strip().upper()
m.query_job(job)
elif choice =='3':
print("请输入工号:")
uid = int(input())
print("请输入增加的级数:")
levels =int(input())
m.ungrade(uid,levels)
elif choice == '4':
print("请输入工号:")
uid = int(input())
print("请输入减少的级数:")
levels =int(input())
m.downgrade(uid,levels)
elif choice =='5':
print(">>>")
break
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
类似于重写
第 1 题的答案是:
可以根据不同的对象执行不同的操作
第 2 题的答案是:
可以
第 3 题的答案是:
不晓得
第 4 题的答案是:
增强内聚
第 5 题的答案是:
我觉得不属于
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:
第 1 题的答案是:
第 2 题的答案是:
第 3 题的答案是:
第 4 题的答案是:
第 5 题的答案是:
-------- 动动手 --------
请将第 0 题的代码写在下方:
本帖最后由 建人 于 2025-7-17 20:48 编辑
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:函数可以处理不同类的参数
第 1 题的答案是:灵活
第 2 题的答案是:可以
第 3 题的答案是:布吉岛 鸟走起路来像鸭子、游起泳来像鸭子、叫起来也像鸭子,嘎嘎嘎的,那么这个鸟我们就可以把它称之为鸭子
第 4 题的答案是:降低耦合鸭子类型体现在接口的宽容度上
第 5 题的答案是:不属于 × 属于自定义函数的多态
-------- 动动手 --------
请将第 0 题的代码写在下方:
def get_uid():
uid=10000
while True:
yield uid
uid += 1
def get_name():
name=input('姓名:')
return name
def get_job():
job=input('职位(E.普通员工;T.组长;M.经理):')
return job
def get_year():
year=input('工龄:')
return year
def get_grade():
grade=input('级别:')
return grade
class Employee:
def __init__(self,uid,name,job,year,grade):
self.uid=uid
self.name=name
self.job=job
self.year=year
self.grade=grade
def salary(self):
self.salary=3000+500*int(self.grade)+50*int(self.year)
def promotion(self,num):
self.grade = int(self.grade) + num
def demotion(self,num):
self.grade = int(self.grade) - num
class Teamleader(Employee):
def __init__(self,uid,name,job,year,grade):
super().__init__(uid,name,job,year,grade)
def salary(self):
self.salary=4000+800*int(self.grade)+100*int(self.year)
class Manager(Employee):
def __init__(self,uid,name,job,year,grade):
super().__init__(uid,name,job,year,grade)
def salary(self):
self.salary=5000+1000*int(self.grade)+1000*int(self.year)
def set_promotion(c,num):
if c.job == 'E':
if int(c.grade) + num > 10:
c.job='T'
c.grade='1'
l.append(Teamleader(c.uid,c.name,c.job,c.year,c.grade))
l.remove(c)
else:
c.promotion(num)
elif c.job == 'T':
if int(c.grade) + num > 6:
c.job='M'
c.grade='1'
l.append(Manager(c.uid,c.name,c.job,c.year,c.grade))
l.remove(c)
else:
c.promotion(num)
elif c.job == 'M':
c.promotion(num)
print('升级成功!')
def set_demotion(c,num):
if c.job == 'E':
c.demotion(num)
elif c.job == 'T':
if int(c.grade) - num < 1:
c.job='E'
c.grade='10'
l.append(Employee(c.uid,c.name,c.job,c.year,c.grade))
l.remove(c)
else:
c.demotion(num)
elif c.job == 'M':
if int(c.grade) - num < 1:
c.job='T'
c.grade='6'
l.append(Teamleader(c.uid,c.name,c.job,c.year,c.grade))
l.remove(c)
else:
c.demotion(num)
print('降级成功!')
def main():
ins=input('1.录入;2.查询;3.升级;4.降级;5.退出:')
while ins != '5':
if ins == '1':
uid=next(get_uid)
name=get_name()
job=get_job()
year=get_year()
grade=get_grade()
if job == 'E':
l.append(Employee(uid,name,job,year,grade))
elif job == 'T':
l.append(Teamleader(uid,name,job,year,grade))
elif job == 'M':
l.append(Manager(uid,name,job,year,grade))
l[-1].salary()
print(f'录入成功!姓名:{l[-1].name},工号:{l[-1].uid},薪资:{l[-1].salary}')
if ins == '2':
check=input('1.员工查询;2.职位查询:')
if check == '1':
target=int(input('请输入工号:'))
for i in l:
if i.uid == target:
print(f'姓名:{i.name}')
print(f'职位:{i.job}')
print(f'级别:{i.grade}')
print(f'工龄:{i.year}')
print(f'薪资:{i.salary}')
break
else:
print('该工号不存在!')
if check == '2':
target=input('职位(E.普通员工;T.组长;M.经理):')
result=[]
for i in l:
if i.job == target:
result.append(i)
if target == 'E':
if len(result) == 0:
print('目前公司没有普通员工')
else:
print(f'目前普通员工共有{len(result)}人')
for i in result:
print(f'{i.uid} - {i.name}')
if target == 'T':
if len(result) == 0:
print('目前公司没有组长')
else:
print(f'目前组长共有{len(result)}人')
for i in result:
print(f'{i.uid} - {i.name}')
if target == 'M':
if len(result) == 0:
print('目前公司没有经理')
else:
print(f'目前经理共有{len(result)}人')
for i in result:
print(f'{i.uid} - {i.name}')
if ins == '3':
target=int(input('请输入工号:'))
for i in l:
if i.uid == target:
result=i
temp=result.salary
print(f'{result.name},工号:{result.uid},当前职位{result.job}{result.grade},当前薪资:{result.salary}')
add=int(input('请输入需要增加的级数:'))
set_promotion(result,add)
l[-1].salary()
variance=l[-1].salary-temp
print(f'{l[-1].name},工号:{l[-1].uid},当前职位{l[-1].job}{l[-1].grade},当前薪资:{l[-1].salary}({variance})')
if ins == '4':
target=int(input('请输入工号:'))
for i in l:
if i.uid == target:
result=i
temp=result.salary
print(f'{result.name},工号:{result.uid},当前职位{result.job}{result.grade},当前薪资:{result.salary}')
reduce=int(input('请输入需要减少的级数:'))
set_demotion(result,reduce)
l[-1].salary()
variance=temp-l[-1].salary
print(f'{l[-1].name},工号:{l[-1].uid},当前职位{l[-1].job}{l[-1].grade},当前薪资:{l[-1].salary}({variance})')
ins=input('1.录入;2.查询;3.升级;4.降级;5.退出:')
get_uid=get_uid()
l=[]
main()
请回复您的答案^_^
-------- 问答题 --------
第 0 题的答案是:在 Python 中,多态(Polymorphism) 是面向对象编程的核心特性之一,它允许不同类的对象对同一方法调用做出不同的响应。Python 通过动态类型和鸭子类型(Duck Typing)天然支持多态,无需显式继承接口(尽管继承也能实现)。以下是 Python 体现多态的主要方式
第 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 题的代码写在下方: