编程实现10个学生的成绩管理系统,学生信息包括:学生学号、姓名和3门课程的成绩及平均成绩。要求如下: (1)在主函数中编写一个提示菜单,根据输入菜单的编号调用相应函数。 (2)用input函数来输入数据 (3)用aver函数求各学生的平均成绩。 (4)用sort函数实现按学生平均成绩排序。 (5)用print函数来输出所有学生的信息
时间: 2024-02-28 15:54:00 浏览: 58
编程实现:(1) 键入某组学生(共 10 人)的学号、姓名、组成原理考试 成绩、数据结构考试成绩、汇编语言考试成绩
好的,这是一个典型的学生成绩管理系统的问题,我会帮您解答。
首先,我们需要定义一个学生类,包含学号、姓名、3门课程的成绩和平均成绩。然后,我们需要写一个函数用来输入学生信息,一个函数用来计算平均成绩,一个函数用来排序,最后一个函数用来输出所有学生的信息。
下面是一个可能的解决方案:
```python
class Student:
def __init__(self, id, name, score1, score2, score3):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
self.average_score = (score1 + score2 + score3) / 3
def input_students():
students = []
for i in range(10):
id = input("请输入第{}个学生的学号:".format(i+1))
name = input("请输入第{}个学生的姓名:".format(i+1))
score1 = float(input("请输入第{}个学生的第一门课程成绩:".format(i+1)))
score2 = float(input("请输入第{}个学生的第二门课程成绩:".format(i+1)))
score3 = float(input("请输入第{}个学生的第三门课程成绩:".format(i+1)))
student = Student(id, name, score1, score2, score3)
students.append(student)
return students
def average(students):
for student in students:
student.average_score = (student.score1 + student.score2 + student.score3) / 3
def sort(students):
students.sort(key=lambda student: student.average_score, reverse=True)
def print_students(students):
print("学号\t姓名\t成绩1\t成绩2\t成绩3\t平均成绩")
for student in students:
print("{}\t{}\t{}\t{}\t{}\t{:.2f}".format(student.id, student.name, student.score1, student.score2, student.score3, student.average_score))
def main():
students = input_students()
average(students)
sort(students)
print_students(students)
if __name__ == '__main__':
main()
```
在主函数中,我们先调用input_students函数来输入学生信息,然后调用average函数计算平均成绩,再调用sort函数按平均成绩排序,最后调用print_students函数输出所有学生的信息。
阅读全文