美文网首页
day14作业

day14作业

作者: 七夜_174e | 来源:发表于2018-08-01 21:02 被阅读0次

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

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

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

    # Filename  : 面向对象作业.py
    # Date  : 2018/8/1
    import json
    
    try:
        with open('./new_staff.json', 'r', encoding='utf-8') as g:
            old_data = json.load(g)
    
    except FileNotFoundError:
        with open('./new_staff.json', 'w', encoding='utf-8') as g:
            old_data = []
            json.dump(old_data, g)
    
    def write():
        with open('./new_staff.json', 'w', encoding='utf-8') as g:
            json.dump(old_data, g)
    
    class Staff:
        def __init__(self, name, age, id_num, money, job, department):
            self.name = name
            self._age = age
            self.id_num = id_num
            self._money = money
            self.job = job
            self.department = department
    
        def info(self):
    
            staff_info = {}
            staff_info['name'] = self.name
            staff_info['age'] = self._age
            staff_info['id_num'] = self.id_num
            staff_info['money'] = self._money
            staff_info['job'] = self.job
            staff_info['department'] = self.department
            old_data.append(staff_info)
            return old_data
    
    
    class HR_manager:
    
        def add_staff(self):
            name = input('请输入员工的姓名:')
            while True:
                try:
                    age = int(input('请输入员工年龄:'))
                    break
                except ValueError:
                    print('请输入大于0且小于150的纯数字')
            id_num = input('请输入员工工号:')
            while True:
                try:
                    money = int(input('请输入员工薪资:'))
                    break
                except ValueError:
                    print('请输入大于0纯数字:')
    
            job = input('请输入员工职位:')
            department = input('请输入员工所在部门:')
            new_staff = Staff(name, age, id_num, money, job, department)
            a = new_staff.info()
            write()
    
        def del_staff(self, ):
            name = input('请输入要删除员工的姓名:')
            for x in old_data:
                if x['name'] == name:
                    del x
                    print('删除成功')
            else:
                print('没有该员工信息')
            write()
    
        def watch_staff(self):
            name = input('请输入员工姓名')
            for x in old_data:
                if x['name'] == name:
                    print(x)
            else:
                print('没有该员工信息')
    
        def heighest_money(self):
            a = old_data[0]
            for x in old_data:
                if x['money'] > a['money']:
                    a = x
            print('工资最高的员工信息:', a)
    
        def avg_money(self):
            depart = input('请输入指定的部门')
            for x in old_data:
                if x['department'] == depart:
                    avg1 =[]
                    avg1.append(x['money'])
            print('%s部门平均工资为%d' % (depart, sum(avg1)/int(len(avg1))))
    
        def avg_age(self):
            age1 = []
            for x in old_data:
                age1.append(x['age'])
            print('所有员工平均年龄为%d' % (sum(age1)/int(len(age1))))
    
    
    
    
    if __name__ == '__main__':
    
        hr = HR_manager()
        hr.add_staff()
    

    待调试

    相关文章

      网友评论

          本文标题:day14作业

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