用python面向对象编写学生管理系统
时间: 2023-07-18 18:28:08 浏览: 98
好的,下面是一个使用 Python 面向对象编写的学生管理系统的示例代码:
```python
class Student:
def __init__(self, name, id, grade):
self.name = name
self.id = id
self.grade = grade
class StudentDatabase:
def __init__(self):
self.students = []
def add_student(self, name, id, grade):
student = Student(name, id, grade)
self.students.append(student)
def remove_student(self, id):
for student in self.students:
if student.id == id:
self.students.remove(student)
def update_student(self, id, name=None, grade=None):
for student in self.students:
if student.id == id:
if name:
student.name = name
if grade:
student.grade = grade
def get_student(self, id):
for student in self.students:
if student.id == id:
return student
def get_all_students(self):
return self.students
class StudentManager:
def __init__(self):
self.database = StudentDatabase()
def add_student(self, name, id, grade):
self.database.add_student(name, id, grade)
def remove_student(self, id):
self.database.remove_student(id)
def update_student(self, id, name=None, grade=None):
self.database.update_student(id, name, grade)
def get_student(self, id):
return self.database.get_student(id)
def get_all_students(self):
return self.database.get_all_students()
if __name__ == '__main__':
manager = StudentManager()
manager.add_student('Tom', '001', 90)
manager.add_student('Jerry', '002', 80)
print('All students:', manager.get_all_students())
manager.update_student('001', name='Tim', grade=95)
print('Tom\'s new name:', manager.get_student('001').name)
manager.remove_student('002')
print('All students after removing Jerry:', manager.get_all_students())
```
在这个示例中,我们定义了 `Student` 类来表示学生,包含姓名、学号和成绩三个属性。我们还定义了 `StudentDatabase` 类来管理学生信息,包含添加、删除、更新、查询和获取所有学生信息的方法。
然后,我们定义了 `StudentManager` 类来管理 `StudentDatabase` 对象,并提供更方便的接口来操作学生信息。最后,我们在主函数中创建了 `StudentManager` 对象并测试了它的方法。
这个示例只是一个简单的示例,实际的学生管理系统可能需要更多的功能和复杂的实现。但是这个示例可以帮助你了解如何使用面向对象的思想来编写一个学生管理系统,并且将数据存储在内存中的 `StudentDatabase` 实现可以很容易地扩展成使用数据库或其他数据存储方式。
阅读全文