有5个学生,每个学生的数据包括学号、姓名、3门课的成绩。从键盘输入5个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课程的成绩、平均分数)。要求用一个input函数输入5个学生数据,用一个average函数求总平均分,用max函数找出最高分学生数据。总平均分和最高分的学生的数据都在主函数中输出。
时间: 2023-12-15 18:22:49 浏览: 89
数据结构-学生数据结构成绩管理系统.doc
好的,下面是实现这个功能的Python代码:
```python
def input_data():
students = []
for i in range(5):
data = input(f"请输入第{i+1}个学生的数据(学号 姓名 三门课成绩,用空格隔开):")
data_list = data.split()
student = {
"学号": data_list[0],
"姓名": data_list[1],
"课程1": int(data_list[2]),
"课程2": int(data_list[3]),
"课程3": int(data_list[4])
}
students.append(student)
return students
def average(students):
total_score = [0, 0, 0]
for student in students:
total_score[0] += student["课程1"]
total_score[1] += student["课程2"]
total_score[2] += student["课程3"]
avg_score = [score/5 for score in total_score]
return avg_score
def max_score(students):
max_student = students[0]
for student in students:
total_score = student["课程1"] + student["课程2"] + student["课程3"]
max_total_score = max_student["课程1"] + max_student["课程2"] + max_student["课程3"]
if total_score > max_total_score:
max_student = student
return max_student
students = input_data()
avg_score = average(students)
max_student = max_score(students)
print("三门课的总平均成绩为:", avg_score)
print("最高分的学生数据为:", max_student)
```
这个程序会先调用`input_data`函数,让用户输入5个学生的数据,然后将这些数据保存到一个列表中。接着调用`average`函数,计算出三门课的总平均成绩,返回一个包含平均分数的列表。最后调用`max_score`函数,找出最高分的学生数据,返回一个字典。最后在主函数中输出总平均成绩和最高分的学生数据。
阅读全文