(028) 小型自动排课系统

【摘要】本文是在参考各种市场上流行的排课软件的基础上尝试性地提出了一种大学排课算法,并开发而成小型自动排课系统。排课问题的研究主要是解决各种教学资源如教室、教师的合理有效利用问题,避免教师、班级在上课时间、地点上的冲突,使排课时间分配均匀。在算法设计中为排课操作设置了不同的优先级,逐级排课,有效地降低了排课时间冲突的几率,提高了排课的成功率。另外,系统为教师和教室分别设计了排课级别,从而能够避免教学资源过于集中地使用,实现均衡化利用。
   小型自动排课系统只是一种尝试,还有很多不完善的地方,需待日后改进。

【关键词】自动排课,数据库,课程表,Delphi

【Abstract】In this paper,an algorithm for arranging schedule on the campus is tentatively proposed after consulting these popular software of the same type in the market,and it has been tried to developed .The problem of arranging schedule is largely to solve the proper and effective usage of various teaching resources,such as classrooms,teachers and so on,to avoid the conflict on the time or the place of the schedule,and to make the time produced on the average.In the design of the algorithm,different priorities are assigned to the operation of the arranging schedule,make it complished priority by priority,and thus bring down the probability of the conflict of the time arranging effectively,increase the probability of the successive arranging. Moreover, in order to make sure the teaching resources won’t be used too intensively,and realize the average usage,the system designs the arranging levels for the teacher and the classroom.
   The proposal of the algorithm is just an attempt,so there are lots of defects,which are to be improved in future.

目 录

摘要I
Abstract
1 综述 1
1.1 课题背景 1
1.1.1 现状 1
1.1.2 趋势 2
1.2 本系统特点 2
1.3 开发工具 3
1.3.1工具的选择与介绍 3
1.3.3 帮助文件及安装文件的制作 3
2 需求分析 5
2.1 综合需求分析 5
2.1.1 系统开发目的 5
2.1.2 系统功能及性能要求 5
2.1.3 界面要求 6
2.2 数据流图 7
2.2.1 系统数据流图 7
3 总体设计 10
3.1 系统功能分析 10
3.2 系统功能模块设计 11
3.3 与其它系统的关系 11
3.4 系统概要设计 12
3.4.1 数据库概念结构设计 12
4 详细设计 14
4.1 数据库设计 14
4.1.1 数据库文件介绍 14
4.1.2 数据库定义 14
4.2 算法设计 23
4.2.1 口令设置 23
4.2.2 数据清空 23
4.2.3 基本信息处理 24
4.2.4 排课 32
4.2.5 桌面查询课表及报表打印课表 34
4.3 界面设计 24
4.3.1 系统主界面 24
4.3.2 基本信息窗体 36
4.3.3 排课窗体 42
4.3.4 课表修改窗体 44
4.3.5 输出窗体 45
4.3.6 操作步骤 51
5 编码 41
6 测试 41
6.1 测试方法 41
6.2 测试过程和结果 41
结束语 46
致谢 46
参考文献 47


1 综述
  本部分主要介绍与课题相关的内容,简单描述一下目前排课系统的现状,主要使用的排课算法是什么,然后引出本系统开发时在算法上所具有的一些特点。接下来着重介绍了开发本系统使用的工具Delphi的一些特性,以及它在数据库开发方面具有的强大功能,最后简单介绍了安装程序及帮助文件制作工具。
1.1 课题背景
1.1.1 现状
  传统的人工进行排课,最令人担心的问题就是——出现教室资源冲突或教师资源冲突的情况,而且工作繁琐,工作量巨大,尤其是在给大学校园进行排课时出现的问题更多。市场流行的排课系统很多,比如:相似排课CIS,plsn智能排课系统,正信华课程安排管理系统,排课博士,排课无忧等等,这些排课软件在解决排课问题时大多数采用的算法都是回溯算法,排课的效果也都很好。利用回溯算法解决问题的思路是先选择某一可能的线索进行试探,每一步试探都有多种方式,将每一方式都一一试探,如有问题就返回纠正,反复进行这种试探再返回纠正,直到得出全部符合条件的答案或是问题无解为止。这种解决问题的方法就是回溯法。 回溯算法对空间的消耗较少,当其与分枝定界法一起使用时,对于所求解在解答树中层次较深的问题有较好的效果。但应避免在后继节点可能与前继节点相同的问题中使用,以免产生循环。
回溯算法是所有搜索算法中最为基本的一种算法,其采用了一种“走不通就掉头”思想作为其控制结构,其相当于采用了先根遍历的方法来构造解答树,可用于找解或所有解以及最优解(据了解清华大学制作的一种排课软件主要采用时间模式和并行回溯算法,和此算法基本相同,只是在排课前就已经建立的时间库)。
1.1.2 趋势
  计算机软件技术应用于学校的课程安排是发展的必然。充分发挥计算机的优势,将大量复杂的判断与运算交给计算机来做,是真正意义上的人脑的“减负”。教师设置好学校基本情况及排课要求,让计算机排出课程表,适度调课后的课表就能满意地应用于新的学期。随着计算机软件技术的不断发展,排课效率高、出错概率低的排课算法也必将会逐渐趋向成熟,功能更加完善的排课系统也将应运而生。
1.2 本系统特点
  小型自动排课系统与目前流行的排课系统不同之处在于排课算法的设计上,本系统没有采用回溯算法,虽然它在实际使用中可能不如已有的各种排课软件,但它是本人在应用程序开发和排课算法设计中的一次尝试,并且在今后我会更进一步对此算法进行修改,使它在排课的效果和效率方面有一定的突破。
它在算法上具有如下特点:
  首先,排课时设置了排课优先级:优先级最高的是公共课,因为公共课一般合班上课的班级个数较多,最容易产生时间冲突,优先级次之的是每周平均课时最多的课程,同样,因为平均课时多,选择时间时进行排课冲突的机会就大,最后是总课时最多的课程。
  其次,产生的时间是在教师和所有上课的班级共同的空闲时间集合中产生,并且尽量保证时间选择上的均匀性,防止一周几次课集中于某一段时间。
  再次,对教师的选择,一方面考虑到教师的时间限制(由教师确定一学期中第几周,每周哪天哪节课没空),另一方面,对教师设置排课级别,随着排课时间的增多,级别值就增大,从而再次被选择排课的几率就减小(此时要求同一门课程有多个教师讲授)。
  最后,教室也设置了排课级别,同教师类似,这样便可以保证教室资源会得到合理而均匀有效地利用。
1.3 开发工具
1.3.1 工具的选择与介绍
  目前市场上流行的可视化软件开发工具很多,包括:Visual C++、Visual Basic、Delphi等,为了顺利完成毕业设计,我在选择开发工具的时候也是进行了”激烈”的思想斗争,我本是一个C++的爱好者,对于C++花费了大量的时间和精力,可是C++是一个面向系统级的编程工具,(仅仅个人认为,当然VC的在各方面开发与其他开发工具相比并不逊色),但是就本程序而言,我最终选择用Delphi作为开发工具.再加上Delphi是我接触的第一个可视化的IDE, Delphi也算是我的”初恋”.它在数据库方面的优势是有目共睹的(VC现在在数据库方面也是直逼Delphi)种种原因我选择了Delph! Delphi是Borland公司推出的快速、可视化程序开发工具,可在Windows9X/NT等环境下使用。他拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言Object Pascal和基于控件的开发框架结构。Delphi提供了100多个可供使用的控件,利用这些控件,开发人员可以快速构造出各式各样的应用系统。正是因为其功能强大、使用方便,Delphi已成为计算机程序设计人员开发Windows应用程序的利器,另外,Delphi强大的数据库开发能力也是我选择它的一个主要理由。
1.3.2 帮助文件及安装文件的制作
  用Delphi进行数据库应用程序的开发并不像编写一个简单的程序那样,无须制作安装程序,只要把生成的EXE文件拷贝到其他系统就可以正常运行。因为它的正常运行需要使用特定的Delphi软件包,并且还需要使用BDE中设置的数据库连接属性或SQL Links的支持。因此需要一个专门的安装程序制作工具来完成。InstallShield无疑是众多可选工具中的佼佼者,它能够解决以上的所有问题。它除了提供直观方便的向导外,还提供内容丰富的编程。利用这种类似VC的脚本语言可以创建功能强大的安装程序。
  系统帮助文件的制作是由微软的 HTML Help WorkShop完成的,它是由一个在线Help Viewer,相关的帮助组件和微软公司的帮助授权工具组成。这个Help Viewer使用微软Internet Explorer的隐藏组件来显示帮助内容。它支持HTML, ActiveX?, Java?, scripting语言 (JScript?和 Microsoft Visual Basic? Scripting 版),以及HTML 图片格式 (.jpeg, .gif, and .png files)。帮助授权工具(HTML Help Workshop)提供了一种创建和管理帮助工程和它们的相关文件的简单应用系统。

2 需求分析
  需求分析是设计数据库系统的起点,它的分析结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。它的基本任务是回答“系统必须做什么”的问题。至此,本阶段的主要任务有明确系统的开发目的,分析系统功能的具体要求,由此画出系统的数据流图,以及描述数据流图的数据字典。
2.1 综合需求分析
2.1.1 系统开发目的
  对于每个学校来说,每到一个新学期的开始,首先要做的就是如何为该学期安排合理而又实用的课程表,而课程安排又涉及年级、班级、教师、课程、教室等方方面面的因素,如何合理地利用教室、教师等资源,如何解决好合班时班级间的时间冲突,给每个班排课时,如何避免时间、场地冲突等,排课时还要充分考虑到课程的均匀性(即课程安排尽可能均匀,如英语一周3节,若一周上5天的话尽可能每隔一天安排一节课)和教师授课的均匀性(如张教师一周5天共上15节,则尽可能安排每天3节课,且3节课不连续安排在如123或234节等)。
  小型自动排课系统主要完成基本信息管理、数据处理、数据输出等功能,由于排课算法复杂,而对于海量的数据,算法要求更高,再加上本人能力和时间的限制,该系统更适用于数据信息量不是太大的排课,因此可以说只是一种试用模型。
2.1.2 系统功能及性能要求
  作为一个完整的数据库系统,其各种功能也要求比较完善,小型自动排课系统的主要功能有:
  1.基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;
  2.数据处理:自动排课、课表修改、删除功能;
  3.数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;
  4.帮助:指导用户使用该系统及其他相关说明。
  分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:
  1. 怎样的合班组合能避免冲突?
  目前采取的方式是相同或相近的专业的班级组合。
  2. 什么地方有空能排课?
  对教室和班级而言是查空,对教师而言是有无排课需求。
  3. 有两个以上的空哪一个更好?
  是要考虑离散和平衡问题。
  4. 排课前如何考虑教师宏观利用问题?
  如:多媒体大班课:C语言、大物尽量排上午,思想道德修养尽量排下午。
  5. 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开销。
2.1.3 界面要求
  在使用计算机的过程当中,人和计算机是以人机界面为媒介传递信息的。界面是否亲切、友好、美观、舒适是用户看待计算机的第一印象,因此在设计界面时具有很多要求,本系统的开发过程中主要考虑了以下几点要求:
  1.简单:要求用户界面能够很方便的处理各种基本的对话;
  2.术语标准化和一致化:要求使用标准化的专业术语,技术用语符合软件工程规则,并且在输入输出的说明中,统一术语涵义应保持一致;
  3.用户界面标准化:用户对操作方式不会感到陌生;
  4.拥有完善的帮助功能:要求用户能够通过使用帮助在最短的时间内了解系统的总体概况,并能够进行各种相关操作。
2.2系统数据流图
  1.第0层


                 图2-1 顶层数据流图

2.第1层

               图2-2 基本信息管理数据流图

... ...       ... ...
 
... ...       ... ...
 
【论文说明】该论文包含数据流图、系统功能模块图、系统E-R图、信息库表、界面演示图等,无程序源代码,Word格式,文件大小981K,字数1.9万,按计算机毕业论文格式要求书写,适用于计算机类各专业!

 

关于本站  |   联系我们  |   获取方式  |   常见问题  |   网站地图
版权所有:计算机论文网