班上有30名学生,每个记录包括学号、姓名、三门课程的成绩和三门课程平均成绩。从键盘输入学生的学号、姓名及三门课的成绩。打印三门课程平均成绩最高分的学生记录。实现计算和查找每门课的平均分、最低分、最高分
时间: 2024-10-15 07:27:58 浏览: 27
学生信息管理系统,1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
这是一个简单的数据处理和统计问题,在Python中可以这样实现:
```python
# 定义一个学生类
class Student:
def __init__(self, id, name):
self.id = id
self.name = name
self.grades = [0] * 3 # 三门课程的成绩列表
@property
def avg_score(self): # 计算平均成绩
return sum(self.grades) / len(self.grades)
@avg_score.setter
def set_grade(self, course, score):
if 0 <= score <= 100: # 检查分数是否合理
self.grades[course - 1] = score
def main():
students = []
while True:
try:
id = int(input("请输入学号(输入-1结束): "))
if id == -1:
break
name = input("请输入姓名: ")
grades = list(map(int, input(f"请输入{id}号同学三门课程的成绩(逗号隔开): ").split(',')))
if len(grades) != 3:
print("错误: 成绩输入不完整!")
continue
student = Student(id, name)
student.set_grade(1, grades[0]) # 第一门课
student.set_grade(2, grades[1]) # 第二门课
student.set_grade(3, grades[2]) # 第三门课
students.append(student)
except ValueError:
print("错误: 输入格式有误,请重新输入.")
max_avg_student = max(students, key=lambda s: s.avg_score)
print(f"最高平均分学生信息:")
print(f"学号: {max_avg_student.id}")
print(f"姓名: {max_avg_student.name}")
print(f"平均成绩: {max_avg_student.avg_score}")
if __name__ == "__main__":
main()
```
在这个程序中,我们首先创建了一个`Student`类,包含了学号、姓名和三个成绩字段。然后通过用户交互收集学生的数据,并存储到`students`列表中。使用`max`函数找到平均成绩最高的学生,最后打印出相关信息。
阅读全文