有8个学生,每个学生的信息包括学号、姓名、三门课的成绩。从键盘输入数据,并按每个学生的三门课的平均成绩从高分到低分打印出这8个学生的学号、姓名、以及个人平均成绩。
时间: 2023-09-11 16:11:30 浏览: 98
好的,以下是 Python 语言的实现,顺带介绍一下 Python 中的排序函数:
```python
# 定义学生类
class Student:
def __init__(self, num, name, score):
self.num = num
self.name = name
self.score = score
self.avg = sum(score) / len(score)
# 定义小于操作符,用于排序
def __lt__(self, other):
return self.avg > other.avg
# 输入学生信息
students = []
for i in range(8):
num = int(input("请输入第%d个学生的学号:" % (i+1)))
name = input("请输入第%d个学生的姓名:" % (i+1))
score = input("请输入第%d个学生的三门课成绩(以空格分隔):" % (i+1))
score = list(map(float, score.split()))
students.append(Student(num, name, score))
# 按平均成绩从高到低排序
students.sort()
# 输出排序后的学生信息
print("排序后的学生信息如下:")
print("学号\t姓名\t平均成绩")
for s in students:
print("%d\t%s\t%.2f" % (s.num, s.name, s.avg))
```
程序中定义了一个 `Student` 类,包含学号、姓名、三门课成绩以及平均成绩。使用 Python 中的 `input` 函数从键盘输入每个学生的信息,并计算出每个学生的平均成绩。然后使用 Python 中的 `sort` 函数按平均成绩从高到低排序。最后按照排序后的顺序输出每个学生的学号、姓名和平均成绩。
注意,Python 中的 `sort` 函数默认是按照对象的小于操作符(`__lt__` 方法)进行排序的,所以在 `Student` 类中定义了小于操作符用于排序。
阅读全文