设计考试成绩统计系统。考试共三个科目语文、数学和英语。考试人数不限(至少5人),每门科目的分数自行设置(0到100分)。要求: (1)统计每门科目的最高分、最低分和平均分 (2)每个学生分数最高的科目(注意是科目不是分数)、分数最低的科目和总分。例如,学生1分数最高的科目是语文...python
时间: 2024-01-18 18:03:10 浏览: 63
好的,我可以帮你设计一个考试成绩统计系统。你可以使用Python编写这个系统。
首先,我们需要定义一个学生类。每个学生对象都应该有一个姓名和一个成绩列表,其中成绩列表包含学生在每个科目中的成绩。
```
class Student:
def __init__(self, name, scores):
self.name = name
self.scores = scores
```
接下来,我们可以定义一个函数,用于计算每门科目的最高分、最低分和平均分。
```
def calculate_subject_statistics(students, subject):
scores = [s.scores[subject] for s in students]
max_score = max(scores)
min_score = min(scores)
average_score = sum(scores) / len(students)
return max_score, min_score, average_score
```
其中,students是一个包含所有学生对象的列表,subject是要统计的科目(例如,'语文'、'数学'、'英语')。
然后,我们可以定义另一个函数,用于计算每个学生分数最高的科目、分数最低的科目和总分。
```
def calculate_student_statistics(student):
max_score = max(student.scores)
min_score = min(student.scores)
total_score = sum(student.scores)
max_subject = None
min_subject = None
for i, score in enumerate(student.scores):
if score == max_score:
max_subject = subjects[i]
if score == min_score:
min_subject = subjects[i]
return max_subject, min_subject, total_score
```
其中,student是一个学生对象,subjects是一个包含所有科目的列表。
最后,我们可以编写主程序,用于输入学生信息并调用上述函数进行统计。
```
subjects = ['语文', '数学', '英语']
# 输入学生信息
students = []
while True:
name = input("请输入学生姓名(输入exit结束):")
if name == "exit":
break
scores = []
for subject in subjects:
score = int(input(f"请输入{name}的{subject}成绩:"))
scores.append(score)
student = Student(name, scores)
students.append(student)
# 统计每门科目的最高分、最低分和平均分
for subject in subjects:
max_score, min_score, average_score = calculate_subject_statistics(students, subject)
print(f"{subject}:最高分{max_score},最低分{min_score},平均分{average_score}")
# 统计每个学生分数最高的科目、分数最低的科目和总分
for student in students:
max_subject, min_subject, total_score = calculate_student_statistics(student)
print(f"{student.name}:最高分科目{max_subject},最低分科目{min_subject},总分{total_score}")
```
这个程序可以帮助你统计每门科目的最高分、最低分和平均分,以及每个学生分数最高的科目、分数最低的科目和总分。
阅读全文