- 能存多个员工信息
(每个员工的信息有:姓名、年龄、工号、薪资、职位、部门) - 新员工入职(添加员工)
- 员工离职(删除员工)
- 查看某个员工的信息
- 查询薪资最高的员工
- 查询指定部门中所有员工的平均薪资
- 求整个公司的员工的平均年龄
staffs = {}
class Staff:
def __init__(self, name='', age='', id_number='', pay='', position='', department=''):
self.name = name
self.age = age
self.id_number = id_number
self.pay = pay
self.position = position
self.department = department
def __str__(self):
return '姓名:%s\n年龄:%s\n工号:%s\n薪资:%s\n职位:%s\n部门:%s' % (self.name, self.age, self.id_number, self.pay, self.position, self.department)
class Sys:
# 输入员工信息
def getIn(self):
global name
global age
global id_number
global pay
global position
global department
name = input('姓名:')
age = input('年龄:')
id_number = input('工号:')
pay = input('薪资:')
position = input('职位:')
department = input('部门:')
# 添加员工信息
def addStaff(self):
self.getIn()
staffs[name] = Staff(name, age, id_number, pay, position, department)
# 删除员工信息
def delStaff(self):
staff_name = input('姓名:')
try:
del staffs[staff_name]
print('删除成功!')
except:
print('没有此员工信息!')
# 查找员工信息
def findStaff(self):
staff_name = input('姓名:')
try:
print(staffs[staff_name])
except:
print('没有此员工信息!')
# 查询工资最高的员工
def findMaxPay(self):
for staff in staffs:
print(staff)
暂时只实现了前三个功能,并且未本地化储存。
class Staff:
"""员工类"""
def __init__(self, name, age, salary, job, department):
self.name = name
self.age = age
self.id = ''
self.salary = salary
self.job = job
self.department = department
def show_info(self):
print('姓名:%s 工号:%s 部门:%s 职位:%s' % (self.name, self.id, self.department, self.job))
def __add__(self, other):
return self.age + other.age
class HrManager:
"""人力资源管理系统"""
# 整个公司的所有的员工
all_staff = []
# 目前公司已经入职的人数
__numers = 0
__all_department = ['财务部', '行政部', '研发部', '总经办','后勤部']
@classmethod
def add_staff(cls):
"""添加员工"""
name = input('名字:')
age = int(input('年龄:'))
salary = int(input('薪资:'))
while True:
print('公司部门:', *cls.__all_department)
department = input('部门:')
if department in cls.__all_department:
break
else:
print('部门输入有误')
job = input('职位:')
# 生成工号
cls.__numers += 1
id = str(cls.__numers).rjust(4, '0')
# 创建员工对象
staff = Staff(name, age, salary, job, department)
staff.id = id
# 添加员工
cls.all_staff.append(staff)
@classmethod
def del_staff(cls):
"""删除员工"""
name = input('请输入要删除的员工姓名:')
flag = False
for staff in cls.all_staff[:]:
if staff.name == name:
flag = True
staff.show_info()
value = input('是否删除(Y/N):')
if value == 'Y':
cls.all_staff.remove(staff)
print('删除成功!')
if not flag:
print('公司没有该员工!')
@classmethod
def find_staff(cls):
name = input('请输入要查找的员工姓名:')
flag = False
for staff in cls.all_staff:
if staff.name == name:
flag = True
staff.show_info()
if not flag:
print('公司没有该员工!')
@classmethod
def get_most_rich(cls):
if len(cls.all_staff) == 0:
print('公司还没有员工!')
return
max_staff = cls.all_staff[0]
for staff in cls.all_staff:
if staff.salary > max_staff.salary:
max_staff = staff
print('薪资最高是:%s %d' % (max_staff.name, max_staff.salary))
@classmethod
def average_age(cls):
"""获取公司员工的平均年龄"""
if len(cls.all_staff) == 0:
print('公司还没有员工!')
return
return sum(cls.all_staff)/len(cls.all_staff)
if __name__ == '__main__':
HrManager.add_staff()
HrManager.add_staff()
HrManager.add_staff()
HrManager.del_staff()
网友评论