作业:
面向对象人力资源管理系统:
- 能存多个员工信息
(每个员工的信息有:姓名、年龄、工号、薪资、职位、部门) - 新员工入职(添加员工)
- 员工离职(删除员工)
- 查看某个员工的信息
- 查询薪资最高的员工
- 查询指定部门中所有员工的平均薪资
- 求整个公司的员工的平均年龄
(可以根据能力改善和添加功能,做到尽量贴近生活)
from random import randint
class Staff:
def __init__(self, name='', age=0):
self.name = name
self.age = age
self.staff_id = '2018' + str(randint(0, 100)).rjust(3, '0')
self._salary = 0
self._position = ''
self._department = ''
@property
def salary(self):
return self._salary
@salary.setter
def salary(self, salary):
self._salary = salary
@property
def position(self):
return self._position
@position.setter
def position(self, position):
self._position = position
@property
def department(self):
return self._department
@department.setter
def department(self, department):
self._department = department
def add_staff(name, age):
return staffs.append(Staff(name, age))
def del_staff(staff_id):
for staff in staffs[:]:
if staff.staff_id == staff_id:
del staff
def query_staff(name):
same_name = []
for staff in staffs[:]:
if staff.name == name:
same_name.append(staff)
return same_name
def query_all_staff():
for staff in staffs[:]:
print(staff.name, staff.age, staff.salary, staff.staff_id)
def query_highest_salary():
max_salary = 0
for staff in staffs:
if staff.salary > max_salary:
max_salary = staff.salary
return max_salary
def query_avg_salary(department):
sum_salary = 0
num = 0
for staff in staffs:
sum_salary += staff.salary
num += 1
avg_salary = sum_salary / num
return avg_salary
def query_avg_age():
sum_age = 0
num = 0
for staff in staffs:
sum_age += staff.age
num += 1
avg_age = sum_age / num
return avg_age
未完待续...
网友评论