|
|
发表于 2025-5-17 09:31:20
|
显示全部楼层
#定义员工类,父类
class Staff:
def __init__(self,name,job,grade,year):
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 self.year
def salary(self):
pass
#继承父类,普通员工类
class Employee(Staff):
def __init__(self,name,job,grade,year,):
super().__init__(name,job,grade,year)
def salary(self):
return 3000 + 500 * self.grade + 50 * self.year
#继承父类,普通员工类
class Teamleader(Staff):
def __init__(self,name,job,grade,year,):
super().__init__(name,job,grade,year)
def salary(self):
return 4000 + 800 * self.grade + 100 * self.year
#继承父类,经理类
class Manager(Staff):
def __init__(self,name,job,grade,year,):
super().__init__(name,job,grade,year)
def salary(self):
return 5000 + 1000 * (self.grade + self.year)
class Manage():
user_id = 10000
staff_dict = {}
def entering(self):
name = input("姓名:")
job = input("职位(E.普通员工;T:组长;M:经理;)")
year = int(input("工龄:"))
grade = int(input("级别:"))
if job == "E":
mannger = Employee(name,job,grade,year)
self.staff_dict[self.user_id] = mannger
print(f"录入成功:姓名:{name},工号:{self.user_id},薪资:{mannger.salary()}.")
self.user_id += 1
elif job == "T":
mannger = Teamleader(name,job,grade,year)
self.staff_dict[self.user_id] = mannger
print(f"录入成功:姓名:{name},工号:{self.user_id},薪资:{mannger.salary()}.")
self.user_id += 1
elif job == "M":
mannger = Manager(name,job,grade,year)
self.staff_dict[self.user_id] = mannger
print(f"录入成功:姓名:{name},工号:{self.user_id},薪资:{mannger.salary()}.")
self.user_id += 1
def user_id_ck(self):#输入user_id,并检查是有输入错误
user_id = int(input("请输入工号:"))
while user_id not in self.staff_dict:
user_id = int(input("工号不存在,请重新输入:"))
return user_id
def query(self):#查询工号/查询职位人数
query_num = int(input("1、员工查询;2、职位查询:"))
if query_num == 1:
user_id = self.user_id_ck()
print(f"姓名:{self.staff_dict[user_id].name}")
print(f"职位:{self.staff_dict[user_id].job}")
print(f"级别:{self.staff_dict[user_id].grade}")
print(f"工龄:{self.staff_dict[user_id].year}")
print(f"薪资:{self.staff_dict[user_id].salary()}")
elif query_num == 2:
job = input("职位(E.普通员工;T:组长;M:经理;)")
job_num = 0
job_name = "普通员工" if job == "E" else "组长" if job == "T" else "经理"
for i in self.staff_dict.values():
if i.job == job:
job_num += 1
print(f"目前{job_name}共有{job_num}名")
for x in self.staff_dict:
if self.staff_dict.get(x).job == job:
print(f"{x} - {self.staff_dict.get(x).name}")
def up_grade(self):
user_id = self.user_id_ck()
crt_salary = self.staff_dict[user_id].salary()
print(f"{self.staff_dict[user_id].name},工号:{user_id},当前职位:{self.staff_dict[user_id].job+str(self.staff_dict[user_id].grade)},当前薪资:{crt_salary}")
up_grade_num = int(input("请输入需要增加的级数:"))
self.staff_dict[user_id].grade += up_grade_num
if (self.staff_dict[user_id].job == "E") and (self.staff_dict[user_id].grade > 10):
self.staff_dict[user_id] = Teamleader(self.staff_dict[user_id].name,"T",1,self.staff_dict[user_id].year)
elif (self.staff_dict[user_id].job == "T") and (self.staff_dict[user_id].grade > 6):
self.staff_dict[user_id] = Manager(self.staff_dict[user_id].name,"M",1,self.staff_dict[user_id].year)
elif (self.staff_dict[user_id].job == "M") and (self.staff_dict[user_id].grade > 3):
self.staff_dict[user_id].grade = 3
print(f"{self.staff_dict[user_id].name},工号:{user_id},当前职位:{self.staff_dict[user_id].job+str(self.staff_dict[user_id].grade)},调整之后薪资:{self.staff_dict[user_id].salary()}({self.staff_dict[user_id].salary()-crt_salary:+})")
def down_grade(self):
user_id = self.user_id_ck()
crt_salary = self.staff_dict[user_id].salary()
print(f"{self.staff_dict[user_id].name},工号:{user_id},当前职位:{self.staff_dict[user_id].job+str(self.staff_dict[user_id].grade)},当前薪资:{crt_salary}")
down_grade_num = int(input("请输入需要下降的级数:"))
self.staff_dict[user_id].grade -= down_grade_num
if (self.staff_dict[user_id].job == "E") and (self.staff_dict[user_id].grade < 0):
self.staff_dict[user_id].grade = 1
elif (self.staff_dict[user_id].job == "T") and (self.staff_dict[user_id].grade < 0):
self.staff_dict[user_id] = Employee(self.staff_dict[user_id].name,"E",10,self.staff_dict[user_id].year)
elif (self.staff_dict[user_id].job == "M") and (self.staff_dict[user_id].grade < 0):
self.staff_dict[user_id] = Teamleader(self.staff_dict[user_id].name,"T",6,self.staff_dict[user_id].year)
print(f"{self.staff_dict[user_id].name},工号:{user_id},当前职位:{self.staff_dict[user_id].job+str(self.staff_dict[user_id].grade)},调整之后薪资:{self.staff_dict[user_id].salary()}({self.staff_dict[user_id].salary()-crt_salary:+})")
def main(self):
while True:
i = int(input("1、录入;2、查询;3、升级;4、降级;5、退出;"))
if i == 5:
break
elif i == 1:
self.entering()
elif i == 2:
self.query()
elif i == 3:
self.up_grade()
elif i == 4:
self.down_grade()
m=Manage()
m.main()
|
|