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()