首页 文章

为大学生创造潜在的时间表

提问于
浏览
0

这是我的问题:我正在设计一个应用程序,允许学生选择他们想要在本学期学习的课程,并为他们创建潜在的课程安排 . 每个类通常有几个可能在不同时间发生的部分 .

所以我正在寻找一个好的数据结构来开发一个能够做到这一点的算法 .

有一个共同的方法来做到这一点?我可以应用于这种情况的任何数据结构和/或算法?我只是在寻找一个入门的地方 .

编辑:课程往往是星期一,星期三,星期五或星期二,星期四 . 在很多情况下,在一周的不同时间也会发生实验或朗诵

谢谢,罗布

3 回答

  • 1

    我会用树
    在每个节的每个节点(代表一个类)分支和另一个不参加课程的分支
    您可以随时修剪调度冲突

    只要你没有永久存储它们,并且每个学期每个学生不包含太多课程,这不应该太大


    树将根植于任意类 . 来自root的每个分支都是该类的一部分(以及不带它的额外分支)然后在每个分支的末尾有更多节点 . 这些节点都代表您在日程安排中适合的第二个类 .
    这些节点中的每一个都将为第二类的每个部分具有另一个分支 . 等等 .

    例如:

    math  
     /            /           \  
    2:00        1:00         blank  
      |           |             |  
     p.e          p.e           p.e  
    /    \        /   \        /  \   
    2:00  blank  2:00  blank  2:00 blank  
     |  
    conflict
    
  • 1

    这是遗传算法合适的问题 . 至少,我的大学工作人员开发了一种基于它的算法 . 以下是他们提供技术的一些论文 .

    http://morgoth.zemris.fer.hr/people/Marko.Cupic/files/2009-425555.EvoCOP_2009.pdf

    http://morgoth.zemris.fer.hr/people/Marko.Cupic/files/2009-422047.iti2009.pdf

  • 1

    每个 class 每周都有相同的时间表吗?或者他们是否像我的一样,其中一些是MWF,其他人是TuTh,还有其他星期六?

    如果所有课程都在一周中的每一天同一时间,那么该模型非常简单 . 您需要学生, class , class 和学生计划表 .

    对于您的classSection表,由于每天的课程时间不同,如果他们是每周的同一天,您可以包括一周中每一天的字段(M-Sa),开始时间,课程长度(在小时,),当然还有classCodeID .

    最低限度:

    Student
       ID
    Class
       classCodeID
       description
    classSection
       classCodeID
       classSectionID
       isOnM
       isOnTu
       isOnW
       isOnTh
       isOnF
       isOnSat
       startTime
       length
    studentSchedule
       studentID
       classCodeID
       classSectionID
    

    您也可以规范化一周中的日期,而不是将它们放在classSection表中,但我喜欢在一堆复选框中看到这一周 .

    我发现你每周有多个开始时间,所以你需要在classSection表中有另一个ID字段 .

    您的应用程序似乎没问题,您是否已拥有数据模型?看起来你甚至不需要成为一名学生来看课程安排 .

相关问题