论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

某高等学校教务排课系统(论文+程序)

本系统采用的是动态加权算法即贪婪算法。贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况。在解决排课冲突时,为减少贪婪法的缺点,特在自动排课功能后加入手动调节功能,使用者可对不满意的课程再次调节。以下为算法过程: 内容来自www.paper51.com

(1) 初始化排课数组、课程申请数组。 paper51.com

(2) 赋初始权值并对课程申请数组排序。 内容来自论文无忧网 www.paper51.com

(3) 将课程申请码按序进行排课,结果存储在排课数组中。 copyright paper51.com

(4) 排课思想是将一星期分为几个层:星期一至五的上午和下午一二节、星期一至五的上午及下午三四节、星期六全天、星期一至五的晚间。对不同的层进行排课,可避免同一天同一老师授同一门课的问题。

http://www.paper51.com

(5) 若全部排完,则转(7);否则,计算并重新赋相应权值。 内容来自www.paper51.com

(6) 对申请数组重新排序,转到(3)。 内容来自www.paper51.com

(7) 结束。 http://www.paper51.com

3.2.2 算法流程图

http://www.paper51.com

   系统的算法流程图,如图1所示。 paper51.com

内容来自论文无忧网 www.paper51.com

图1 算法流程图

copyright paper51.com

说明:不管是否首次排课,首先进行清空排课记录,对各种信息的初始化后,计算权值和总周课数,就可以将排课记录写入数据库,这实际也是自动排课的过程。排完后系统会进行检测冲突,若有冲突则弹出提示框,进行异常函数的处理。有需要的,可打印课表。 paper51.com

3.2.3 功能分析 paper51.com

由于排课算法以及冲突检测在细节上有很多限制,在设计之前我们做了详细的讨论和分析,得出了排课系统功能的细节问题:

paper51.com

(1) “公共基础课和公选课优先固定”,由于这两种课一般由教务处制订课程计划,因此应该在自动排课之前将它们优先固定。

paper51.com

(2)“一师多课”冲突情况,即一位教师在同一时间内排了一门以上的课。

http://www.paper51.com

(3)“一室多课”冲突情况,即一个教室在同一时间内排了一门以上的课。 copyright paper51.com

(4)“一班多课”冲突情况,即一个班级在同一时间内排了一门以上的课。 内容来自www.paper51.com

(5)“教室容量匹配”情况,即上课班级人数应该与所在教室的人数匹配。

http://www.paper51.com

(6)“合班和分班课程”情况,即在排课时考虑像英语这样的分班课和政治这样的合班课如何排课。 http://www.paper51.com

(7)“课程单双周”情况,即某些总课时较少的课程,可以考虑在单周或双周排课。 copyright paper51.com

(8)“同一课程间隔”尽量让同一课程在一周内课时内的排课分布均匀。

copyright paper51.com

(9)“课程优先级”尽量让学分值高的,重要的课程排在黄金时间,课程优先级低的排在其他时间。 内容来自论文无忧网 www.paper51.com

(10)“课程扩充”如果正常情况下无法满足课程的需要,就要在晚上或者周六日进行课时的扩充。

http://www.paper51.com

(11) “课程与教室匹配”情况,课程要求的条件必须与教室设备条件相匹配,如是否需要多媒体授课等。 内容来自www.paper51.com

3.2.4 需求分析

内容来自www.paper51.com

针对功能分析中的各种问题,我们在查阅了一些关于排课设计的资料以及试用了几种排课软件之后,认为在排课设计中需要实现以下几个需求: paper51.com

(1) 手动预排课。由于存在公共基础课以及公选课,而这些课程的设置完全有教务处制定,因此这些课程应该预先设置。

paper51.com

(2) 自动排课。根据输入的基本信息,进行自动排课,生成课表。在自动排课完成后,将排课异常信息给予反馈。 内容来自www.paper51.com

(3) 手动调节。完全依赖自动排课排出的课表不能完全符合客观需求,同时我们在算法及优先级确定的精确度方面的水平也有限,因此,应该增加手动调节功能,以进一步确保合理性。

内容来自www.paper51.com

(4) 设置冲突检测方法。主要是针对手动预排课和手动调节功能可能出现的冲突情况,完善手动排课。

copyright paper51.com

(5) 系统友好性。排课系统与使用者应具有交互性,可以增加排课向导提示用户的使用。 内容来自www.paper51.com

(6) 权限管理。主要针对管理员权限的用户可以进行拥护的添加、修改和删除。 内容来自www.paper51.com

3.3排课系统的功能模块

http://www.paper51.com

在系统分析的基础上,我们提出了系统的功能模块,如图2所示。 内容来自论文无忧网 www.paper51.com

copyright paper51.com

图2 功能模块图

内容来自论文无忧网 www.paper51.com

前面描述了教务排课系统的功能模块划分,但没给出各模块之间的关系。在本系统中,可以把模块分为三个功能集合: 内容来自www.paper51.com

(1) 系统管理功能集合。该集合包括权限管理和系统帮助两个模块。当使用者为管理员时可进行权限管理功能,它能够添加新的使用者,也可对已有的用户进行名称、密码的修改和删除。系统帮助功能介绍了开发系统的相干信息。

内容来自www.paper51.com

(2) 基本信息管理功能集合。该集合包括教师信息管理、教室信息管理、班级信息管理、课程信息管理、课程申请管理五个模块。在该集合内可查看相应的数据表,对于管理员级别的用户可对以上表的内容进行添加、修改、删除的功能。对于一般用户,只能实现查看信息的基本功能。 内容来自论文无忧网 www.paper51.com

(3) 排课管理功能集合。在基本信息设置模块中,可查看当前日期,又可设置限制排课的条件,如不加限制排课、不在晚上和星期六排课等。而一般用户只能查看管理员设置的条件。在排课时,管理员先在课程信息管理中设置好要预先排课的课程,然后调节限制排课的条件,就可以使用自动排课功能。用户可在排好后的课表中查看课表,对于不满意的课程安排可用手动进行相应的调节,而手动排课也可针对实验课等灵活性的课程。

内容来自www.paper51.com

------分隔线----------------------------
联系方式