访问功能,可以访问的数据对象有:
a.关系数据库中的各种数据;
b.非关系型数据库,如层次型数据库,网状数据库等;
c.电子邮件与文件系统;
d.文本与图象,声音;
e.客户事务对象。
Delphi5.0版本成功地引入了这项技术,极大程度地扩展了数据库处理能力,为Delphi程序员带来前所未有的广阔空间。Delphi以其功能强大、简单易用等诸多特性,深受编程人员的欢迎。所以我选择了Delphi7.0作为开发工具。
2.3 C/S模式介绍
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
3 教务排课系统
3.1 教务排课系统简介
课程编排作为高等院校教务管理中的一项重要而且繁重的工作,从一般意义上讲,其实质就是对学校学期开设的每门课程合理地分配时间资源和教室资源的过程。其中涉及教师、教室、时间和学生等多种因素,人为要求也比较多,另外由于这几年的高校扩招导致教室资源比较紧张,诸多因素就加重了课程编排工作的难度和复杂度。如果完全由人工来编排课表,费时费力,其科学性、方便性更是难以保证,所以利用计算机进行自动排课的想法自然而生。目前,经研究用来解决排课问题的方法有:模拟手工排课法、图论方法、模拟退火法等。国内针对课表问题也相继研制出了一些排课软件,但是软件的通用性差,因各学校教学资源不尽相同,管理课表的方法也不乏个性,很难完全规范化、程序化。本文根据某高校的实际情况,结合以往的排课经验,通过静态设置教学任务的优先级、分配时间片资源和教室资源时根据相关参数动态设置其优先级的算法设计并实现了一个高校智能排课系统。如何充分利用有限的教室和时间资源合理地编排课表,是本文致力研究的主要问题。
3.2教务排课系统分析
3.2.1 算法分析
在排课系统中,关键的部分在于算法的选择。好的算法不仅可以节省时间,更可以提高效率。
几种排课算法比较:
(1)自动排课算法:此算法以课程为中心,进行搜索匹配,取最先匹配的值;具有占有空间少,运算速度快的特点。但其未对数据进行择优选取,所以不能对教学资源(教师、教室)合理分配,也不能满足一些特殊要求(比如有些老师喜欢上午上课,有些老师偏向于集中式上课;有些课程安排在上午更合适些,有些课程不能安排到上午等)。
(2)基于优先级的排课算法:从数学上讲, 排课问题是一个在时间、教师、学生和教室四维空间, 以教学计划和各种特殊要求为约束条件的组合规划问题。其实质就是解决各因素之间的冲突。在设计算法时, 为了降低课程调度的算法复杂性, 可采用化整为零的思想
此算法对班级及教室划分等价类,对学校资源进行了合理的利用。但对一些特殊要求还是无法具体体现出来。
(3)基于时间片优先级排课算法:此算法属于贪婪算法。每次对教师、教室资源的选取都是取当前最优的数据。按照教师、教室、班级的优先级取最优值,所以对各对象的一些特殊要求会很明显的体现出来,在教师、教室资源不紧缺的情况下,此算法能排出相对合理的课程。相对于之前介绍的两个算法,在处理各种特殊要求的能力上有明显的优势。
本系统采用的是动态加权算法即贪婪算法。贪婪法是一种不追求最优解,只希望得到较为满意解的方法。贪婪法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。贪婪法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况。在解决排课冲突时,为减少贪婪法的缺点,特在自动排课功能后加入手动调节功能,使用者可对不满意的课程再次调节。以下为算法过程:
(1) 初始化排课数组、课程申请数组。
(2) 赋初始权值并对课程申请数组排序。
(3) 将课程申请码按序进行排课,结果存储在排课数组中。
(4) 排课思想是将一星期分为几个层:星期一至五的上午和下午一二节、星期一至五的上午及下午三四节、星期六全天、星期一至五的晚间。对不同的层进行排课,可避免同一天同一老师授同一门课的问题。
(5) 若全部排完,则转(7);否则,计算并重新赋相应权值。
(6) 对申请数组重新排序,转到(3)。
(7) 结束。
上一篇:
基于Delphi物流管理系统
下一篇:
2014中学生日记范文指导