1
1
看看
1
1
1
z
1
001
{:5_95:}
{:10_277:}
0
happy
# 企业员工管理程序
# 普通员工Employee 组长Teamleader 经理Manager 分别定义为类
# 基本信息类
class Info:
def __init__(self, name, grade, year, uid):
self.name = name
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
# 普通员工类
class Employee(Info):
def __init__(self, name, grade, year, uid):
self.job = 'E'
super().__init__(name, grade, year, uid)
def salary(self):
return 3000 + 500*self.grade + 50*self.year
# 组长类
class Teamleader(Info):
def __init__(self, name, grade, year, uid):
self.job = 'T'
super().__init__(name, grade, year, uid)
def salary(self):
return 4000 + 800*self.grade + 100*self.year
# 经理类
class Manager(Info):
def __init__(self, name, grade, year, uid):
self.job = 'M'
super().__init__(name, grade, year, uid)
def salary(self):
return 5000 + 1000*self.grade + 1000*self.year
# 程序功能类
class Manage:
def __init__(self):
self.uid = 10000
self.e = {}
self.t = {}
self.m = {}
self.members =
# 职位字典
self.jobs = {'E1':1, 'E2':2, 'E3':3, 'E4':4, 'E5':5, 'E6':6, 'E7':7, 'E8':8, 'E9':9, 'E10':10,
'T1':11, 'T2':12, 'T3':13, 'T4':14, 'T5':15, 'T6':16,
'M1':17, 'M2':18, 'M3':19}
def welcome(self):
ins = 0
while ins != '5':
ins = input("\n1.录入; 2.查询; 3.升级; 4.降级; 5.退出:")
if ins == '1':
self.luru()
elif ins == '2':
self.chaxun()
elif ins == '3':
self.shengji()
elif ins == '4':
self.jiangji()
elif ins == '5':
print("再见~~~")
# 录入
def luru(self):
name = input("姓名:")
job = input("职位(E.普通员工; T.组长; M.经理):")
year = int(input("工龄:"))
if job == "E":
grade = int(input("级别:"))
while grade < 1 or grade > 10:
grade = int(input("普通员工1~10级,请重新输入:"))
self.e = Employee(name, grade, year, self.uid)
print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.e.salary()}")
elif job == "T":
grade = int(input("级别:"))
while grade < 1 or grade > 6:
grade = int(input("组长1~6级,请重新输入:"))
self.t = Teamleader(name, grade, year, self.uid)
print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.t.salary()}")
elif job == "M":
grade = int(input("级别:"))
while grade < 1 or grade > 3:
grade = int(input("组长1~3级,请重新输入:"))
self.m = Manager(name, grade, year, self.uid)
print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.m.salary()}")
self.uid += 1
# 查询
def chaxun(self):
ins = int(input("1.员工查询; 2.职位查询:"))
while ins != 1 and ins != 2:
ins = int(input("输入错误,请重新输入。1.员工查询; 2.职位查询:"))
if ins == 1:
uid = int(input("请输入工号:"))
for each in self.members:
if each.get(uid):
print(f"姓名:{each.name}")
print(f"职位:{each.job}")
print(f"级别:{each.grade}")
print(f"工龄:{each.year}")
print(f"薪资:{each.salary()}")
break
else:
print("该工号不存在!")
if ins == 2:
job = input("职位(E.普通员工; T.组长; M.经理):")
if job == "E":
print(f"目前普通员工共有 {len(self.e)} 人:")
for each in self.e.keys():
print(f"{each} -> {self.e.name}")
elif job == "T":
print(f"目前组长共有 {len(self.t)} 人:")
for each in self.t.keys():
print(f"{each} -> {self.t.name}")
elif job == "M":
print(f"目前经理共有 {len(self.m)} 人:")
for each in self.m.keys():
print(f"{each} -> {self.m.name}")
# 升级
def shengji(self):
uid = int(input("请输入工号:"))
for each in self.members:
if each.get(uid):
old_job = each.job
old_salary = each.salary()
old_grade = each.grade
old_year = each.year
old_name = each.name
print(f"{old_name},工号:{uid},当前职位:{old_job},当前薪资:{old_salary}")
# 删除旧数据
each.pop(uid)
break
else:
print("该工号不存在!")
return 0
_grade = int(input("请输入现需要增加的级数:"))
# 旧职级字母
old_job_grade = old_job + str(old_grade)
while self.jobs + _grade > 19:
_grade = int(input("升级后超过最高级,请重新输入现需要增加的级数:"))
# 职级数字
_job_grade = self.jobs + _grade
for each in self.jobs.items():
if each == _job_grade:
# 新职级
new_job_grade = each
break
new_job = new_job_grade
new_grade = int(new_job_grade)
# 增加新数据
if new_job == 'E':
self.e = Employee(old_name, new_grade, old_year, uid)
new_salary = self.e.salary()
if new_job == 'T':
self.t = Teamleader(old_name, new_grade, old_year, uid)
new_salary = self.t.salary()
if new_job == 'M':
self.m = Manager(old_name, new_grade, old_year, uid)
new_salary = self.m.salary()
print("升级成功!")
print(f"{old_name},工号:{uid},升级后职位:{new_job_grade},升级后薪资:{new_salary}({new_salary-old_salary:+})")
# 降级
def jiangji(self):
uid = int(input("请输入工号:"))
for each in self.members:
if each.get(uid):
old_job = each.job
old_salary = each.salary()
old_grade = each.grade
old_year = each.year
old_name = each.name
print(f"{old_name},工号:{uid},当前职位:{old_job},当前薪资:{old_salary}")
# 删除旧数据
each.pop(uid)
break
else:
print("该工号不存在!")
return 0
_grade = int(input("请输入现需要减少的级数:"))
# 旧职级字母
old_job_grade = old_job + str(old_grade)
while self.jobs - _grade < 1:
_grade = int(input("降级后超过最低级,请重新输入现需要减少的级数:"))
# 职级数字
_job_grade = self.jobs - _grade
for each in self.jobs.items():
if each == _job_grade:
# 新职级
new_job_grade = each
break
new_job = new_job_grade
new_grade = int(new_job_grade)
# 增加新数据
if new_job == 'E':
self.e = Employee(old_name, new_grade, old_year, uid)
new_salary = self.e.salary()
if new_job == 'T':
self.t = Teamleader(old_name, new_grade, old_year, uid)
new_salary = self.t.salary()
if new_job == 'M':
self.m = Manager(old_name, new_grade, old_year, uid)
new_salary = self.m.salary()
print("降级成功!")
print(f"{old_name},工号:{uid},降级后职位:{new_job_grade},降级后薪资:{new_salary}({new_salary-old_salary:+})")
def main():
m = Manage()
m.welcome()
main()
发现思考的方向完全错了,得来抄一遍
0.
python不会纠结对象的类别,而是在调用方法和函数的时候注重形似,只要函数和方法的操作能够进行就行
1.
优化了代码的可读性
2.
可以
3.
不知道
4.
增强了内聚,也降低了耦合
5.
不是
have a try
0.
'''企业员工管理程序'''
class stuff0:
uid=10000
class up_down_MiXin:
def up(self,z=0):
if self.position=='普通工人':
if self.grade+z>10:
self.grade=1
self.position='组长'
else:
self.grade+=z
elif self.position=='组长':
if self.grade+z>6:
self.grade=1
self.position='经理'
else:
self.grade+=z
elif self.position=='经理':
if self.grade+z>3:
self.grade=3
else:
self.grade+=z
def down(self,z=0):
if self.position=='经理':
if self.grade-z<0:
self.position='组长'
self.grade=6
else:
self.grade-+z
elif self.position=='组长':
if self.grade-z<0:
self.position='普通工人'
self.grade=10
else:
self.grade-=z
elif self.position=='普通工人':
if self.grade-z<0:
self.grade=1
else:
self.grade-=z
class get_MiXin:
def get_uid(self):
return self.uid
def get_name(self):
return self.name
def get_position(self):
return self.position
def get_grade(self):
return self.grade
def get_wage(self):
return self.wage
def salary(g):
if g.position == '普通工人':
pay=3000+500*g.grade+50*g.wage
return pay
elif g.position == '组长':
pay=4000+800*g.grade+100*g.wage
return pay
elif g.position == '经理':
pay=5000+1000*(g.grade+g.wage)
return pay
class stuff(stuff0,up_down_MiXin,get_MiXin):
name='请初始化姓名'
position='请初始化这位'
wage=-1
grade=-1
uid=-1
def __init__(self,name,position,wage,grade):
self.name=name
self.position=position
self.wage=wage
self.grade=grade
self.uid=stuff0.uid
stuff0.uid+=1
def main():
stuffs=[]
while True:
mod=input('1.录入2.查询3.升级4.降级5.退出')
if mod=='5':
break
elif mod=='1':
name=input('姓名:')
position=input('职位:(普通工人/组长/经理)')
wage=int(input('工龄:'))
grade=int(input('级别:'))
stuff1=stuff(name,position,wage,grade)
stuffs.append(stuff1)
print(f'录入成功!姓名:{stuff1.name} 工号:{stuff1.uid} 薪资:{stuff1.salary()}')
elif mod=='2':
uid=input('请输入工号:')
uid=int(uid)
uid_condition=False
for i in stuffs:
if i.uid==uid:
j=i
uid_condition=True
if uid_condition:
print(f'姓名:{j.name}')
print(f'职位:{j.position}')
print(f'级别:{j.grade}')
print(f'工龄:{j.wage}')
print(f'薪资:{j.salary()}')
else:
print('该工号不存在')
elif mod=='3':
uid=input('请输入工号:')
uid=int(uid)
k=int(input('请输入升级的级数:'))
uid_condition=False
for i in range(len(stuffs)):
if stuffs.uid==uid:
j=i
uid_condition=True
if uid_condition:
stuffs.up(k)
else:
print('该工号不存在')
elif mod=='4':
uid=input('请输入工号:')
uid=int(uid)
k=int(input('请输入降级的级数:'))
uid_condition=False
for i in range(len(stuffs)):
if stuffs.uid==uid:
j=i
uid_condition=True
if uid_condition:
stuffs.down(k)
else:
print('该工号不存在')
沙发
daan
1
下