编程实现10个学生的成绩管理系统,学生信息包括:学生学号、姓名和3门课程的成绩及平均成绩。要求如下: (1)在主函数中编写一个提示菜单,根据输入菜单的编号调用相应函数。 (2)用input函数来输入数据 (3)用aver函数求各学生的平均成绩。 (4)用sort函数实现按学生平均成绩排序。 (5)用print函数来输出所有学生的信息
时间: 2024-03-22 19:37:10 浏览: 83
c代码-编程实现:输入10个学生的6门课成绩,分别求出每个学生的平均成绩。
好的,这个问题需要用到Python语言来实现,以下是实现的代码:
```python
# 定义一个学生类
class Student:
def __init__(self, stu_no, name, score1, score2, score3):
self.stu_no = stu_no
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
self.average_score = self.aver()
# 计算平均成绩
def aver(self):
return (self.score1 + self.score2 + self.score3) / 3
# 定义一个函数来输入学生信息
def input_student_info():
students = []
for i in range(10):
stu_no = input("请输入第%d个学生的学号:" % (i + 1))
name = input("请输入第%d个学生的姓名:" % (i + 1))
score1 = float(input("请输入第%d个学生的第一个成绩:" % (i + 1)))
score2 = float(input("请输入第%d个学生的第二个成绩:" % (i + 1)))
score3 = float(input("请输入第%d个学生的第三个成绩:" % (i + 1)))
student = Student(stu_no, name, score1, score2, score3)
students.append(student)
return students
# 定义一个函数来按平均成绩排序
def sort_students(students):
return sorted(students, key=lambda x: x.average_score, reverse=True)
# 定义一个函数来输出所有学生信息
def print_students(students):
for i, student in enumerate(students):
print("第%d个学生的信息为:" % (i + 1))
print("学号:%s,姓名:%s,成绩1:%f,成绩2:%f,成绩3:%f,平均成绩:%f" % (student.stu_no, student.name, student.score1, student.score2, student.score3, student.average_score))
print()
# 主函数
def main():
print("欢迎使用学生信息管理系统!")
print("1. 输入学生信息")
print("2. 按平均成绩排序")
print("3. 输出所有学生信息")
print("4. 退出系统")
students = []
while True:
choice = int(input("请选择菜单编号:"))
if choice == 1:
students = input_student_info()
elif choice == 2:
students = sort_students(students)
elif choice == 3:
print_students(students)
elif choice == 4:
print("感谢使用学生信息管理系统!")
break
else:
print("输入有误,请重新输入!")
if __name__ == '__main__':
main()
```
这个程序可以实现输入10个学生的信息,然后按平均成绩排序并输出所有学生的信息。运行程序后会出现一个菜单,根据菜单编号选择相应的功能即可。
阅读全文