首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为大学生生成潜在的时间表

为大学生生成潜在的时间表
EN

Stack Overflow用户
提问于 2010-09-16 05:41:55
回答 3查看 965关注 0票数 0

这就是我的问题:我正在设计一个应用程序,允许学生选择他们想要在本学期选修的课程,并为他们创建潜在的时间表布局。每个类通常都有几个可能出现在不同时间的部分。

因此,我正在寻找一种好的数据结构,以便开发一种能够做到这一点的算法。

有没有一种通用的方法来做到这一点?有没有什么数据结构和/或算法可以应用于这种情况?我只是在找一个开始的地方。

编辑:课程倾向于周一、周三、周五或周二、周四。在许多情况下,也有实验或复习在一周内的不同时间进行。

谢谢,Rob

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-16 05:47:27

我会用一棵树

在每个节点(代表一个类),每个部分都有分支,还有一个不参加课程的分支

您可以随时为调度冲突进行修剪

只要不是永久存储这些内容,并且每个学期每个学生包含的课程不会太多,这个值就不会太大

该树将以任意类为根。根的每个分支都是该类的一部分(以及不采用它的额外分支),然后在每个分支的末尾有更多的节点。这些节点将全部表示您在明细表中拟合的第二个类。

这些节点中的每一个对于第二个类的每个部分都有另一个分支。诸若此类。

例如:

代码语言:javascript
复制
              math  
 /            /           \  
2:00        1:00         blank  
  |           |             |  
 p.e          p.e           p.e  
/    \        /   \        /  \   
2:00  blank  2:00  blank  2:00 blank  
 |  
conflict
票数 1
EN

Stack Overflow用户

发布于 2010-09-16 06:09:58

每节课一周中的每一天都有相同的时间表吗?还是像我的一样,有些是MWF,有些是TuTh,有些是坐着的?

如果所有的课程都在一周中每天的同一时间,那么这个模型就非常简单。您需要用于学生、班级、classSections和studentSchedules的表。

对于您的classSection表,因为课程不是每天的同一时间,如果它们是每周的同一天,那么您可以包括一周中每一天的字段(M-Sa)、开始时间、课程长度(以小时为单位),当然还有classCodeID。

至少:

代码语言:javascript
复制
Student
   ID
Class
   classCodeID
   description
classSection
   classCodeID
   classSectionID
   isOnM
   isOnTu
   isOnW
   isOnTh
   isOnF
   isOnSat
   startTime
   length
studentSchedule
   studentID
   classCodeID
   classSectionID

您还可以标准化一周中的日期,而不是将它们放在classSection表中,但我喜欢在一堆复选框中看到一周。

我看到您每周有多个开始时间,因此在classSection表中需要另一个ID字段。

你的应用看起来还不错,你不是已经有数据模型了吗?看起来你甚至不需要是学生就能看到课程表。

票数 1
EN

Stack Overflow用户

发布于 2010-09-16 06:40:25

这是一个遗传算法适用的问题。至少,我的大学教员在此基础上开发了一个算法。以下是他们的一些论文,其中介绍了这项技术。

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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3722066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档