排课信息里有时间,课程和教室,同一时间里每个课程只能被选择一次,同一间教室同一时间智能有一门课,用java怎么实现
时间: 2024-01-17 11:05:24 浏览: 70
基于java的简单的教师-课程智能排课系统
5星 · 资源好评率100%
您可以使用 Java 中的 Map 数据结构来实现排课信息的存储和管理。可以将每个时间段的课程和教室信息存储在 Map 中,以时间作为键,值为一个列表,其中包含可用的教室和课程信息。
以下是一个简单的 Java 示例,演示如何使用 Map 存储排课信息:
```java
import java.util.*;
public class Schedule {
// Map 用于存储课程安排信息
private Map<String, List<String>> schedule;
public Schedule() {
this.schedule = new HashMap<>();
}
// 添加课程信息
public void addSchedule(String time, String course, String classroom) {
if (schedule.containsKey(time)) {
List<String> courses = schedule.get(time);
if (courses.contains(course) || courses.contains(classroom)) {
System.out.println("Error: Course or classroom already scheduled at this time.");
} else {
courses.add(course);
courses.add(classroom);
schedule.put(time, courses);
System.out.println("Schedule added successfully.");
}
} else {
List<String> courses = new ArrayList<>();
courses.add(course);
courses.add(classroom);
schedule.put(time, courses);
System.out.println("Schedule added successfully.");
}
}
// 获取课程安排信息
public List<String> getSchedule(String time) {
if (schedule.containsKey(time)) {
return schedule.get(time);
} else {
return null;
}
}
public static void main(String[] args) {
Schedule schedule = new Schedule();
schedule.addSchedule("Monday 9:00", "Math", "Room 101");
schedule.addSchedule("Monday 9:00", "Physics", "Room 102");
schedule.addSchedule("Monday 10:00", "English", "Room 103");
List<String> monday_9 = schedule.getSchedule("Monday 9:00");
System.out.println("Monday 9:00 schedule: " + monday_9.toString());
}
}
```
在此示例中,我们使用 Map 存储课程安排信息。在添加课程信息时,我们首先检查该时间段是否已经有课程或教室安排,如果没有,则将该课程和教室信息添加到 Map 中。在获取课程安排信息时,我们可以使用时间作为键来检索 Map,返回一个包含可用的教室和课程信息的列表。
请注意,此示例仅为演示目的,实际实现中可能需要更复杂的数据结构和算法来处理更复杂的排课情况。
阅读全文