民办高校排课系统算法的研究与设计

时间:2022-06-14 06:48:25

民办高校排课系统算法的研究与设计

【摘要】本文阐述了利用计算机进行自动排课的意义,提出了民办高校排课问题的约束条件,运用面向对象分析的方法进行排课系统关系模式分析与设计,基于数据库范式理论建造了一个规范化的排课系统关系模型。最后,为同类系统的进一步研究提供了方向。

【关键词】排课系统;数据库;关系模型;约束条件

引言

课程表是学校开展教学活动的指令性文件。在传统方式下,课表编排主要是靠手工完成的,排课人员需要花费大量的时间和精力,并且容易出错,同时手工操作也不能满足资源需求的经常变化。利用计算机进行自动排课,不但能使教务人员从繁杂的排课任务中解脱出来,提高教务管理工作效率,而且能改善教学管理质量,合理、高效地利用有限的教学资源。

综合分析当前的排课系统软件,大多采用传统方法进行程序设计,把程序作为系统核心。系统中所使用的排课数据主要考虑了一般性排课原则,对于不同学校的特点考虑不足,并且数据与程序结合过于紧密,程序的修改维护有很大难度,不便于系统扩充和升级,因此限制了系统的通用性,对特殊情形只能依赖于人工调整。

民办高校聘有很多兼职老师,而兼职老师提供的上课时间是固定了的,所以课表编排问题不仅涉及教师、教室、学生、课程,更有教学时间等多种因素的组合规划,具有规模大、约束条件复杂以及不断变化等特点,是当今计算机科学研究的热点问题之一。

1.自动排课的原则描述

1.1 基本原则

在课程的编排过程中应遵循一定的规则,只有按照基本规则来编排,才能够减少冲突的发生并满足各种要求,这些基本原则主要有:

(1)同一班级的学生在同一时间段(必修课时段),只能安排一门课程。

(2)同一教师在同一时间段,最多只能安排一门课程。

(3)同一教室在同一时间段,只能安排一门课程。

(4)同一时间安排的课程总数,不能大于所能提供的教室总数。

(5)某一课程参加学习的总人数,不能大于所安排教室的座位数。

1.2 模糊原则

结合实际情况,为了使编排的课表更加优化、合理,排课时还应该考虑以下模糊原则:

(1)优先安排全校公共基础课程;

(2)优先安排低年级的课程;

(3)优先安排兼职教师的课程;

(4)对于一周内有两次或三次课的多学时课程,在时间安排上尽量隔天;

(5)同一个教学任务的不同节次尽量安排在同一个教室;

(6)同一自然班的课程尽量安排在固定的教室;

(7)同一教师所上的课程尽量安排在固定的教室;

(8)同一门课程尽量安排在固定的教室。

2.基于面向对象思想的数据结构分析

在该算法中我们设立五个操作实体:课程、班级、教师、教室和时间。每个实体都对应一种数据结构,即五种新的类型为:Class Class_Course;Class Class_Class;Class Class_Teacher;Class Class_Room;Class Class_Time。

(1)课程类型包含7种属性:课程ID号、课程名称、上课的班级链表、任课教师、单次课时数、可用教室链表、可用时间。由于有的课程一周要上多次,因此在进行排课之前,我们会将这类课程从基本数据中筛选出来进行复制,一周要上几次就存在几个实例,并分配不同的单次课时数。这样的课程将有相同的课程ID号和相同的课程名称,在排课过程中将尽量将它们安排在同一个教室,并在时间上有一定的间隔。

(2)班级类型包含3个属性:班级ID号、班级名称、可用时间。可用时间主要是用来在排课过程中检验该班级在上课时间上的冲突,因为,同一个班级上的课程不能排在同一时间段。

(3)教师类型包含3个属性:教师ID号、姓名、可用时间。对于排课系统来讲,教师情况的多样性对排课结果影响也是很大的。例如,兼职教师的上课时间是有限的。因此必须为每位教师建立自己的可用时间,同时和班级的可用时间相同。

(4)教室类型包含3个属性:教室ID号、教室名称、可用时间。同样,教室作为教学资源也有它的可用时间。至于某一个课程是否适合安排在该教室上课,或该教室是否能容纳上课的所有学生的问题,可以通过操作人员在进行基本数据录入的过程中屏蔽掉。

(5)时间类型是本算法中最重要的一个类型,以上四种类型中的可用时间实际上都是该类型的一个实例。该类型实际上就是一个矩阵,行数为7,代表一周有7天,列数由操作人员设定,为该学期每天上课的总课时数,设定为Shared类型。当该课时可用时,置为0;不可用时,置为1;在虚拟排课阶段,如果该课时被占用,则置为2。其中还包含三个全局变量:上午总课时、下午总课时、晚上总课时。

3.数据库设计

3.1 范式模型

排课系统需要应用课程、教室、教师、班级等信息,为用户输出求解结论即排好的课表。数据库即为上述信息的载体。数据库的设计是以规范化理论为基础进行的,要想设计一个好的关系,必须使关系满足一定约束条件,此约束已经形成了规范,分成几个等级,一级比一级要求得严格。这使得在今后的应用开发中便于进行选择、投影、连接等运算;在方便用户方面,也避免了冗余及数据库管理维护方面可能发生的一些异常现象。

·第一范式(1NF):如果关系R的所有属性都是不可再分的数据项,则称R属于第一范式,记作R∈1NF。

·第二范式(2NF):如果关系R∈1NF,且它的每一非主属性都完全依赖于主键,则称R属于第二范式,记作R∈2NF。

·第三范式(3NF):如果关系R∈2NF,且它的每一非主属性都不传递依赖于关键字,则称R属于第三范式。

3.2 概念模型

在使用关系型数据库管理系统设计开发时,首先进行概念结构的设计,概念结构可以充分反映现实世界中实体之间的联系。排课系统的E-R模型如图4-1所示。

其中各实体类型的属性如下:

教师(教师编号,姓名,教研室编号,所授课程编号,教师类别)

课程(课程编号,课程名称,总学时,课程类别,需用教室类别)

班级(班级编号,学生人数,所在院系,专用教室)

教室(教室编号,教学楼号,座位数,教室类别)

4.用户界面设计

4.1 建立程序主界面——菜单

排课系统的各个功能是通过选择主窗口中的菜单命令来完成的,每个功能模块有一个或多个菜单命令与其相对应,并以对话框方式展现其功能。

本系统在主窗口上放置了7个菜单,其分别用来完成不同的模块功能,下面是几个主要菜单所完成的功能:

1)系统登录

该菜单包括的菜单命令有“登录”、“修改口令”、“退出”。登录命令能够让用户以合法的身份登录系统,完成不同权限的操作。退出命令能够让用户退出当前的用户状态,从而避免数据被他人窃取。修改口令命令能够让用户在合法登录状态下,确保提供自己的原口令后才能修改自己当前的密码。

2)基本信息维护

该菜单中包括“授课任务”、“教室信息”、“教师信息”、“班级信息”、“课程信息”等命令,以完成基本信息的维护。授课任务菜单命令打开授课任务信息表管理模块,对排课系统算法所用的数据进行管理,包括课程号,教师号,班级号,房间号,每周课时等。

3)排课管理

该菜单包括“排课”、“浏览课表”两项命令。排课菜单命令运行排课算法,对后台数据库中的数据进行分析,排课,最后以相应的格式输出一个可行的课程表。浏览课表菜单命令对当前已经完成好的授课表进行浏览,但在浏览状态下不能修改编辑课程表。

4.2 登录窗口的设计

由于此应用程序采用的是基于单文档的开发,因此用户可通过主窗口的菜单来调用各个相应的功能窗体。其中用户单击系统登录菜单中的登录命令,可以打开用户登录对话框,如图5-1所示。

输入正确的用户名和密码后,菜单中所有功能都变为有效,用户可以进行相应的操作。

结束语

面向对象的软件开发方法是现代软件工程的一个新兴也是很有发展前途的方法,本文采用了面向对象技术对排课系统进行分析、设计,并应用建模语言对需求做出全面分析,最终得到面向对象的系统模型,成功的解决了需求提出的问题。

参考文献

[1]陆峰,李新.自动排课系统算法的设计与实现[J].微机发展,2005,15(11):61-63.

[2]许洁.基于信息管理的高校排课系统[J].江苏科技大学学报(社会科学版),2006,6(2).

[3]袁鹏飞,孙军安.SQL Sever 2000数据库系统管理[M].北京:人民邮电出版社,2001.

[4]傅清祥,王晓东.算法与数据结构(第2版)[M].北京:电子工业出版社,2001.

作者简介:仲崇丽(1982—),女,陕西西安人,硕士,西安欧亚学院讲师,研究方向:计算机技术。

上一篇:车载GPS导航仪数据采集模块设计 下一篇:我国电子商务市场发展与转型趋势分析