用面向对象的方法 简单编写一个学生成绩管理程序。要求能添加,编辑,查找,删除学生有关信息
时间: 2023-06-16 19:06:54 浏览: 100
好的,我可以为您提供一个 Python 的示例代码:
```python
class Student:
def __init__(self, name, id_number, scores=None):
self.name = name
self.id_number = id_number
self.scores = scores or {}
def __str__(self):
return f"{self.name} ({self.id_number})"
def add_score(self, subject, score):
self.scores[subject] = score
def edit_score(self, subject, score):
if subject in self.scores:
self.scores[subject] = score
else:
print(f"{self.name} has no score for {subject}.")
def get_score(self, subject):
return self.scores.get(subject, None)
def get_scores(self):
return self.scores
def delete_score(self, subject):
if subject in self.scores:
del self.scores[subject]
else:
print(f"{self.name} has no score for {subject}.")
class StudentManager:
def __init__(self):
self.students = []
def add_student(self, student):
self.students.append(student)
def edit_student(self, id_number, name=None):
for student in self.students:
if student.id_number == id_number:
if name:
student.name = name
return True
return False
def search_student(self, id_number):
for student in self.students:
if student.id_number == id_number:
return student
return None
def delete_student(self, id_number):
for i, student in enumerate(self.students):
if student.id_number == id_number:
del self.students[i]
return True
return False
```
这个程序定义了两个类 `Student` 和 `StudentManager`。`Student` 类表示一个学生,有姓名、学号和分数三个属性,以及添加、编辑、查找和删除分数的方法。`StudentManager` 类管理所有学生,有添加、编辑、查找和删除学生的方法。
下面是一个简单的使用示例:
```python
# 创建一个学生管理器对象
manager = StudentManager()
# 添加几个学生
s1 = Student("张三", "1001")
s1.add_score("数学", 80)
s1.add_score("英语", 90)
manager.add_student(s1)
s2 = Student("李四", "1002")
s2.add_score("数学", 85)
s2.add_score("英语", 95)
manager.add_student(s2)
s3 = Student("王五", "1003")
s3.add_score("数学", 90)
s3.add_score("英语", 100)
manager.add_student(s3)
# 查找一个学生的分数
s = manager.search_student("1002")
if s:
print(f"{s} 的数学成绩是 {s.get_score('数学')}")
else:
print("未找到该学生。")
# 删除一个学生的分数
s = manager.search_student("1003")
if s:
s.delete_score("数学")
else:
print("未找到该学生。")
# 编辑一个学生的信息
manager.edit_student("1002", name="王二")
```
这个示例演示了如何使用 `StudentManager` 类来管理学生信息。您可以根据自己的需求修改或扩展这个程序。
阅读全文