小明:嘿,小李,我最近在学习Python,想尝试做一个宿舍管理系统,你有什么建议吗?
小李:当然有!我们可以从简单的功能开始,比如添加、删除和查询宿舍信息。另外,还可以实现学生入住和退宿的功能。
小明:听起来不错,那我们先从创建宿舍信息表开始吧。
小李:好的,我们可以使用Python中的SQLite数据库来存储宿舍信息。首先需要安装SQLite库,可以使用pip install sqlite3命令。
import sqlite3
def create_table():
conn = sqlite3.connect('dormitory.db')
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS dormitories (
id INTEGER PRIMARY KEY,
name TEXT,
capacity INTEGER)''')
conn.commit()
conn.close()
小明:这看起来非常有用。接下来我们试试添加一条宿舍信息。
def add_dormitory(name, capacity):
conn = sqlite3.connect('dormitory.db')
c = conn.cursor()
c.execute("INSERT INTO dormitories (name, capacity) VALUES (?, ?)", (name, capacity))
conn.commit()
conn.close()
add_dormitory('A-101', 4)
小李:很好,现在让我们尝试查询宿舍信息。
def query_dormitory(id):
conn = sqlite3.connect('dormitory.db')
c = conn.cursor()
c.execute("SELECT * FROM dormitories WHERE id=?", (id,))
result = c.fetchone()
conn.close()
return result
print(query_dormitory(1))
小明:这太棒了!我们已经能够添加和查询宿舍信息了。下一步是实现学生入住和退宿的功能。
def check_in(student_id, dormitory_id):
conn = sqlite3.connect('dormitory.db')
c = conn.cursor()
c.execute("UPDATE dormitories SET capacity=capacity-1 WHERE id=?", (dormitory_id,))
c.execute("INSERT INTO students (student_id, dormitory_id) VALUES (?, ?)", (student_id, dormitory_id))
conn.commit()
conn.close()
def check_out(student_id):
conn = sqlite3.connect('dormitory.db')
c = conn.cursor()
c.execute("SELECT dormitory_id FROM students WHERE student_id=?", (student_id,))
dormitory_id = c.fetchone()[0]
c.execute("UPDATE dormitories SET capacity=capacity+1 WHERE id=?", (dormitory_id,))
c.execute("DELETE FROM students WHERE student_id=?", (student_id,))
conn.commit()
conn.close()
小李:现在我们的宿舍管理系统已经具备基本的功能了。我们可以继续扩展更多的功能,如学生信息管理和宿舍分配算法等。