以下是一个基于Python和SQLite的学生信息管理系统源码,包含完整的增删改查功能,您可以直接复制使用或下载。

import sqlite3
from tabulate import tabulate
class StudentManagementSystem:
def __init__(self):
self.conn = sqlite3.connect('students.db')
self.cursor = self.conn.cursor()
self.create_table()
def create_table(self):
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
student_id TEXT UNIQUE NOT NULL,
name TEXT NOT NULL,
age INTEGER,
gender TEXT,
class_name TEXT
)
''')
self.conn.commit()
def add_student(self):
student_id = input("请输入学号: ")
name = input("请输入姓名: ")
age = input("请输入年龄: ")
gender = input("请输入性别: ")
class_name = input("请输入班级: ")
try:
self.cursor.execute('''
INSERT INTO students (student_id, name, age, gender, class_name)
VALUES (?, ?, ?, ?, ?)
''', (student_id, name, age, gender, class_name))
self.conn.commit()
print("学生信息添加成功!")
except sqlite3.IntegrityError:
print("错误: 该学号已存在!")
def delete_student(self):
student_id = input("请输入要删除的学生学号: ")
self.cursor.execute('DELETE FROM students WHERE student_id = ?', (student_id,))
if self.cursor.rowcount > 0:
self.conn.commit()
print("学生信息删除成功!")
else:
print("未找到该学号的学生!")
def update_student(self):
student_id = input("请输入要修改的学生学号: ")
# 检查学生是否存在
self.cursor.execute('SELECT * FROM students WHERE student_id = ?', (student_id,))
student = self.cursor.fetchone()
if not student:
print("未找到该学号的学生!")
return
print(f"当前学生信息: {student}")
name = input(f"请输入新姓名(当前: {student[1]}): ") or student[1]
age = input(f"请输入新年龄(当前: {student[2]}): ") or student[2]
gender = input(f"请输入新性别(当前: {student[3]}): ") or student[3]
class_name = input(f"请输入新班级(当前: {student[4]}): ") or student[4]
self.cursor.execute('''
UPDATE students
SET name = ?, age = ?, gender = ?, class_name = ?
WHERE student_id = ?
''', (name, age, gender, class_name, student_id))
self.conn.commit()
print("学生信息更新成功!")
def search_student(self):
keyword = input("请输入学号、姓名或班级进行查询: ")
self.cursor.execute('''
SELECT * FROM students
WHERE student_id LIKE ? OR name LIKE ? OR class_name LIKE ?
''', (f'%{keyword}%', f'%{keyword}%', f'%{keyword}%'))
students = self.cursor.fetchall()
if students:
print("\n查询结果:")
print(tabulate(students, headers=["ID", "学号", "姓名", "年龄", "性别", "班级"], tablefmt="grid"))
else:
print("未找到匹配的学生信息!")
def display_all(self):
self.cursor.execute('SELECT * FROM students')
students = self.cursor.fetchall()
if students:
print("\n所有学生信息:")
print(tabulate(students, headers=["ID", "学号", "姓名", "年龄", "性别", "班级"], tablefmt="grid"))
else:
print("当前没有学生信息!")
def run(self):
while True:
print("\n学生信息管理系统")
print("1. 添加学生")
print("2. 删除学生")
print("3. 修改学生信息")
print("4. 查询学生")
print("5. 显示所有学生")
print("6. 退出系统")
choice = input("请选择操作(1-6): ")
if choice == '1':
self.add_student()
elif choice == '2':
self.delete_student()
elif choice == '3':
self.update_student()
elif choice == '4':
self.search_student()
elif choice == '5':
self.display_all()
elif choice == '6':
print("感谢使用,再见!")
break
else:
print("无效的选择,请重新输入!")
if __name__ == "__main__":
system = StudentManagementSystem()
system.run()
pip install tabulate
student_management.pypython student_management.py如果您需要其他技术栈的实现,以下是一些常见选项:
如需特定版本的源码,请告知您的技术栈需求,我可以提供相应的代码示例。

