设计一个学生信息管理系统,要求能够完成学生姓名,出生年月,学号,三科考试成绩的输入,还能完成对学生成绩的升序和降序排列,输出学生成绩的平均分
时间: 2023-12-06 14:02:33 浏览: 73
一个关于学生成绩管理的系统
好的,这是一个比较完整的需求,我可以帮你设计这个学生信息管理系统。首先,我们需要设计一个学生类,包含以下属性:
- 姓名
- 出生年月
- 学号
- 三科考试成绩
同时,我们需要设计一个对学生信息进行管理的类,包含以下功能:
- 添加学生信息
- 删除学生信息
- 修改学生信息
- 查询学生信息
- 对学生成绩进行升序和降序排列
- 输出学生成绩的平均分
这个类可以被称为“学生信息管理系统”。下面是这个系统的代码实现:
```python
class Student:
def __init__(self, name, birth, stu_id, score=[]):
self.name = name
self.birth = birth
self.stu_id = stu_id
self.score = score
class StudentManagement:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def remove_student(self, student):
self.students.remove(student)
def modify_student(self, student, name=None, birth=None, stu_id=None, score=None):
if name:
student.name = name
if birth:
student.birth = birth
if stu_id:
student.stu_id = stu_id
if score:
student.score = score
def query_student(self, key, value):
for student in self.students:
if getattr(student, key) == value:
return student
def sort_student(self, key, reverse=False):
self.students.sort(key=lambda x: getattr(x, key), reverse=reverse)
def get_average_score(self):
total_score = 0
for student in self.students:
total_score += sum(student.score)
return total_score / (len(self.students) * 3)
```
这个系统中,我们定义了两个类:`Student`和`StudentManagement`。`Student`类表示一个学生的信息,包含姓名、出生年月、学号、三科考试成绩。`StudentManagement`类表示学生信息的管理系统,包含添加、删除、修改、查询、排序、计算平均分等功能。
你可以按照以下步骤使用这个系统:
1. 创建一个`StudentManagement`对象。
2. 使用`add_student`方法添加学生信息。
3. 使用`remove_student`方法删除学生信息。
4. 使用`modify_student`方法修改学生信息。
5. 使用`query_student`方法查询学生信息。
6. 使用`sort_student`方法对学生成绩进行排序。
7. 使用`get_average_score`方法计算学生成绩的平均分。
下面是一个示例:
```python
# 创建学生信息管理系统
stu_manager = StudentManagement()
# 添加学生信息
stu1 = Student('Tom', '2000-01-01', '001', [80, 90, 70])
stu2 = Student('Jerry', '2000-02-02', '002', [90, 85, 80])
stu3 = Student('Lucy', '2000-03-03', '003', [75, 80, 85])
stu_manager.add_student(stu1)
stu_manager.add_student(stu2)
stu_manager.add_student(stu3)
# 查询学生信息
print(stu_manager.query_student('name', 'Tom').score) # [80, 90, 70]
# 修改学生信息
stu_manager.modify_student(stu1, score=[85, 95, 75])
print(stu_manager.query_student('name', 'Tom').score) # [85, 95, 75]
# 对学生成绩进行排序
stu_manager.sort_student('name')
for student in stu_manager.students:
print(student.name, student.score) # Jerry [90, 85, 80] Lucy [75, 80, 85] Tom [85, 95, 75]
# 计算学生成绩的平均分
print(stu_manager.get_average_score()) # 81.66666666666667
```
希望这个学生信息管理系统能够满足你的需求。
阅读全文