编写代码1.输入、修改和显示n个学生的m门考试科目的成绩,计算总分和平均分。 2.分别按总分和学号进行排序。 3.输入学生的学号,显示该学生的姓名、各门课程的成绩。
时间: 2024-02-27 07:56:56 浏览: 63
好的,这是一个学生成绩管理系统,我可以帮你实现这个功能。以下是Python代码实现:
```python
# 定义学生类
class Student:
def __init__(self, id, name, scores):
self.id = id
self.name = name
self.scores = scores
self.total_score = sum(scores)
self.avg_score = self.total_score / len(scores)
# 输入学生信息和成绩
def input_students(n, m):
students = []
for i in range(n):
id = input("请输入第%d个学生的学号:" % (i+1))
name = input("请输入第%d个学生的姓名:" % (i+1))
scores = []
for j in range(m):
score = float(input("请输入%s的第%d门课成绩:" % (name, j+1)))
scores.append(score)
student = Student(id, name, scores)
students.append(student)
return students
# 按总分排序
def sort_by_total_score(students):
return sorted(students, key=lambda x: x.total_score, reverse=True)
# 按学号排序
def sort_by_id(students):
return sorted(students, key=lambda x: x.id)
# 显示学生信息和成绩
def display_student_info(students):
id = input("请输入要查询学生的学号:")
for student in students:
if student.id == id:
print("学号:%s,姓名:%s" % (student.id, student.name))
for i, score in enumerate(student.scores):
print("第%d门课成绩:%f" % (i+1, score))
return
print("未找到该学生!")
# 测试
if __name__ == '__main__':
n = 3 # 学生数量
m = 2 # 课程数量
students = input_students(n, m)
students_sorted_by_total_score = sort_by_total_score(students)
students_sorted_by_id = sort_by_id(students)
display_student_info(students)
```
这段代码可以实现你提出的三个问题。你可以根据你的需求进行修改和使用。
阅读全文