文件score.txt中存储了若干学生的姓名、学号和3门考试课的成绩 要求:按总分从高到低输出学生成绩记录(按学号、姓名、三门课成绩的顺序)到文件sorted.txt
时间: 2023-11-27 12:54:57 浏览: 289
可以使用Python来实现这个任务,具体代码如下:
```python
# 打开文件score.txt,读取学生成绩记录
with open("score.txt", "r") as f:
lines = f.readlines()
# 处理每一行记录,计算总分
records = []
for line in lines:
data = line.strip().split()
name, stu_id, score1, score2, score3 = data
total_score = int(score1) + int(score2) + int(score3)
record = (name, stu_id, score1, score2, score3, total_score)
records.append(record)
# 按总分从高到低排序
sorted_records = sorted(records, key=lambda x: x[5], reverse=True)
# 将排序后的记录写入文件sorted.txt
with open("sorted.txt", "w") as f:
for record in sorted_records:
f.write("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\n".format(record[1], record[0], record[2], record[3], record[4], record[5]))
```
上述代码中,首先使用`with open()`语句打开文件score.txt,并读取所有行记录。然后对每一行记录进行处理,计算出总分,并将每条记录构造成一个元组,存入一个列表中。接着使用`sorted()`函数,按总分从高到低排序得到排序后的记录列表。最后使用`with open()`语句打开文件sorted.txt,遍历排序后的记录列表,将每条记录写入文件中。
阅读全文