1

我正在构建一个程序来帮助学生通过输入班级编号并确定它们的优先级来设置时间表。学生应该能够插入三到十个课程,并且该程序将根据学生设置的参数提供二十个“最佳”时间表。但是,每个班级都有不同数量的班级可供选择。(例如,周一/周三/周五的 8 点、10 点或 11 点或周二/周四的 11 点、3 点或 5:30 可以提供一堂课)。除此之外,学生可以选择进入任意数量的课程。鉴于此,我一直难以设置生成所有可用日历的算法。(日历也将受到学分的限制)

每次运行程序时,都会创建几个 Course 实例。每个 Course 对象都有一个 ClassSection 实例的 ArrayList,每个实例都有一个 ClassTime 实例的 ArrayList。每个 ClassTime 实例在它运行的一周中的每一天都有一个开始时间和一个结束时间。

我创建了一个 Schedule 类,其中包含几个 ClassSection 实例。它有一个返回 false 的方法,尝试添加一个 ClassSection,其 ClassSection 会干扰已添加的 ClassSection 的 ClassTime,或者添加了相同课程的 ClassSection。如果添加没有问题,则该方法返回 true。

我的目标是将我的 ArrayList 转换为 ArrayList,其中 Calendar ArrayList 具有所有 CourseSection 实例的所有可能排列,而不会超过信用计数。然后,我将对每个日历进行适当的排名,并从那里继续。

有人可以帮我用算法来迭代并制作这些日历吗?我真的很麻烦。

注意:这是我第一次提出问题,如果我提供的信息太少/太多,我深表歉意。

4

0 回答 0