有 � N 个学生,每个学生的数据包括学号、姓名、三门课的成绩。 从键盘输入 � N 个学生的数据,要求打印出 3 3 门课的总平均成绩,以及总分最高的学生的数据(包括学号、姓名、 3 3 门课成绩)。
时间: 2023-12-15 19:45:04 浏览: 103
好的,这是一个关于学生数据处理的问题。根据您的要求,我可以提供以下代码实现:
```python
# 定义学生类
class Student:
def __init__(self, id, name, score1, score2, score3):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
# 从键盘输入学生数据
n = int(input("请输入学生数量:"))
students = []
for i in range(n):
id = input("请输入第%d个学生的学号:" % (i+1))
name = input("请输入第%d个学生的姓名:" % (i+1))
score1 = float(input("请输入第%d个学生的第一门课成绩:" % (i+1)))
score2 = float(input("请输入第%d个学生的第二门课成绩:" % (i+1)))
score3 = float(input("请输入第%d个学生的第三门课成绩:" % (i+1)))
students.append(Student(id, name, score1, score2, score3))
# 计算平均成绩
total_score1 = total_score2 = total_score3 = 0
for s in students:
total_score1 += s.score1
total_score2 += s.score2
total_score3 += s.score3
avg_score1 = total_score1 / n
avg_score2 = total_score2 / n
avg_score3 = total_score3 / n
print("三门课的平均成绩分别为:%.2f %.2f %.2f" % (avg_score1, avg_score2, avg_score3))
# 寻找总分最高的学生
max_score = 0
max_student = None
for s in students:
total_score = s.score1 + s.score2 + s.score3
if total_score > max_score:
max_score = total_score
max_student = s
print("总分最高的学生是:%s,学号:%s,总分:%.2f,第一门课成绩:%.2f,第二门课成绩:%.2f,第三门课成绩:%.2f" % (max_student.name, max_student.id, max_score, max_student.score1, max_student.score2, max_student.score3))
```
这段代码可以实现从键盘输入学生数据,计算三门课的平均成绩以及寻找总分最高的学生的信息。希望能够帮到您!
阅读全文