写一个使用面向对象编程方法的学生管理系统(包含数据库增删改查)
时间: 2024-01-14 22:04:27 浏览: 24
好的,我可以为您提供一个简单的示例代码,实现一个学生管理系统,包含基本的增删改查功能,使用面向对象编程方法。
首先,我们需要定义一个学生类,包含学生的基本信息,例如姓名、学号、年龄、性别等等。代码如下:
```python
class Student:
def __init__(self, name, student_id, age, gender):
self.name = name
self.student_id = student_id
self.age = age
self.gender = gender
```
接下来,我们需要定义一个学生管理系统类,包含对学生信息的增删改查等操作。代码如下:
```python
import sqlite3
class StudentManagementSystem:
def __init__(self, db_path):
self.conn = sqlite3.connect(db_path)
self.cursor = self.conn.cursor()
self.create_table()
def create_table(self):
self.cursor.execute('''CREATE TABLE IF NOT EXISTS students
(name TEXT, student_id INTEGER PRIMARY KEY, age INTEGER, gender TEXT)''')
self.conn.commit()
def add_student(self, student):
self.cursor.execute('''INSERT INTO students (name, student_id, age, gender)
VALUES (?, ?, ?, ?)''', (student.name, student.student_id, student.age, student.gender))
self.conn.commit()
def delete_student(self, student_id):
self.cursor.execute('''DELETE FROM students WHERE student_id = ?''', (student_id,))
self.conn.commit()
def update_student(self, student_id, update_info):
update_column = ', '.join([f'{column} = ?' for column in update_info.keys()])
update_values = tuple(update_info.values()) + (student_id,)
self.cursor.execute(f'''UPDATE students SET {update_column} WHERE student_id = ?''', update_values)
self.conn.commit()
def search_student(self, student_id):
self.cursor.execute('''SELECT * FROM students WHERE student_id = ?''', (student_id,))
student = self.cursor.fetchone()
if student:
return Student(*student)
return None
```
这里我们使用了SQLite数据库来存储学生信息,对应的数据库表为`students`。
最后,我们可以使用以下代码来测试学生管理系统的功能:
```python
db_path = 'students.db'
sms = StudentManagementSystem(db_path)
# 添加学生
student1 = Student('Tom', 10001, 18, 'Male')
sms.add_student(student1)
# 修改学生信息
update_info = {'name': 'Jerry', 'age': 19}
sms.update_student(10001, update_info)
# 查询学生信息
student = sms.search_student(10001)
if student:
print(student.name, student.student_id, student.age, student.gender)
# 删除学生
sms.delete_student(10001)
```
以上代码仅为示例,实际的学生管理系统还可以添加更多功能,例如批量导入、导出学生信息等等。