编写一个职工奖金处理程序。要求如下: ① 输入不超过10个职工的工号、姓名和奖金,保存在文件JJ.txt。文件中的数据格式: 90813,张大海,1080.50元 ② 从JJ.txt中读出数据,然后按奖金从低到高排序,保存在文件NewJJ.txt。
时间: 2023-06-18 15:06:06 浏览: 659
好的,这里是一个Python的代码示例,实现了你的需求:
```python
# 读取文件JJ.txt中的数据
with open('JJ.txt', 'r') as file:
data = file.readlines()
# 将每个职工的信息保存为一个元组,并将所有元组保存在列表中
employees = []
for line in data:
emp_id, name, bonus = line.strip().split(',')
employees.append((emp_id, name, float(bonus[:-1])))
# 按照奖金从低到高排序
employees.sort(key=lambda emp: emp[2])
# 将排序后的数据保存到文件NewJJ.txt中
with open('NewJJ.txt', 'w') as file:
for emp in employees:
file.write(f"{emp[0]},{emp[1]},{emp[2]:.2f}元\n")
```
这段代码首先读取了文件JJ.txt中的数据,并将每个职工的信息保存为一个元组,然后将所有元组保存在列表中。接着,使用`sort`函数按照奖金从低到高排序。最后,将排序后的数据保存到文件NewJJ.txt中。
需要注意的是,在读取奖金时,需要去掉字符串末尾的“元”字,然后将剩余部分转换为浮点数。在写入文件时,需要使用格式化字符串来将浮点数保留两位小数,并在末尾添加“元”字。
相关问题
用python编写一个职工奖金处理程序,要求:输入不超过10个职工的工号,姓名和奖金,数据格式为‘90813,张大海,1080.50元’,然后按奖金从低到高排序
好的,您可以参考下面的代码实现:
```python
# 定义一个职工类
class Employee:
def __init__(self, emp_id, name, bonus):
self.emp_id = emp_id
self.name = name
self.bonus = bonus
# 输入职工信息并保存到列表中
employees = []
for i in range(10):
emp_info = input("请输入职工信息,格式为‘工号,姓名,奖金’:")
emp_info_list = emp_info.split(',') # 注意这里要用中文逗号
emp_id = emp_info_list[0]
name = emp_info_list[1]
bonus = float(emp_info_list[2].replace('元', '')) # 将奖金转换为浮点型
emp = Employee(emp_id, name, bonus)
employees.append(emp)
# 对职工列表按奖金从低到高排序
employees.sort(key=lambda x: x.bonus)
# 输出排序结果
print("职工奖金从低到高排序结果如下:")
for emp in employees:
print(emp.emp_id, emp.name, emp.bonus)
```
注意,这里为了方便输入,使用了中文逗号分隔职工信息。如果您希望使用英文逗号,可以将代码中的‘,’替换为‘,’即可。
编写一个职工奖金处理程序。要求如下。 (1)输入不超过10个职工的工号、姓名和奖金,保存在文件JJ. txt中。文件中的数据格式为“90813,张大海,1080.50元”。 (2)从JJ. txt中读出数据,然后按奖金从低到高排序,保存在文件NewJJ. txt中。
好的,这是一个比较简单的程序,下面是 Python 的实现代码:
```python
import os
def get_info():
info = []
for i in range(10):
data = input(f"请输入第{i+1}个职工的工号、姓名和奖金(用逗号分隔):")
info.append(data)
with open("JJ.txt", "w") as f:
for data in info:
f.write(data + "\n")
def sort_bonus():
with open("JJ.txt", "r") as f:
data = f.readlines()
data = [line.strip().split(",") for line in data]
data = sorted(data, key=lambda x: float(x[2]))
with open("NewJJ.txt", "w") as f:
for line in data:
f.write(",".join(line) + "\n")
if not os.path.exists("JJ.txt"):
get_info()
sort_bonus()
print("完成排序!")
```
这个程序首先会让你输入 10 个职工的信息,然后保存在 JJ.txt 文件中。接着,它会从 JJ.txt 文件中读取数据,按照奖金从低到高排序,并保存在 NewJJ.txt 文件中。最后输出完成排序的提示。
阅读全文