|
|
发表于 2023-11-20 15:25:54
|
显示全部楼层
- # 企业员工管理程序
- # 普通员工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.e, self.t, self.m]
- # 职位字典
- 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[self.uid] = Employee(name, grade, year, self.uid)
- print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.e[self.uid].salary()}")
- elif job == "T":
- grade = int(input("级别:"))
- while grade < 1 or grade > 6:
- grade = int(input("组长1~6级,请重新输入:"))
- self.t[self.uid] = Teamleader(name, grade, year, self.uid)
- print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.t[self.uid].salary()}")
- elif job == "M":
- grade = int(input("级别:"))
- while grade < 1 or grade > 3:
- grade = int(input("组长1~3级,请重新输入:"))
- self.m[self.uid] = Manager(name, grade, year, self.uid)
- print(f"录入成功!姓名:{name},工号:{self.uid},薪资:{self.m[self.uid].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[uid].name}")
- print(f"职位:{each[uid].job}")
- print(f"级别:{each[uid].grade}")
- print(f"工龄:{each[uid].year}")
- print(f"薪资:{each[uid].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[each].name}")
- elif job == "T":
- print(f"目前组长共有 {len(self.t)} 人:")
- for each in self.t.keys():
- print(f"{each} -> {self.t[each].name}")
- elif job == "M":
- print(f"目前经理共有 {len(self.m)} 人:")
- for each in self.m.keys():
- print(f"{each} -> {self.m[each].name}")
-
- # 升级
- def shengji(self):
- uid = int(input("请输入工号:"))
- for each in self.members:
- if each.get(uid):
- old_job = each[uid].job
- old_salary = each[uid].salary()
- old_grade = each[uid].grade
- old_year = each[uid].year
- old_name = each[uid].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[old_job_grade] + _grade > 19:
- _grade = int(input("升级后超过最高级,请重新输入现需要增加的级数:"))
- # 职级数字
- _job_grade = self.jobs[old_job_grade] + _grade
- for each in self.jobs.items():
- if each[1] == _job_grade:
- # 新职级
- new_job_grade = each[0]
- break
- new_job = new_job_grade[0]
- new_grade = int(new_job_grade[1:])
- # 增加新数据
- if new_job == 'E':
- self.e[uid] = Employee(old_name, new_grade, old_year, uid)
- new_salary = self.e[uid].salary()
- if new_job == 'T':
- self.t[uid] = Teamleader(old_name, new_grade, old_year, uid)
- new_salary = self.t[uid].salary()
- if new_job == 'M':
- self.m[uid] = Manager(old_name, new_grade, old_year, uid)
- new_salary = self.m[uid].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[uid].job
- old_salary = each[uid].salary()
- old_grade = each[uid].grade
- old_year = each[uid].year
- old_name = each[uid].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[old_job_grade] - _grade < 1:
- _grade = int(input("降级后超过最低级,请重新输入现需要减少的级数:"))
- # 职级数字
- _job_grade = self.jobs[old_job_grade] - _grade
- for each in self.jobs.items():
- if each[1] == _job_grade:
- # 新职级
- new_job_grade = each[0]
- break
- new_job = new_job_grade[0]
- new_grade = int(new_job_grade[1:])
- # 增加新数据
- if new_job == 'E':
- self.e[uid] = Employee(old_name, new_grade, old_year, uid)
- new_salary = self.e[uid].salary()
- if new_job == 'T':
- self.t[uid] = Teamleader(old_name, new_grade, old_year, uid)
- new_salary = self.t[uid].salary()
- if new_job == 'M':
- self.m[uid] = Manager(old_name, new_grade, old_year, uid)
- new_salary = self.m[uid].salary()
- print("降级成功!")
- print(f"{old_name},工号:{uid},降级后职位:{new_job_grade},降级后薪资:{new_salary}({new_salary-old_salary:+})")
- def main():
- m = Manage()
- m.welcome()
- main()
复制代码 |
|