Day12作业-面向对象人力资源管理系统

2018-08-01  本文已影响65人  周zau1
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()
上一篇下一篇

猜你喜欢

热点阅读