有10 个学生,每个学生的数据包括学号、姓名、3 门功课的成绩。从键盘输入 10个学生的数据,要求按平均成绩降序显示出所有学生的数据(包括学号、姓名、3门课成绩、平均成绩),并将其写入文本文件 result.txt 中
时间: 2023-12-15 15:45:03 浏览: 83
好的,我可以帮你解决这个问题。以下是实现该功能的Python代码:
```python
# 定义一个学生类
class Student:
def __init__(self, id, name, grade1, grade2, grade3):
self.id = id
self.name = name
self.grade1 = grade1
self.grade2 = grade2
self.grade3 = grade3
self.avg_grade = (grade1 + grade2 + grade3) / 3
# 从键盘输入学生数据
students = []
for i in range(10):
id = input("请输入学号:")
name = input("请输入姓名:")
grade1 = float(input("请输入第一门课程成绩:"))
grade2 = float(input("请输入第二门课程成绩:"))
grade3 = float(input("请输入第三门课程成绩:"))
student = Student(id, name, grade1, grade2, grade3)
students.append(student)
# 按平均成绩降序排序
students.sort(key=lambda x: x.avg_grade, reverse=True)
# 显示所有学生数据并写入文件
with open("result.txt", "w") as f:
for student in students:
print(f"学号:{student.id},姓名:{student.name},成绩1:{student.grade1},成绩2:{student.grade2},成绩3:{student.grade3},平均成绩:{student.avg_grade}")
f.write(f"学号:{student.id},姓名:{student.name},成绩1:{student.grade1},成绩2:{student.grade2},成绩3:{student.grade3},平均成绩:{student.avg_grade}\n")
```
你可以把这段代码保存为一个.py文件,然后在命令行中运行它。程序会依次提示你输入10个学生的数据,然后按平均成绩降序显示所有学生的数据,并将其写入文本文件 result.txt 中。
阅读全文