利用Python编写一个程序,根据教室容量,选课人数,实现对多个课程教室的安排
时间: 2024-03-03 18:49:27 浏览: 114
python实现自习室座位预约系统
5星 · 资源好评率100%
以下是一个简单的 Python 程序,实现对多个课程教室的安排,可以根据教室容量和选课人数来判断每个课程是否能够安排在该教室中。其中,我们假设每个教室只能安排一个课程。
```python
class Classroom:
def __init__(self, name, capacity):
self.name = name
self.capacity = capacity
self.course = None
class Course:
def __init__(self, name, students):
self.name = name
self.students = students
class Schedule:
def __init__(self):
self.classrooms = []
self.courses = []
def add_classroom(self, name, capacity):
self.classrooms.append(Classroom(name, capacity))
def add_course(self, name, students):
self.courses.append(Course(name, students))
def schedule_courses(self):
for course in self.courses:
assigned = False
for classroom in self.classrooms:
if classroom.course is None and course.students <= classroom.capacity:
classroom.course = course
assigned = True
break
if not assigned:
print(f"Cannot assign {course.name} to any classroom.")
def print_schedule(self):
for classroom in self.classrooms:
if classroom.course is not None:
print(f"{classroom.name}: {classroom.course.name}")
else:
print(f"{classroom.name}: Empty")
schedule = Schedule()
schedule.add_classroom("Classroom A", 30)
schedule.add_classroom("Classroom B", 40)
schedule.add_classroom("Classroom C", 50)
schedule.add_course("Math", 35)
schedule.add_course("English", 45)
schedule.add_course("History", 55)
schedule.schedule_courses()
schedule.print_schedule()
```
在上面的程序中,我们定义了三个类:Classroom 表示教室,包含了教室的名称和容量;Course 表示课程,包含了课程的名称和选课人数;Schedule 表示课程表,包含了多个教室和课程,并提供了安排课程的方法和打印课程表的方法。
在主程序中,我们首先创建了三个教室和三门课程,并将它们添加到课程表中。然后,我们调用 schedule_courses 方法来安排课程,该方法会遍历所有课程,并在教室容量允许的情况下将课程安排在教室中,如果没有可用的教室,则会输出一条错误信息。最后,我们调用 print_schedule 方法来打印课程表。
阅读全文