|
|
发表于 2023-5-26 20:45:00
|
显示全部楼层
#0
"对于不同的对象可以采用同一个方法、函数、运算符来体现多态"
#1
"简化代码增强可读性,实现对不同类型对象的适应使用"
#2
"可以"
#3
"当我看到 一只 像 鸭子 一样走路,像 鸭子 一样 游泳 ,像 鸭子 一样嘎嘎叫的 鸟 ,我就叫它 鸭子"
#4
"降低了耦合"
#5
"是"
#动动手
#0
card=9999
uid_dict={}
E_list,T_list,M_list=[],[],[]
job_dict={}
def main():
a=Member()
order=input("1.录入;2.查询;3.升级;4.降级;5.退出:")
while order!='5':
if order=="1":
a.rgi()
if order=="2":
a.search()
if order=="3":
a.up()
if order=="4":
a.down()
order=input("1.录入;2.查询;3.升级;4.降级;5.退出:")
class Member:
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 get_salary(self):#薪资
if self.job=="E":
self.salary=3000+500*self.grade+50*self.year
return self.salary
if self.job=="T":
self.salary=4000+800*self.grade+100*self.year
return self.salary
if self.job=="M":
self.salary=5000+1000*(self.grade+self.year)
return self.salary
#录入
def rgi(self):
global card#main中要有global card=9999
card+=1
self.uid=card
self.name=input("姓名:")
self.job=input("职位(E.普通员工;T.组长;M.经理):")
self.year=int(input("工龄:"))
self.grade=int(input("级别:"))
if self.job=="E" and self.grade>10:
self.grade=int(input("该职位最高级别为10,请重新录入级别:"))
if self.job=="T" and self.grade>6:
self.grade=int(input("该职位最高级别为6,请重新录入级别:"))
if self.job=="M" and self.grade>3:
self.grade=int(input("该职位最高级别为3,请重新录入级别:"))
self.salary=self.get_salary()
uid_dict[self.uid]=[self.name,self.job,self.grade,self.year, self.salary]
E_list.extend([str(self.uid)+"-"+self.name for x in self.job if self.job=='E'])
T_list.extend([str(self.uid)+"-"+self.name for x in self.job if self.job=="T"])
M_list.extend([str(self.uid)+"-"+self.name for x in self.job if self.job=="M"])
job_dict["E"]=E_list
job_dict["T"]=T_list
job_dict["M"]=M_list
print(f"录入成功!姓名:{self.name},工号:{self.uid},薪资:{self.salary}")
#查询
def search(self):
order=input("1.员工查询;2.职位查询:")
if order=="1":
card=int(input("请输入工号:"))
try:
uid_dict[card]==None
except KeyError:
print("该工号不存在!")
else:
print(f"姓名:{uid_dict[card][0]}\n职位:{uid_dict[card][1]}\n级别:{uid_dict[card][2]}\n工龄:{uid_dict[card][3]}\n薪资:{uid_dict[card][4]}\n")
if order=="2":
job=input("职位(E.普通员工;T.组长;M.经理):")
j_dict={"E":"普通员工","T":"组长","M":"经理"}
if len(job_dict[job])==0:
print(f"目前公司没有{j_dict[job]}")
else:
print(f"目前{j_dict[job]}共有{len(job_dict[job])}人")
[print(x) for x in job_dict[job]]
#升级
def up(self):
uid=int(input("请输入工号:"))
x=uid_dict[uid]
print(f"{x[0]},工号:{uid},当前职位:{x[1]}{x[2]},当前薪资:{x[4]}")
uplevel=int(input("请输入需要增加的级数:"))
joblevel={"E":10,"T":6,"M":3}
f=list(joblevel.keys())
if x[2]+uplevel>joblevel[x[1]]:
job_dict[self.job].remove(str(self.uid)+"-"+self.name)
x[1]=f[f.index(x[1])+1]
x[2]=1
self.job=x[1]
self.grade=x[2]
self.salary=self.get_salary()
x[4]=self.salary
job_dict[self.job].append(str(self.uid)+"-"+self.name)
else:
x[2]+=uplevel
self.grade=x[2]
self.salary=self.get_salary()
x[4]=self.salary
print("升级成功!")
print(f"{x[0]},工号:{uid},升级后职位:{x[1]}{x[2]},升级后薪资:{x[4]}")
#降级
def down(self):
uid=int(input("请输入工号:"))
x=uid_dict[uid]
print(f"{x[0]},工号:{uid},当前职位:{x[1]}{x[2]},当前薪资:{x[4]}")
downlevel=int(input("请输入需要减少的级数:"))
joblevel={"E":10,"T":6,"M":3}
f=list(joblevel.keys())
if x[2]-downlevel<=0:
job_dict[self.job].remove(str(self.uid)+"-"+self.name)
x[1]=f[f.index(x[1])-1]
x[2]=joblevel[x[1]]
self.job=x[1]
self.grade=x[2]
self.salary=self.get_salary()
x[4]=self.salary
job_dict[self.job].append(str(self.uid)+"-"+self.name)
else:
x[2]-=downlevel
self.grade=x[2]
self.salary=self.get_salary()
x[4]=self.salary
print("降级成功!")
print(f"{x[0]},工号:{uid},降级后职位:{x[1]}{x[2]},降级后薪资:{x[4]}")
#class Employee(Member,RegistMixin):
|
|