小明:最近我在研究学生管理信息系统,感觉这个系统对大学的管理非常重要。
小李:是啊,现在很多大学都依赖这种系统来管理学生的成绩、课程安排和学籍信息。
小明:那你是怎么设计这个系统的呢?有没有具体的代码可以参考?
小李:当然有。我们可以用Python语言结合SQLite数据库来实现一个简单的学生管理系统。
小明:听起来不错,能给我看看具体是怎么写的吗?
小李:好的,我先写一个创建数据库的脚本,然后是添加学生信息的功能。
小明:那数据库结构应该怎么设计呢?
小李:我们通常会设计一个students表,包含学号、姓名、性别、年龄、专业等字段。
小明:明白了,那代码应该怎么写呢?
小李:下面是一个简单的Python脚本,使用SQLite来创建数据库并插入一条学生记录:
import sqlite3
# 连接到SQLite数据库(如果不存在则自动创建)
conn = sqlite3.connect('student.db')
# 创建游标对象
cursor = conn.cursor()
# 创建学生表
cursor.execute('''
CREATE TABLE IF NOT EXISTS students (
id INTEGER PRIMARY KEY AUTOINCREMENT,
student_id TEXT NOT NULL,
name TEXT NOT NULL,
gender TEXT,
age INTEGER,
major TEXT
)
''')
# 插入一条学生数据
cursor.execute("INSERT INTO students (student_id, name, gender, age, major) VALUES (?, ?, ?, ?, ?)",
("S001", "张三", "男", 20, "计算机科学"))
# 提交事务
conn.commit()
# 关闭连接
conn.close()
小明:这段代码看起来挺基础的,但确实能实现基本功能。那如何查询学生信息呢?
小李:我们可以编写一个查询函数,根据学号查找学生信息。
小明:那是不是还需要一些用户交互界面?比如命令行菜单?
小李:是的,我们可以设计一个简单的命令行菜单,让用户选择不同的操作。
小明:那你能展示一下这部分的代码吗?
小李:好的,下面是完整的命令行交互部分的代码:
import sqlite3
def create_connection():
return sqlite3.connect('student.db')
def add_student(student_id, name, gender, age, major):
conn = create_connection()
cursor = conn.cursor()
cursor.execute("INSERT INTO students (student_id, name, gender, age, major) VALUES (?, ?, ?, ?, ?)",
(student_id, name, gender, age, major))
conn.commit()
conn.close()
def get_student_by_id(student_id):
conn = create_connection()
cursor = conn.cursor()
cursor.execute("SELECT * FROM students WHERE student_id=?", (student_id,))
result = cursor.fetchone()
conn.close()
return result
def main():
while True:
print("\n--- 学生管理系统 ---")
print("1. 添加学生")
print("2. 查询学生")
print("3. 退出")
choice = input("请选择操作:")
if choice == '1':
student_id = input("请输入学号:")
name = input("请输入姓名:")
gender = input("请输入性别:")
age = int(input("请输入年龄:"))
major = input("请输入专业:")
add_student(student_id, name, gender, age, major)
print("学生信息已添加!")
elif choice == '2':
student_id = input("请输入要查询的学号:")
student = get_student_by_id(student_id)
if student:
print(f"学号: {student[1]}, 姓名: {student[2]}, 性别: {student[3]}, 年龄: {student[4]}, 专业: {student[5]}")
else:
print("未找到该学生!")
elif choice == '3':
print("退出系统...")
break
else:
print("无效选项,请重新输入!")
if __name__ == "__main__":
main()
小明:这段代码看起来非常实用,特别是命令行交互部分,让操作更加直观。
小李:没错,这就是一个基础的学生管理系统的实现方式。不过,在实际应用中,我们可能需要更复杂的模块,比如成绩管理、课程安排、权限控制等。
小明:那这些功能该如何扩展呢?
小李:我们可以继续扩展数据库结构,比如增加一个courses表和grades表,分别存储课程信息和成绩记录。

小明:那我可以尝试自己动手做一个更复杂的版本吗?
小李:当然可以,建议你从基础开始,逐步增加功能。同时,也可以考虑使用Web框架,如Flask或Django,来构建一个网页版的学生管理系统。
小明:听起来很有挑战性,但也很有趣。谢谢你今天的讲解!
小李:不客气,如果你有任何问题,随时可以问我。祝你学习顺利!
小明:谢谢,我会继续努力的!
小李:加油!
