有10个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入10个学生的数据,要求打印出3门课的平均成绩,以及平均成绩最高的学生的数据(包括学号、姓名、3门课成绩、平均分数)。
时间: 2023-12-15 07:24:10 浏览: 81
下面是一种解决方案,使用 Python 语言实现:
```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
def avg_score(self):
return (self.score1 + self.score2 + self.score3) / 3
# 从键盘输入学生数据
students = []
for i in range(10):
id = input("请输入学生学号:")
name = input("请输入学生姓名:")
score1 = int(input("请输入第一门课成绩:"))
score2 = int(input("请输入第二门课成绩:"))
score3 = int(input("请输入第三门课成绩:"))
student = Student(id, name, score1, score2, score3)
students.append(student)
# 计算平均成绩
avg_score1 = sum([student.score1 for student in students]) / 10
avg_score2 = sum([student.score2 for student in students]) / 10
avg_score3 = sum([student.score3 for student in students]) / 10
print("三门课的平均成绩分别为:%.2f,%.2f,%.2f" % (avg_score1, avg_score2, avg_score3))
# 找到平均成绩最高的学生
max_avg_score = 0
max_avg_score_student = None
for student in students:
if student.avg_score() > max_avg_score:
max_avg_score = student.avg_score()
max_avg_score_student = student
# 打印平均成绩最高的学生的数据
print("平均成绩最高的学生信息如下:")
print("学号:%s" % max_avg_score_student.id)
print("姓名:%s" % max_avg_score_student.name)
print("第一门课成绩:%d" % max_avg_score_student.score1)
print("第二门课成绩:%d" % max_avg_score_student.score2)
print("第三门课成绩:%d" % max_avg_score_student.score3)
print("平均分数:%.2f" % max_avg_score_student.avg_score())
```
运行程序后,可以依次输入每个学生的数据,然后程序会计算出三门课的平均成绩,并找到平均成绩最高的学生的数据进行打印。
阅读全文