美文网首页
基于面向对象的人力资源管理系统

基于面向对象的人力资源管理系统

作者: 她即我命 | 来源:发表于2018-08-02 19:53 被阅读67次

    """
    面向对象人力资源管理系统:

    • 能存多个员工信息
      (每个员工的信息有:姓名、年龄、工号、薪资、职位、部门)
    • 新员工入职(添加员工)
    • 员工离职(删除员工)
    • 查看某个员工的信息
    • 查询薪资最高的员工
    • 查询指定部门中所有员工的平均薪资
    • 求整个公司的员工的平均年龄

    (可以根据能力改善和添加功能,做到尽量贴近生活)

    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))
    
    
    class HrManager:
        """人力资源管理系统"""
        #整个公司的所有员工
        all_starff = []
    
        #目前公司已经入职的人数
        __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_starff.append(staff)
    
        #删除员工
        @classmethod
        def del_staff(cls):
            """删除员工"""
            name = input("请输入要删除员工姓名:")
            flag = False
            for staff in cls.all_starff[:]:
                if staff.name ==name:
                    flag = True
                    staff.show_info()
                    value = input('是否删除(Y/N):')
                    if value == 'Y':
                        cls.all_starff.remove(staff)
                        print('删除成功')
    
            if not flag:
                print('公司没有该员工!')
    
        #查看员工
        @classmethod
        def find_staff(cls):
            name = input('请输入姓名:')
            flog = False
            for staff in cls.all_starff:
                if staff.name == name:
                    flog = True
                    staff.show_info()
            if not flog:
                print('没有该员工')
    
        #最高工资的员工
        @classmethod
        def get_most_rich(cls):
            if len(cls.all_starff) == 0:
                print('公司还没有工资')
                return
    
            max_staff = cls.all_starff[0]
            for staff in cls.all_starff:
                if staff.salary > max_staff.salary:
                    max_staff.salary = staff.salary
            print('最高的工资为%s'%max_staff.salary)
    
        #求整个公司的员工的年龄的平均值
        @classmethod
        def average_age(cls):
            if len(cls.all_starff) == 0:
                print('公司还没有员工')
                return
    
            sum1 = 0
            for staff in cls.all_starff:
                sum1 = sum1 + staff.age
            print('平均年龄为%s' % (sum1 / len(cls.all_starff)))
            return sum1/len(cls.all_starff)
    
    
    if __name__ == '__main__':
        HrManager.add_staff()
        HrManager.add_staff()
        HrManager.add_staff()
        HrManager.find_staff()
        HrManager.del_staff()
        HrManager.find_staff()
        HrManager.average_age()
        HrManager.get_most_rich()
    
    名字陈鹏
    年龄23
    薪资10000
    公司部门: 财务部 行政部 研发部 总经办 后勤部
    部门研发部
    职位python开发
    名字罗志祥
    年龄40
    薪资100000
    公司部门: 财务部 行政部 研发部 总经办 后勤部
    部门后勤部
    职位音乐人
    名字uzi
    年龄23
    薪资50000
    公司部门: 财务部 行政部 研发部 总经办 后勤部
    部门后勤部
    职位游戏人
    请输入姓名:陈鹏
    姓名:陈鹏 工号:0001 部门:研发部 职位:python开发
    请输入要删除员工姓名:uzi
    姓名:uzi 工号:0003 部门:后勤部 职位:游戏人
    是否删除(Y/N):Y
    删除成功
    请输入姓名:uzi
    没有该员工
    平均年龄为31.5
    最高的工资为100000
    

    相关文章

      网友评论

          本文标题:基于面向对象的人力资源管理系统

          本文链接:https://www.haomeiwen.com/subject/tpldvftx.html