Python练习(七)——面向对象

1.设计一个工资类(Salary),其中的数据成员有:
salary_li代表所有员工工资;
整型值number表示的职工人数。
在main函数中调用你自己设计好的成员函数完成下面的功能:

1). 输入职工工资,工资保存到salary数组中,实际人数保存到number中(输入-1标志着工资输入结束);
2). 给每个人涨100元工资;
3). 对涨后的工资进行排序;
4)输出排序后的工资
class Salary(object):
    def __init__(self ,salary_li=[],number=0):
        self.salary_li=salary_li
        self.number=number
    def salaryInput(self):
        while True:
            salary = int(input("Input salary:"))
            if salary != -1:
                self.number += 1
                self.salary_li.append(salary)
            else:
                break
    def salarySort(self):
        return sorted(self.salary_li)
    def salaryAdd(self,money=100):
        self.salary_li=[items + money for items in self.salary_li]
        return self.salary_li

def main():
    s=Salary()
    s.salaryInput()
    s.salaryAdd()
    print(s.salarySort())

main()

这里写图片描述

拓展
手工输入工资?!太让人不能忍受了。现给出包含了500个职工工资的文件salary.txt,从文件中读数据,完成上面的工作。

import random
def create_file(filename):
    salary = (str(random.randint(4000,10000)) for i in range(500))
    with open(filename,'w+') as f:
        for salary1 in salary:
            f.write(salary1+'\n')
class Salary(object):
    def __init__(self ,salary_li=[],number=0):
        self.salary_li=salary_li
        self.number=number
    def Readfile(self,filename):
        with open(filename) as f:
            self.salary_li= [items.strip() for items in f.readlines()]
            self.number=len(self.salary_li)
    def salarySort(self):
        return sorted(self.salary_li)
    def salaryAdd(self,money=100):
        self.salary_li=[int(item) + money for item in self.salary_li]
        return self.salary_li

def main():
    create_file('StaffSalary.txt')
    s=Salary()
    s.Readfile('StaffSalary.txt')
    s.salaryAdd()
    print(s.salarySort())

if __name__ == '__main__':
    main()

这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/82154539