设计一个学生成绩管理系统,通过该系统可以实现如下功能: (1) 录入功能:可以录入学生信息,学生信息包括学号、姓名、3门课程(数据结构、网页开发基础、英语)成绩 (10分) (2) 按平均成绩排序功能:计算出每个学生的平均成绩,按照学生平均成绩由高到低排序。
时间: 2023-12-10 14:40:10 浏览: 81
以下是一个简单的学生成绩管理系统的实现,基于Python语言和面向对象编程思想:
```python
class Student:
def __init__(self, student_id, name, score_ds, score_web, score_eng):
self.student_id = student_id
self.name = name
self.score_ds = score_ds
self.score_web = score_web
self.score_eng = score_eng
self.average_score = (score_ds + score_web + score_eng) / 3
def get_info(self):
return f"{self.student_id}\t{self.name}\t{self.score_ds}\t{self.score_web}\t{self.score_eng}\t{self.average_score:.2f}"
class ScoreManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def sort_by_average_score(self):
self.students.sort(key=lambda s: s.average_score, reverse=True)
def show_students(self):
print("ID\tName\tDS\tWeb\tEng\tAvg")
for student in self.students:
print(student.get_info())
# Example usage
manager = ScoreManager()
manager.add_student(Student("001", "Alice", 85, 92, 78))
manager.add_student(Student("002", "Bob", 90, 78, 88))
manager.add_student(Student("003", "Charlie", 82, 85, 90))
manager.sort_by_average_score()
manager.show_students()
```
这个系统中,我们定义了两个类:`Student` 和 `ScoreManager`。
`Student` 类表示一个学生的信息,包括学号、姓名、三门课程的成绩以及平均成绩。在 `__init__` 方法中,我们通过输入的成绩计算出了平均成绩并保存到了实例属性 `average_score` 中。`get_info` 方法用于返回一个字符串,表示该学生的所有信息,方便后面的打印输出。
`ScoreManager` 类表示学生成绩管理系统,提供了添加学生、按平均成绩排序和展示学生信息等功能。在 `__init__` 方法中,我们初始化了一个空的学生列表。`add_student` 方法用于往列表中添加一个学生对象,`sort_by_average_score` 方法用于按平均成绩由高到低对学生列表进行排序,`show_students` 方法用于打印输出每个学生的信息。
在实际使用时,我们可以通过创建一个 `ScoreManager` 对象,并调用其各种方法来完成学生成绩管理的操作。在上面的例子中,我们首先通过调用 `add_student` 方法添加了三个学生的信息,然后调用 `sort_by_average_score` 方法对学生列表按平均成绩排序,最后调用 `show_students` 方法打印输出排序后的结果。
阅读全文