1.设计主函数,在主函中应该有正确输入或调用每个学生的学号及各科成绩(输入可以根据不同的情况采用不同的输入方法)。 要求:输入时有必要的提示信息。 2.设计子函数,可以求每个学生的平均成绩,每门课的平均成绩等、并保存在数组中; 要求:每个学生至少设计两个子函数。 3.最后结果输出。要求:输出格式要界面直观、清晰大方、格式规范。
时间: 2024-02-29 12:51:53 浏览: 138
c语言课程设计学生成绩管理系统
好的,这是一个关于学生成绩管理的问题,我会根据您的要求回答。首先,您需要设计一个主函数,该函数可以输入或调用每个学生的学号及各科成绩,输入时需要有必要的提示信息。以下是一个示例代码:
```python
def main():
# 输入学生人数
n = int(input("请输入学生人数:"))
# 初始化学生信息
students = []
for i in range(n):
student = {}
student['id'] = input("请输入第{}个学生的学号:".format(i+1))
student['name'] = input("请输入第{}个学生的姓名:".format(i+1))
student['scores'] = []
for j in range(3):
score = float(input("请输入第{}个学生的第{}门课的成绩:".format(i+1, j+1)))
student['scores'].append(score)
students.append(student)
# 计算每个学生的平均成绩和每门课的平均成绩
avg_student_scores = []
for student in students:
avg_score = sum(student['scores']) / len(student['scores'])
avg_student_scores.append(avg_score)
avg_course_scores = []
for j in range(3):
course_scores = [student['scores'][j] for student in students]
avg_score = sum(course_scores) / len(course_scores)
avg_course_scores.append(avg_score)
# 输出结果
print("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩")
for i in range(n):
student = students[i]
print("{}\t{}\t{}\t{}\t{}\t{:.2f}".format(student['id'], student['name'], student['scores'][0], student['scores'][1], student['scores'][2], avg_student_scores[i]))
print("平均成绩\t{:.2f}\t{:.2f}\t{:.2f}".format(avg_course_scores[0], avg_course_scores[1], avg_course_scores[2]))
```
在这个示例代码中,我们首先输入了学生人数,然后用一个列表保存了每个学生的学号、姓名和成绩。接下来,我们分别计算了每个学生的平均成绩和每门课的平均成绩,并用两个列表分别保存了这些数据。最后,我们按照要求输出了结果。
在这个示例代码中,我们使用了一个列表来保存每个学生的信息,每个学生又是一个字典。您可以根据实际情况来选择使用什么样的数据结构。另外,我们在计算平均成绩时使用了两个循环,您也可以使用更加高效的方法来计算,比如使用numpy库。
阅读全文