1.一个班上有 30 名学生,每个学生的数据作为一个记录,每个记录包括 学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、 姓名及三门课的成绩。要求打印三门课程平均成绩最高分的学生记录。 2.将程序改为使用链表实现。
时间: 2024-09-10 21:07:52 浏览: 176
首先,我们来解决第一个问题,这涉及到创建一个简单的数据结构来存储学生信息,并通过输入获取数据,最后找出平均成绩最高的学生。
1. 在Python中,我们可以设计一个名为`Student`的类,包含属性如学号、姓名和成绩列表。可以这样实现:
```python
class Student:
def __init__(self, id, name):
self.id = id
self.name = name
self.scores = [None] * 3
# 输入分数方法
def input_scores(self, score1, score2, score3):
self.scores[0], self.scores[1], self.scores[2] = score1, score2, score3
# 计算平均分
def average_score(self):
return sum(self.scores) / len(self.scores)
# 获取用户输入,创建学生对象并计算平均分
highest_average_student = None
for _ in range(30):
id = int(input("请输入学生学号:"))
name = input("请输入学生姓名:")
score1, score2, score3 = map(int, input("请输入三门课的成绩:").split())
student = Student(id, name)
student.input_scores(score1, score2, score3)
avg_score = student.average_score()
if highest_average_student is None or avg_score > highest_average_student.average_score():
highest_average_student = student
if highest_average_student:
print(f"平均成绩最高的学生:{highest_average_student.name},学号{highest_average_student.id}, 平均分:{highest_average_student.average_score()}")
else:
print("没有找到平均成绩最高的学生")
阅读全文