<pre>
# 导入必要的库
import sqlite3
from itertools import permutations
# 创建数据库连接
conn = sqlite3.connect('deyang_schedule.db')
cursor = conn.cursor()
# 建立表结构
cursor.execute('''CREATE TABLE IF NOT EXISTS courses (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
teacher TEXT NOT NULL,
room TEXT NOT NULL,
day INTEGER NOT NULL,
period INTEGER NOT NULL)''')
# 示例数据插入
cursor.executemany('INSERT INTO courses (name, teacher, room, day, period) VALUES (?, ?, ?, ?, ?)',
[('Math', 'TeacherA', 'Room1', 1, 1),
('Science', 'TeacherB', 'Room2', 2, 2)])
conn.commit()
# 排课表算法
def schedule_courses(courses):
days = [1, 2, 3, 4, 5]
periods = [1, 2, 3, 4, 5]
# 生成所有可能的时间安排组合
for perm in permutations(periods, len(courses)):
valid = True
used_days = set()
for i, course in enumerate(courses):
if course['day'] in used_days:
valid = False
break
used_days.add(course['day'])
if valid:
return {course['name']: perm[i] for i, course in enumerate(courses)}
return None
# 获取课程列表
cursor.execute("SELECT * FROM courses")
courses = [{'id': row[0], 'name': row[1], 'teacher': row[2], 'room': row[3], 'day': row[4], 'period': row[5]}
for row in cursor.fetchall()]
# 排课
schedule = schedule_courses(courses)
print(schedule)
# 关闭数据库连接
conn.close()
</pre>
本站部分内容及素材来源于互联网,如有侵权,联系必删!