<pre><code>
# 导入必要的库
from django.db import models
class Course(models.Model):
name = models.CharField(max_length=200)
teacher = models.ForeignKey('Teacher', on_delete=models.CASCADE)
class Teacher(models.Model):
name = models.CharField(max_length=200)
class Student(models.Model):
name = models.CharField(max_length=200)
courses = models.ManyToManyField(Course)
class Schedule(models.Model):
course = models.ForeignKey(Course, on_delete=models.CASCADE)
time_slot = models.CharField(max_length=200) # 存储课程的时间段
def generate_schedule(students, courses):
# 假设我们有一个简单的排课算法,这里只是一个示例
schedule = {}
for student in students:
available_courses = list(student.courses.all())
if len(available_courses) > 0:
chosen_course = available_courses[0] # 简单地选择第一个可用课程
schedule[chosen_course] = '时间1' # 这里的时间段是硬编码的,实际应用中应根据实际情况计算
return schedule
# 示例数据
student1 = Student.objects.create(name='张三')
student2 = Student.objects.create(name='李四')
course1 = Course.objects.create(name='数学', teacher_id=1)
course2 = Course.objects.create(name='英语', teacher_id=2)
student1.courses.add(course1)
student2.courses.add(course2)
schedule = generate_schedule([student1, student2], [course1, course2])
print(schedule)
</code></pre>
在这个例子中,我们使用Django框架创建了一个简单的走班排课系统。通过定义模型(Course、Teacher、Student、Schedule)来存储课程、教师、学生和课程表信息,并通过一个简单的排课算法来生成课程表。