有5个学生,每个学生的数据信息包括学号、姓名、4门课程成绩,编程实现学生成绩管理。
时间: 2023-12-15 09:08:32 浏览: 95
可以使用Python语言编写一个学生成绩管理系统,具体实现如下:
```python
class Student:
def __init__(self, id, name, score1, score2, score3, score4):
self.id = id
self.name = name
self.score1 = score1
self.score2 = score2
self.score3 = score3
self.score4 = score4
def total_score(self):
return self.score1 + self.score2 + self.score3 + self.score4
def average_score(self):
return self.total_score() / 4
def __str__(self):
return f"{self.id}\t {self.name}\t {self.score1}\t {self.score2}\t {self.score3}\t {self.score4}\t {self.total_score()}\t {self.average_score()}"
class ScoreManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def get_students(self):
return self.students
def sort_by_total_score(self):
self.students.sort(key=lambda x: x.total_score(), reverse=True)
def sort_by_average_score(self):
self.students.sort(key=lambda x: x.average_score(), reverse=True)
def find_student_by_id(self, id):
for student in self.students:
if student.id == id:
return student
return None
if __name__ == "__main__":
score_manager = ScoreManager()
score_manager.add_student(Student("001", "张三", 90, 80, 85, 95))
score_manager.add_student(Student("002", "李四", 85, 75, 80, 90))
score_manager.add_student(Student("003", "王五", 95, 90, 80, 70))
score_manager.add_student(Student("004", "赵六", 70, 80, 75, 85))
score_manager.add_student(Student("005", "钱七", 80, 75, 90, 85))
print("按总分排序:")
score_manager.sort_by_total_score()
for student in score_manager.get_students():
print(student)
print("按平均分排序:")
score_manager.sort_by_average_score()
for student in score_manager.get_students():
print(student)
student = score_manager.find_student_by_id("003")
if student:
print(f"查找到学生:{student}")
else:
print("未找到该学生")
```
上述代码定义了两个类,一个是学生信息类 `Student`,另一个是成绩管理类 `ScoreManager`。其中,`Student` 类保存了每个学生的学号、姓名和4门课程的成绩,同时定义了计算总分和平均分的方法;`ScoreManager` 类维护了所有学生的列表,并提供了添加学生、获取学生列表、按总分排序、按平均分排序和根据学号查找学生等方法。
在主程序中,我们创建了一个 `ScoreManager` 的实例,添加了5个学生,并分别按总分和平均分进行排序输出。最后,我们根据学号查找了一个学生,如果找到则输出该学生的信息,否则输出未找到该学生的提示。
阅读全文