美文网首页
August 1 作业(没有使数据本地化)

August 1 作业(没有使数据本地化)

作者: 慢节拍_2709 | 来源:发表于2018-08-01 21:20 被阅读0次

作业

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

  • 能存多个员工信息
    (每个员工的信息有:姓名、年龄、工号、薪资、职位、部门)
  • 新员工入职(添加员工)
  • 员工离职(删除员工)
  • 查看某个员工的信息
  • 查询薪资最高的员工
  • 查询指定部门中所有员工的平均薪资
  • 求整个公司的员工的平均年龄
class Staff:
    """职工类"""
    def __init__(self,name='', age=0, id=0,salary=0,post='',section=''):
        self.name = name
        self.age = age
        self.id = id
        self.salary = salary
        self.post = post
        self.section = section
    # 打卡上班
    def clock_in(self):
        print('%s打卡成功!'%self.name)
    # 打卡下班
    def off_duty(self):
        print('%s下班了'%self.name)
    # 员工职位
    def post_staff(self):
        print('%s的职位是%s'%(self.name, self.post))
    # 员工所在部门
    def section_staff(self):
        print('%s所在部门是%s'%(self.name, self.section))

class Company:
    """公司类"""
    def __init__(self,name=''):
        self.name = name
        self.staffs = []
    # 新职员入职(添加职员)
    def add_staff(self,staff=None):
        self.staffs.append(staff)
        print('入职成功!')
    # 办理离职手续
    def del_staff(self,name):
        for staff in self.staffs[:]:
            if staff.name == name :
                self.staffs.remove(staff)
                print('%s已经办好离职手续!'%name)
                return
        print('查无此人,请重新输入!')
    # 查看员工的信息
    def find_staff(self,name):
        for staff in self.staffs[:]:
            if staff.name == name :
                print('姓名:%s,年龄:%d,工号:%d,薪资:%d,职位:%s,部门:%s'\
                      %(staff.name, staff.age, staff.id, staff.salary, staff.post, staff.section))
                return
        print('查无此人!')
    #查询薪资最高的员工
    def max_salary(self):
        all_salary = {}
        for staff in self.staffs[:]:
            all_salary[staff.name] = staff.salary
        name1 = max(all_salary,key=all_salary.get)
        print('目前%s员工的工资最高,工资为%d'%(name1,all_salary[name1]))

     # 求指定部门平均工资
    def ave_section_salary(self,section):
        all_salary = {}
        number = 0
        sum1 = 0
        for staff in self.staffs[:]:
            if staff.section == section:
                all_salary[staff.section] = staff.salary
                for key, value in all_salary.items():
                    sum1 += value
                    number +=1
                    section_name = key
        ave1 = sum1/number
        print('%s员工的平均工资为%.2f' % (section_name,ave1))

    # 求平均工资
    def ave_salary(self):
        number = 0
        sum1 = 0
        for staff in self.staffs[:]:
            sum1 += staff.salary
            number+=1
        ave1 = sum1/number
        print('所有员工的平均工资为%.2f'%ave1)

    # 求平均年龄
    def ave_age(self):
        number = 0
        sum1 = 0
        for staff in self.staffs[:]:
            sum1 += staff.age
            number += 1
        ave1 = sum1 / number
        print('所有员工的平均年龄为%.1f岁' % ave1)

if __name__ == '__main__':
    # 声明员工对象
    sta1 = Staff(name='老王', age=30, id=1805001,salary=2000,post='软件测试',section='技术部')
    sta2 = Staff(name='小二', age=23, id=1805002,salary=3000,post='销售工程师',section='人事部')
    sta3 = Staff(name='胖哥', age=44, id=1805003, salary=6500, post='python工程师', section='技术部')
    sta4 = Staff(name='小美', age=20, id=1805004, salary=2500, post='产品经理', section='人事部')
    # 声明公司对象
    com1 = Company('想都想不到公司')
    # 添加职员
    com1.add_staff(sta1)
    com1.add_staff(sta2)
    com1.add_staff(sta3)
    com1.add_staff(sta4)
    # 查找
    com1.find_staff('老王')
    com1.find_staff('小二')
    com1.find_staff('胖哥')
    # 删除职员
    com1.del_staff('小二')
    com1.del_staff('小三')
    com1.find_staff('小二')
    # 查看平均年龄
    com1.ave_age()
    # 查看平均工资
    com1.ave_salary()
    # 查看最高工资的员工
    com1.max_salary()
    # 查看指定部门的员工工资
    com1.ave_section_salary('技术部')
    com1.ave_section_salary('人事部')

结果:
入职成功!
入职成功!
入职成功!
入职成功!
姓名:老王,年龄:30,工号:1805001,薪资:2000,职位:软件测试,部门:技术部
姓名:小二,年龄:23,工号:1805002,薪资:3000,职位:销售工程师,部门:人事部
姓名:胖哥,年龄:44,工号:1805003,薪资:6500,职位:python工程师,部门:技术部
小二已经办好离职手续!
查无此人,请重新输入!
查无此人!
所有员工的平均年龄为31.3岁
所有员工的平均工资为3666.67
目前胖哥员工的工资最高,工资为6500
技术部员工的平均工资为4250.00
人事部员工的平均工资为2500.00

相关文章

网友评论

      本文标题:August 1 作业(没有使数据本地化)

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