学工管理系统
小明:嘿,小李!最近我们学校要进行迎新活动,我觉得可以借助学生工作管理系统来提高效率。
小李:好主意!不过我们需要从头开始设计这个系统。你觉得应该包含哪些功能呢?
小明:首先得有一个学生信息录入模块,方便辅导员收集新生资料;其次要有宿舍分配模块,能自动匹配宿舍资源。
小李:明白了。那我们先搭建一个简单的数据库结构吧。比如用SQLite存储数据,你觉得怎么样?
小明:行啊,简单轻便。我们可以创建三个表:学生表(Student)、宿舍表(Dormitory)和分配记录表(Allocation)。每个表都有哪些字段呢?
小李:学生表至少包括学号、姓名、联系方式等基本信息;宿舍表有宿舍编号、容量等属性;分配记录表则记录学号-宿舍号的对应关系。
接下来是编写代码部分了。我准备用Python写一个基本的命令行界面,让用户输入数据并保存到数据库里。
import sqlite3
def init_db():
conn = sqlite3.connect('school_system.db')
cursor = conn.cursor()
cursor.execute('''
CREATE TABLE IF NOT EXISTS Student (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
phone TEXT,
student_id TEXT UNIQUE
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Dormitory (
id INTEGER PRIMARY KEY AUTOINCREMENT,
dorm_number TEXT UNIQUE,
capacity INTEGER
)
''')
cursor.execute('''
CREATE TABLE IF NOT EXISTS Allocation (
student_id TEXT,
dorm_number TEXT,
FOREIGN KEY(student_id) REFERENCES Student(student_id),
FOREIGN KEY(dorm_number) REFERENCES Dormitory(dorm_number)
)
''')
conn.commit()
conn.close()
init_db()
]]>
小明:哇,这样就能建好数据库了!现在我们怎么添加新的学生信息呢?
def add_student():
conn = sqlite3.connect('school_system.db')
cursor = conn.cursor()
name = input("请输入学生的姓名:")
phone = input("请输入学生的电话号码:")
student_id = input("请输入学生的学号:")
cursor.execute('INSERT INTO Student (name, phone, student_id) VALUES (?, ?, ?)',
(name, phone, student_id))
conn.commit()
conn.close()
print("学生信息已成功添加!")
]]>

小李:类似地,我们还能扩展其他功能,比如查询某个学生的宿舍分配情况。
小明:没错,这会让整个迎新流程更加高效有序。希望未来能继续优化这个系统,让它服务于更多场景。