




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河北经贸大学毕业论文 智能排课系统摘要每个学校,每一个新学期的开始,首当其冲的就是该学期的课程安排问题,而课程安排又涉及年级、班级、教师、课程、学校、专业以及教室设备资源等方方面面的因素,如何排出一个实用并且高效率的课程表,是一项复杂的系统工程。本次编写的智能排课系统软件实现了任意年级、任意班级、任意教师、任意课程、任意专业的自动排课。自动排课时可事先设定某些科目的排课位置、科目的排课限制、交错排课、课程连排、合班上课、科目优先级、排课选项等项目,系统就可按班级顺序排出学校课程表,对排好的课程表可进行修改、调课、课表复制等功能。最终生成多种样式的课程表。同时,还提供学生的网络选课功能。排课管理功能是排课管理信息系统设计的难点,它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到资源利用问题。本篇论文中主要涉及到排课的算法问题,如何提高排课的正确率以及设备的最大利用率是本次设计的重中之重。关键字 教学事务;排课;排课管理系统。AbstractFor each school, the most important problem the school must do with at the beginning of each term is how to arrange the course time of this term. Furthermore, the arrangement of the course involves various factors, such as the grades, the classes, the teachers, the courses, the schools, the departments and so on. So how to work out a school timetable that not only good but also suitable is a systems engineering of complex. It can test the wisdom of the people who is in charge of the work of arranging the course.With the software you can realize the arrangement of course of any grade, any class, any teacher, any course, and any department. If you want to have the computer give you the result of the arrangement, you must input some information to the computer in advance. Such as you can set the places of some subject, the time of some subject, some classes have class together, the priority level of some subject, option of the arrangement. Then the computer can give the school timetable by the sequence of class after you have given enough information to the computer. After that you can operate on the computer, such as modify, adjust, copy etc. At last it can make out all sorts of tables, at the same time, it involves the students elective on the Internet.In this thesis, we mainly involves the calculate way of the course arranging. The function of course-arranging management is the difficult point of the course-arranging MIS. It needs to consider not only the conflict of the classrooms and the teachers, also the resources exploitation. Keywords teaching affairs;courses arranging;courses arrangement managing systemIII河北经贸大学毕业论文目录绪论11 系统概述21.1 开发背景21.2 开发环境21.3 主要技术简介32 系统功能设计52.1 系统组成52.2 模块功能52.3 系统主要特点72.4 系统开发工具72.5 数据库实现方法83 系统模块实现93.1 系统管理与远程数据访问模块93.1.1 系统管理93.1.2 远程数据访问103.2 学籍管理模块113.2.1 学籍管理功能113.2.2 学籍管理数据流程图113.2.3 学籍管理实现123.3 教务管理模块133.3.1 教务管理分析133.3.2 教务管理模块数据规划133.3.3 教务管理开发步骤143.4 综合报表及课表打印模块143.5 网络选课模块153.5.1 功能153.5.2 设计思想153.6 排课模块163.6.1 现状分析163.6.2 排课模块的特色173.6.3 排课模块实现的功能174 排课算法194.1 排课算法的原则194.1.1 设计思想与基本原则194.1.2 排课中的一般约定214.2 排课数据的准备214.3 排课算法224.3.1 核心算法流程图224.3.2 排课系统的关键技术234.4 手工调课25总结26参考文献27绪论当今,随着高教事业的不断发展,在教学管理过程中,排课无疑是最重要也是最繁琐的一个环节,随着学生人数不断增加,课程开设也不断向着广度和深度发展,但是,由于条件的局限性,教室增加甚少,且师资与教学设备也不充足,使得旧的教务管理方法远远不能适应形势的需要,教务人员越来越感到工作负担沉重。而课程表的编排又是教务管理的重要内容。排课管理的主要任务是把各系或各授课部门的课程申请进行汇总,然后根据教学计划或教学环节制订全校各班级的课表。其中排课质量主要表现在时间,教室安排是否合理,排课是否准确可靠,教师的教学工作量是否能完成,教学设备的利用率等一些方面。由于高校班级数、课程门数较多,每门课又涉及很多信息,早期的排课工作完全由人工来完成,依靠个人经验的积累,比较繁琐且质量不高,而且不可避免地出现教室资源冲突或教师资源冲突的情况。为了让计算机自动完成这一任务,许多软件厂商作了很大努力,开发出相应的通用自动排课系统,但从实际使用情况来看,这些系统在实用性上仍不尽如人意。采用传统的软件设计方法开发的一些排课软件,虽然可以节省人力,减轻人的劳动负荷,但是可能会出现死锁等一系列不可避免的问题,且就排课质量而言也不太理想。采用知识工程的方法,由于控制策略的优化,可以避免一些盲目性,对传统的方法也做了很大的改进,从而使其排课质量有所提高。本智能排课系统软件是基于Delphi而设计的,主要包括用户管理、学生信息管理、教师信息管理、教学计划管理、选修课信息管理、教室信息管理和服务器数据库的设计。其中,用户管理主要是对进行软件操作的人员的权限来进行管理。比如,教务处可以对软件进行任何操作,而各系只能对涉及本系的信息进行操作,而学生和老师只能通过网上进行查询、浏览,而不能进行别的操作。教学计划是各个年级的教学计划,是排课的依据。教师信息管理主要是处理老师的上课时间的安排。选修管理信息主要处理学生的专业选修和系内选修。同时,当排课结果出来后,可以对其中的各种信息进行相应的查询和打印。例如,学生(班级)课程表、教师上课表、教室使用表。 1 系统概述1.1 开发背景随着国家教育政策的改变,各大学的招生规模不断扩大,在校生的人数与日俱增。这样,各大学的软硬件资源都超负荷运转,教学条件急需改善,尤其是教务管理工作。随着专业和班级的不断增加,教务处的工作变得日益繁重。如果还像以前那样单靠人工处理各项工作已经不太现实,必须借助于计算机来进行。目前,国内专门处理排课的软件还很少,而且大部分是针对小学、中学和大学的专科学校的,专门针对大学排课的软件微乎其微。一般的软件大都不能处理合班上课,而且没有选修课排课的功能。适合普通大学的排课系统只有清华出的综合教务管理软件,但是由于各个学校开设的院系专业等等不一样,清华的排课系统也不能很好的适合各个学校。总之,开发一个功能全面和适合各个学校的排课软件是不容易的,这方面在国内还是空白,各个学校应该针对本校的具体情况开发出适合自己的排课软件。作为一个计算机应用的本科生,希望可以在这方面有所贡献。希望能用本组成员几年所学的知识,针对本校的具体情况编制出一套高效、合理的排课软件。 1.2 开发环境智能排课系统的开发涉及的知识和技术非常广泛。主要涉及到的是数据库的开发及应用、排课算法的设计、ASP网络数据库以及远程数据访问技术。系统开发平台选择:在Windows 2000 和Windows 98环境下,运用Delphi 6.0和Dilphi7.0作为主要的开发工具,后台数据库采用Microsoft Access 2000平台。Delphi 6.0是Borland公司新推出的新一代面向对象的可视化的快速应用程序开发环境RAD (Rapid Application Development)。它以基于窗口和面向对象的编程方法,与Windows系统紧密结合,同时兼备Visual C+的强大功能和Visual Basic易学灵活的特点。它具有功能强大、简便易用和代码执行速度快等优点。Delphi的特色就在于它的VCL完美的封装了Windows API,使用VCL可以非常方便地实现许多复杂的功能。选择了Delphi,就意味着可以获得相当数量的第三方组件的支持,可以使用大量的源代码,从而节省了编程人员的时间和精力,也有效的提高了应用程序的运行效率和可靠性。Delphi7.0是在Delphi6.0基础上的升级版本,它继承了Windows XP的界面效果,界面美观而友好,而且,新增了一些好用的控件,使得编程更为简单,特别是新增的Rave工业报表设计器,取代了以往的QReport控件来制作报表,它是一种可视化报表开发工具,能够独立于Delphi而单独运行的设计工具,它的最大特点是一次可以创建多个报表。Access 2000 是Microsoft公司的关系数据库开发工具。Access 2000主要是关系数据库开发工具,而且可以这样说,Access 2000是非常简单的数据库开发工具。Access 2000作为关系数据库开发工具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。1.3 主要技术简介智能排课系统所涉及的技术是多方面的,下面逐一介绍:数据库:数据库方面用到的知识相对比较简单,但要实现很好地应用起来却很麻烦。首先,要用Microsoft Access 2000 建好数据库,然后使用ADOCONNECTION控件连接到已建好的数据库,在通过设置ADOTABLE控件的相关属性,将其连接到ADOCONNECTION控件,再连接相关的数据表,这样就完成了数据库的连接,使用时只要引用ADOTABLE控件就可以对数据库中的信息表进行浏览、添加、删除和修改操作。循环流程:在程序中,由于要对各种事件做判断,因此要设计层层的循环判断,来达到系统的智能化管理。OOP(面向对象的程序语言):把各窗体的参数、变量封装起来,再自己设定一系列公有函数,可以实现不同窗体的参数传递、事件触发。面向对象的程序设计是现在程序设计的主流语言,具有很好的封装性、继承性,大大的简化了程序的设计,并且使程序设计更有条理性、可读性。各类查询统计:快速而准确地为领导决策提供可靠的数据和依据,对各种类型的数据要做到快速而准确的统计。查询主要由Delphi提供的基于SQL语句强大功能的ADOQuery控件,来快速而灵活实现各类查询,再加上DbGrid与ADOQuery的连接来动态地显示查询到的结果,达到操作的一目了然。统计先使表的当前指针指向第一条记录,然后再一条一条的判断,把结果保存在一数组中,当到表尾时再写到显示的组件中,这样一次写入可以节省大量的时间。报表打印:智能排课系统有一个功能就是把某些数据以报表的形式显现出来,特别是各种课程信息要以表格的形式打印出来。本系统用到Delphi7.0新提供的强大的报表组件Rave Report,可用它实现多种形式的报表设计。上面只是对系统中所用到的技术进行了一下简单的介绍,在下面的章节中,将进行详细的描述。2 系统功能设计2.1 系统组成本系统组成的主要部分是服务器端、客户端和数据库。虽然各个部分看上去很独立,但其内部是相互关联的。服务器端主要包括服务器端设置、数据库的连接、服务器端的应用程序对数据库的管理、服务器与客户端请求的响应、服务器对客户端的远程监控等。客户端包括各系输入必要的信息,如本系老师的任课情况,手动更改本系的课程等,还有学生的选课功能以及课程的查询。 数据库主要是存储所需的各种信息以及排课结果。系统的各功能模块如图2-1所示:图2-1 排课系统的系统构成2.2 模块功能教师任课管理和计算机排课模块:教师任课管理,可输入、调整、查询教师担任课表。计算机排课系统采用框架式可维护的排课策略库,具有学生、教师、教室等多因素自动综合的求优排课算法,课程时间分布的自动平衡和时间段限定,听课人数和教室大小的自动求优和人数模糊、教室功能模糊,适应地域分散的特点的教室地理位置自动求近和位置限定算法等,由计算机生成课程安排表。按实用化、易用化的目标,排课系统还提供了学生(班级)视图、教师上课视图、教室使用视图,提供自动和交互式二种排课方式,使复杂的排课直观、方便、快捷,保证排课结果的适用性。系统功能丰富、实用、使用方便、可靠性好。教学计划管理模块:系统能针对本、专科的不同层次制定相应的四年、三年、二年培养计划,包含学生的课程计划和专业方向组计划。教学计划模块根据学制维护相应的培养计划,根据培养计划形成每个学期的对开课系的开课任务书和对上课系的教学安排表,并将变更反馈到培养计划,使其成为执行计划,作为毕业资格审查的依据。支持执行计划传送到排课系统,支持培养计划导出到Word文档。支持全校性公共选修课面向全校各专业、各年级学生开设。教室管理模块:该模块与自动排课系统联动,可以对排课后的教室用计算机进行借用管理、查询、分析统计,可生成全校教室使用情况汇总表。对教室的借用提供了技术先进的图形化操作界面,直观、便捷,系统经二个学期的运行,使用效果良好。学籍管理模块:管理完整的学生基本信息,对学生个人基本信息、入学信息、入学前信息、家庭信息进行录入、修改、查询、统计、报表处理。实现多种条件组合查询。新生数据导入、学生学籍变动处理、在校奖惩管理、打印多种基本信息报表。网上选课模块:适用于完全学分制和学年学分制两种教学模式,系统实现了网上选课、计算机排课、计算机选课排课调整等一体化解决方案,并与高年级现行的学年学分制自动排课、学籍管理、教室资源管理、任课教师管理等系统溶为一体,形成一个较为完整的本科教学管理信息系统。学生可以在校园网上任何一台联网计算机上选课程、选教师、选时间,查询培养计划、查询全校开课情况、查询选课结果和学生个人课程表,系统采用多种策略进行选课调整,提供灵活的常规查询和基于主题的信息查询,查询条件任意组合,信息显示项可选,支持长度可变的查询报表,满足了学分制管理所需的数十种报表要求。系统管理模块:主要包括用户管理和数据安全两部分。用户管理包括各项功能操作的权限分配,用户密码的修改等。数据安全包括服务端数据库的设计,数据的导入、导出,数据库的备份和恢复以及数据维护。2.3 系统主要特点本系统特点主要是以下几点:界面美观,操作方便。不管是开始菜单,其操作均与Windows相同。强大的报表打印功能(由于使用了Delphi7新增的专门制作报表的工具Rava),包括单项报表,级联报表等。严格的用户管理制度,对用户的权限进行了清晰的分配。 强大的排课向导功能,能够让用户快速的熟悉软件的操作。数据库的共享,可供多个用户对数据库进行查看。数据备份与恢复,为了防止事故造成数据损失,必须经常对所使用的数据库文件备份,以便在出现数据损坏时能恢复到以前工作的状态。2.4 系统开发工具在Windows 2000和Windows 98环境下,运用Delphi 6.0和Delphi7.0作为主要的开发工具,同时也涉及到Microsoft Access 数据库方面的知识。Delphi 6.0和Delphi7.0是Borland公司推出的面向对象的可视化的快速应用程序开发环境(RADRapid Application Development)。它以基于窗口和面向对象的编程方法,与Windows系统紧密结合,同时兼备Visual C+的强大功能和Visual Basic易学灵活的特点,它具有功能强大、简便易学、易用和代码执行速度快等优点。Delphi的特色就在于它的VCL完美的封装了Windows API,使用VCL可以非常方便地实现许多复杂的功能。本系统选择Delphi,是因为可以获得相当数量的第三方组件的支持,可以直接使用大量的源代码,从而节省了编程人员的大量的时间和精力,也有效的提高了应用程序的运行效率和可靠性。Access 2000 是Microsoft公司的关系数据库开发工具。Access 2000 就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access 的优点在于它能使用数据表示图或自定义窗体收集信息。数据表示图提供了一种类似于 Excel 的电子表格,可以使数据库一目了然。另外,Access 允许创建自定义报表,用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。如上所述,Access 作为关系数据库开发具备了许多优点,可以在一个数据包中同时拥有桌面数据库的便利和关系数据库的强大功能。2.5 数据库实现方法Delphi 具有运行SQL语言的能力。SQL即Structure Query Language,中文经常把它翻译为“结构化查询语言”。SQL已经成为了数据库语言的通用标准。Delphi 通过Query控件,可以灵活的实现SQL查询,在数据库应用程序中起到了极其重要的作用。Delphi 6.0 所支持的数据库大致分为两种:本地数据库和远程数据库服务器。前者用于编写单层的数据库应用程序(即本地数据库应用程序),后者用于编写双层数据库应用程序(即Server/Client数据库应用程序)及多层数据库应用程序(多层数据库开发用到了MIDAS技术)。智能排课系统属于多层数据库应用程序。用户使用该系统时可能在本机上,也可能通过局域网访问服务器上的数据库,还可能在Internet上浏览访问服务器数据库。本系统采用了三层结构模式即数据层、业务层和表示层。数据层负责管理原始数据,并为业务层处理事务,这里的数据层通过ACCESS实现。业务层也就是应用服务器层,在数据库服务器上建立应用服务器,它把客户的应用程序从复杂的原始数据中解脱出来。表示层也叫做GUI层,这层负责在客户应用程序中以适当的格式显示数据,负责在客户机上执行规则验证和查询生成。这些将在本软件中具体实现。3 系统模块实现3.1 系统管理与远程数据访问模块系统管理模块主要包括用户管理和数据安全两部分。用户管理包括系统用户的信息管理,各项功能操作的权限分配,用户密码的修改等。数据安全包括数据的导入、导出,数据库的备份和恢复以及数据维护。3.1.1 系统管理用户信息管理:软件的使用者不只是一个,用户信息管理就是为了方便管理员对用户进行管理。它包括了用户信息的浏览、添加、删除和修改。 操作权限的分配:软件的用户按使用权限分为超级用户和一般用户,超级用户拥有软件的一切权限,而一般用户只允许在规定的范围内使用软件。对于本软件来说,教务处为超级用户拥有最高权限,而各院系的教秘只是一般用户,他只能对自己所在的院系的信息进行添加、删除和修改操作。当用户登录系统时,根据用户名就可以判断出用户的权限。用户口令的修改:为了系统使用的安全性,为用户提供了口令设置功能。设置口令后,每次进入本系统时将核对用户口令,如口令错误将不能进入本系统。用户正确登录系统后,可以更改自己的密码。 数据的导入和导出:排课系统中的数据可以通过此功能导出到其他数据库或以表的形式存放起来,还可以把外面的数据导入到排课系统的库中,作为排课的数据来源。例如,教师信息的导入和导出。 数据备份和恢复:为了避免您在使用本系统时由于软件或硬件出现的故障或操作错误而造成数据丢失,建议您在输入完数据时或运行完课表时经常做数据备份。当硬盘数据因意外被破坏时,把软盘上的备份数据恢复到硬盘即可。 数据维护:在每次排课前需对各排课数据进行校对和检查,以保证课表编排的正确性。3.1.2 远程数据访问排课系统的数据库访问可能是在本机,局域网甚至可能是在因特网上,所以把系统设计为多层数据库应用程序。一个完整的多层数据库应用程序,包括前端、后端和中间层三部分的应用程序。具体如下: 后端也叫做数据层,负责管理原始数据,并为中间层处理事务,通常,它可以是数据库系统。本系统用的是ACCESS。 中间层也叫做业务层,负责从数据层获取适当格式的数据并执行最后的合法性检查(也叫做执行业务规则)。业务层也就是应用服务器层,它把客户的应用程序从复杂的原始数据服务中解脱出来。 前端也叫做表示层或GUI层,这层负责在客户应用程序中以适当的格式显示数据,负责在客户机上执行规则验证和查询生成。一个设计精巧的客户应用程序可以将应用服务器提供的业务服务作为一个整体来解释,并高效的定位所需要的商业服务。表示层总是与业务层打交道。从不与数据层打交道。三层结构模式是在客户机和服务器这种前端、后端之间引入了应用服务器层的概念,即客户端对应表示层、数据服务器对应数据层,如图3-1所示。数据服务器应用服务器客户端客户端客户端客户端图3-1 三层体系结构教务管理是大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,教务日常管理工作日趋繁重、复杂。迫切需要研制开发一个基于INTERNET网的综合网上教育管理软件。为了适应此需求,特意在排课系统中添加了教务管理的部分功能,主要是为排课提供所需的某些数据。3.2 学籍管理模块学籍管理主要为排课系统提供学生信息,涉及到学生的诸多信息,例如,学生的姓名、籍贯以及学生学籍的变更等等。随着教学体制的不断改革,大学生的人数也变的越来越多。迫切需要研制开发一个基于INTERNET网的综合网上学籍管理软件。该管理软件就是适应此需求产生的。充分依托校园网,实现了学生信息的集中管理和信息共享化,使传统的学生学籍管理朝数字化、无纸化、智能化、综合化的方向发展。3.2.1 学籍管理功能本系统主要的功能是收集学生的个人信息,以便向教师提供每个学生在校的情况。系统的主要功能有:学生个人信息输入。包括:姓名、性别、院系、生日、籍贯、生源地等。学生流动情况的输入。包括:转系、休学、复学、退学、毕业。奖惩情况的输入。学生个人信息查询和修改,包括流动情况和奖惩情况。3.2.2 学籍管理数据流程图数据流程图(DFD)是新系统逻辑模型的主要组成部分,它可以反映出新系统的主要功能、系统与外部环境间的输入输出、系统内部的处理、数据传输、数据存储等情况。数据流程图是管理信息系统的总体设计图,学生学籍管理系统模块的数据流程图如图3-2所示:图3-2 学籍管理模块的数据流程图3.2.3 学籍管理实现在进入学生学籍管理主界面时,首先要在登陆窗体上填写用户名和用户密码,这保证了用户的合法性并且规定了不同用户的权限,保证了系统的安全。在进入主界面后,通过点击辅助功能菜单下的学籍管理项,进入管理界面。在添加学生信息时,需要添加所在院系和专业,当选择某院系后,专业就会显示此院系包括的所有专业信息。当点击删除按钮时,即可删除学生的信息,并且在数据库中彻底的删除此记录。为了数据的安全性,提供删除确认窗体,询问是否真的要删除这个学生的所有信息。学籍变更主要输入项有学号、学籍变更情况和具体描述。同时在输入学号后,需要及时显示学生的姓名、班级和院系。恢复按钮用于输入数据的初始化。不象学生信息输入模块里的“恢复”按钮那样进行回滚,这里只是进行数据的初始化,把学号输入框清空,学籍变更复位为“转系”,描述清空。标签页学籍变更输入的OnShow事件处理程序和恢复按钮的处理过程相同。当对学籍修改完毕后,点击添加按钮即可提交数据。学籍变更主要输入项有学号、学生奖励情况和具体描述。输入学号后,在学生基本情况栏中,会显示学生的姓名和所在院系班级,用以确认输入是否正确。随后可以选择奖励级别,并输入奖励的具体内容。单击“添加”按钮,即完成了表单的提交。学生个人信息查询修改,此界面包含的数据项比较多。根据输入的学号显示学生的个人信息,如姓名、性别、院系、班级等。同时还要列出该学生的学籍变更情况、获奖情况和受处罚情况。3.3 教务管理模块3.3.1 教务管理分析本模块主要有以下功能要求: 课程信息设置,包括信息的增加、删除、查询和修改。学生课表的打印输出。教室信息管理,教师信息管理,院系专业信息管理,班级信息管理,包括信息的增加、删除、查询和修改。 教学安排,包括教学计划的浏览、查询、添加和删除。 开课任务书,生成各个年级专业本学期开设的课程安排信息。系统各个模块的关系如图3-3所示:图3-3 教学管理信息系统功能模块图3.3.2 教务管理模块数据规划 根据数据流程图,教学信息系统需要以下数据项: 课程:课程号、课程名称、课程类别、学分、学时、课程简介。 教师:教师编号、教师名称、所在院系或所在教研室。 教室:教室编号、教室名称、教室类型、教室容量。 教学计划:编号、课程名称、课程类型、学分、总学时、周学时、开课学期、教学周数、所需教室类型、课程级别、备注。 班级:班级编号、班级名称、班主任、所在院系、所在专业。 院系:院系编号、院系名称。专业: 专业编号、专业名称、授予学位、所属院系。3.3.3 教务管理开发步骤一般说来,管理信息系统的建立与应用可以划分成总体规划、系统开发和系统运行三个阶段,其中系统开发阶段还可进一步分为系统分析、系统设计和系统实施等工作环节。上述各个阶段排列成一个严格的线性开发序列,在每个工作阶段均产生完整的技术文档作为下一阶段工作的指导和依据,每一阶段都应对文档进行评审,确信该阶段工作已完成并达到要求后才能进入下一阶段,同时在以后的工作中不能轻易改变前面经过评审的成果。3.4 综合报表及课表打印模块本模块要实现的功能主要是实现数据的报表输出和打印 。本排课系统中,有许多数据需要进行报表设计和打印,因此有必要把报表和打印功能作为一个模块进行设计。在本系统中的各模块中,有很多方面需要进行报表输出和打印,并按“全校”,“届/级” ,”专业”,“班级”四个层次逐步细化。首先是学校总教务处(就是全校级的)需要打印的报表很多,这些报表是:全校选修课的开课计划书,全校班级课程表(全校班级课程表是在该学期中全校的课程表),全校教师课程表(全校教师课程表是在该学期中全校教师的课程表),班级课程表(班级课程表是在该学期中每班的课程表),教师课程表(教师课程表是在该学期中每位教师的课程表)。各系的教师授课表,教室的使用情况表,各系各专业各年级学生的教学计划书,各系各专业各年级各学生的考核成绩表,作息时间表等。其次是各系部的教务科,它涉及的报表是:各系选修课的计划书(此表需要上交教务处和分发给本系学生),各系选课的数据报表,各系统记的历届学生考试成绩报表,教师特殊情况表(此表需要上交教务处,以便在进行全校排课时对教师的特殊情况纪行适当的处理)。最后是学生方面,它涉及的报表是成绩查询的报表打印。3.5 网络选课模块3.5.1 功能在WWW环境下,每学期根据教学计划和排课系统,由学生在网上制定个人的学期学习计划。选课分为三个阶段:预选,正选,补退选,以最大的程度解决课程资源有限的问题。功能包括学生网上选课,查询自己的课表,修改选课登录的密码,查询本学期所有的开设的课程信息。3.5.2 设计思想B/S(Browser/Server,浏览器/服务器)结构是随着Internet 技术的兴起,对C/S结构的一种变化或者改进的结构,在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。形成所谓的3-tier结构。B/S结构主要是利用不断成熟的WWW技术,结合浏览器多种Script语言(Vbscript、Javascript等)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows98/Windows2000植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。目前,大多数应用软件系统都是Client/Server形式的两层结构,现在的软件应用系统正向分布式的Web 应用发展;内部和外部的用户都可以访问新的和现有的应用系统,Web和Client/Server应用都可以进行同样的业务处理;不同的应用模块共享逻辑组件,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的开发方向。三层结构概念:B/S系统的三层结构把程序按照内部分工及业务逻辑分割成几个相对独立的程序,一般划分为界面层、业务处理层、数据存储层。而业务处理层可以根据需要在进一步分割,使程序之间的关系变得清晰、耦合小。由于程序进行了分割,它们就可以安装在不同的机器上,一般情况下界面层的程序安在客户机上,业务处理层安装在应用程序服务器上,数据存储层安装在数据库服务器上,而工作实际中,界面层的程序也是从应用程序服务器上下载的。这样很大程度上杜绝了C/S结构存在的问题:减少系统对硬件的需求界面层的程序比较小对系统要求不高,程序主要运行在服务器上,系统的硬件主要取决于服务器。减少了系统的维护工作量由于程序主要集中在服务器端,客户端也是从服务器上下载的,所以系统维护主要集中在一二台服务器即可。减少了系统升级难度由于程序被分割成了几个相对独立的程序,在业务变更时只需更改相应的部分而不牵连其它的不相关程序,这样大大减少了工作量提高了工作效率。选课模块允许学生在互联网上的任何一台计算机上均可以实现选修课程操作,所以本模块采用VBScript脚本编写,客户端不需要安装任何软件。3.6 排课模块教务管理信息系统的应用水平,在较大程度上反映了高校管理现代化的层次。从系统开发复杂性的角度看,计算机辅助排课与选课是教务系统中的两个关键子系统。3.6.1 现状分析在高等学校的教务管理工作中,课程表的编排是一项十分复杂、棘手的工作。在排课过程中,除了满足大量的制约条件以外,还必须解决许多冲突与矛盾,例如,两位教师不能同一时间在同一班级上课、一位教师不能在同一时间上两门课等等。利用计算机辅助进行课表编排工作,既提高了排课工作的科学性,又可大大减轻管理人员的工作强度,提高工作效率,从而使学校教务管理现代化迈上了一个新台阶。我国不少高校都实行了学分制,它的核心是允许学生自由选课,即把学习的自主权交给学生。在这里,学生选课时的制约因素比较复杂,工作量也很大,而且往往需要在较短的时间内完成。运用计算机辅助选课,即能实时地对大量选课数据进行检验和统计,十分方便地输出选课结果,同时也避免了人工处理时容易产生的错误。从系统开发的复杂程度来看,计算机辅助排课与选课是高校教务系统中的两个关键子系统,目前不少教务系统尚未很好地解决排课与选课问题。本文主要对高校教务管理系统中计算机课表编排与选课子系统的基本功能、设计思想、主要算法以及实现技术进行探讨。3.6.2 排课模块的特色数据输入方便,操作简单;本软件面向广大高校教务管理的工作人员,只要会使用鼠标及简单汉字输入方法,就足以完成本软件的任何操作。在数据录入的过程中还可以灵活指定有特殊要求的老师的上课时间及地点;以解决班主任、党员教师和有特殊原因的老师的实际问题。 整个排课过程全部自动完成,无需人工干预。提供按班级、按教室、按教师、按时间、按课程等多种修改、查询、打印方式。十分灵活、方便的课表调整、修改功能,足以满足课表自动编排好以后,实际情况发生变化的需要。 Windows风格,可视化排课操作,与手工排课的方式更加接近。3.6.3 排课模块实现的功能 参数设置:本系统可设置为五天制、六天制、七天制等多种排课方式,同时,还可以任意指定每天上课的节数以及连堂课的节数。在线提示:在系统使用的任何界面中都将随时给出相应功能的使用详细说明。时间指定:可以任意指定教师或课程的上课时间。课表修改:对课表进行的任何修改系统都将自动给出冲突提示。排课方式:本系统采用按时间顺序排课的方法进行自动排课,充分利用教室资源,课程分布均匀,最大程度满足时间指定。4 排课算法排课软件的开发中,最主要的也是最难的就是排课算法了。这主要是因为算法涉及到教室资源、课程性质、教师冲突等很多的因素。4.1 排课算法的原则4.1.1 设计思想与基本原则目前,高等学校的教学工作仍是以班级教学为主要形式,任何一项教学活动都会涉及到教师、课程、班级、教室和时间等方面的制约因素。可将这些制约因素归结到以下四个集合中:教师授课任务集合:该集合包括本校所要排课的任课教师及其有关的授课信息。在课表编排系统中,可以建立一个教师授课任务库,来存放所有教师的授课信息,包括姓名、授课班级、授课课程、周课时、授课单位等信息。教师排课受限集合:该集合包括本校所要排课的某些任课教师的一些排课特征,如:某位教师在某个时间片面性不能排课。在这里,可以建立一个教师排课限制库,来存放所有排课受限的教师的信息,包括姓名、星期几、第几节课(后两个字段合成一个时间片)等信息。教师固定排课集合:该集合包括本校所要排课的某些任课教师的固定排课,如:某位教师在某个时间片断固定地为某个班上某门课。在课表编排系统中,可以建立一个教师固定排课库,来存放所有固定排课教师的信息,包括姓名、授课时间、授课班级、授课课程等信息。在这里,授课单位以一学时为单位。教室场地受限集合:该集合包括本校某些所要排课的课程受到场地限制的一些信息,如:计算机、音乐等课程排课时受到场地的限制。在这里,可以建立一个教室场地受限库,来存放所有场地受限课程的信息,包括课程名、受限数等信息。所谓课表编排就是根据上述四个集合中的约束条件,运用一定的算法,遵循给定的排课原则,并在必要时进行人工干预,最后生成并输出科学、合理的课程表,其中包括:班级课程表、教师课程表以及学校的总课程表等等。为了避免课表编排过程中产生冲突,需要确定一些原则作为课表编排的依据。这些原则的科学性将直接影响课程表质量的高低。一般说来,课表编排的基本原则包括以下几类:课程表的合理性 1) 体育、英语、政治等公共课的教师最先排课; 2) 体育课不能排在第一大节(两小节); 3) 同一门课不能在一个班级的同一天安排两次,并且应当适当考虑授课时间上的间隔天数; 4) 主课(指考试科目)应尽可能安排在上午; 5) 同一门课不能总排在某一大节。 避免教师在授课时间上的冲突 1) 教师不能在同一时间上两个或两个以上班级的课; 2) 两个或两个以上的教师不能在同一时间上同一班级的课。 注:由于体育课通常是两个或两个以上班级的学生合班上课,因此,第一种冲突不包括上体育课,在程序中另行处理。 限定不排课时间 1) 固定不排课时间 此时间是一固定时间,至少在一个学期内不会变更。比如固定的学习和教研活动时间,要避免把课程安排在这些时间上。此情况可在每次排课前一次设定; 2) 教师在某一大节不排课 由于种种原因,某些教师不能在某一时间安排上课, 这可通过教师排课特征来设定。 以教师为单位排课排课时可以以班级为单位进行排课,也可以以教师为单位进行排课。以班级为单位进行排课,是将一个班级的所有课程都安排完,再进行下一个班级的排课处理,一个班级的排课过程中涉及若干任课教师,这种排课方式对一个班级来说也许较理想,但要避免教师在授课时间上冲突无疑会增加难度。 以教师为单位进行排课,就是将一个教师所有的授课任务全部安排好,再安排下个教师的授课任务,这种排课方式可简化避免教师在授课时间上冲突的处理。 为此,可以根据教师授课任务书,先建立一个授课任务库,包括任课教师、授课班级、课程名、周课时数、主副课特征等。排课时,应以承担授课任务较多的教师或授课班级较多的教师先排课,这样做可提高排课速度。4.1.2 排课中的一般约定1) 主课优先排在上午,有冲突时再考虑排在第三大节; 2) 当一个班的周总课时数小于18时,副课先排上午,有冲突时再排第三大节; 3) 当一个班周总课时数大于或等于18时,副课先排第二、第三大节,有冲突时再排第一大节; 4) 一个班级中的单、双周课不应超过两门。 以上这些原则,在不同的学校或系是不一样的。生成课表时,应该根据本校或本系的具体情况设定相应的原则。4.2 排课数据的准备1) 时间资源确定本次排课不能排课的时间,确定上课周数。2) 教室资源统计出本学期可利用的教室号码及所能容纳的人数,并确定其是否为专用教室。其中,专用教室只允许特定的班或课程使用,而其它班或课程不得使用的教室,如实验室、制图室等。3) 班级情况统计出本学期需排课的班级名称、班级人数、专用教室号码。4) 课程情况确定每门课程的课程种类、总学时、周学时、上课周数或周次以及其主次程度、专用教室号码、时间特殊指定等。5) 教师情况确定每位教师的特殊要求,即在本学期给哪些班级讲授哪些课程。计算机辅助排课的关键是生成班级课程表,相应算法中的关键则是生成各班级的课程表库。生成班级课程表库算法: 1) 设置排课参数。 2) 打开教师的授课任务库。 3) 初始化班级课程表。 4) 计算每个班级的周总课时与教师的周总课时, 并对教师授课任务库进行排序。 5) 还有教师没有排课吗?若没有,转13,否则进入6。 6) 从教师授课任务库中,读取教师姓名、教师排课特征、班级名、课程名、周课时、主副课特征等信息。 7) 与上一教师同名否?若同名,转9,否则数组清空,并根据限定不排课时间在数组对应元素上作标记以表示不排课时间。 8) 根据班级名打开班级课程表库。 9) 根据周时数,判断是否为单、双周课,如是转单双周处理。 10) 使用排课算法,获得一个排课时间值T(T为上课时间表中的第X行第Y列)。 11) 确定排课是否成功,若不成功,则把数组中的标记值“TP”和“TY”清空,转到人机交互程序,手工调整排课参数,然后转10;否则继续下一步。 12) 确定该课程是否已排完?若未排完,转10;若已完成,则根据数组中置“TY”标记的位置,在相应的课程表库中的第X记录(第X大节)的第Y字段(星期Y)中填上课程,并在把数组中置“TY”的标记改为置“Y”标记,同时把“TP”标记清空, 关闭班级课程表库,转5。 13) 关闭教师授课任务库,各班级课程表库全部生成完毕。 4.3 排课算法排课功能是智能排课系统设计难点,它不仅要考虑到教室冲突问题和教师冲突问题,还要考虑到分段课、单双周课时的资源利用问题。另外由于高校的教学特点,还要处理合班课、外语分级课、体育课、分组课与选修课等特殊课程。针对这些问题,专门对数据库设计与程序编制作了一些探索,但由于本软件开发周期短,可能有些问题需要进一步研究和完善。4.3.1 核心算法流程图智能排课系统还设置了专家排课功能,它能够根据排课用户事先给出的排课策略进行自动排课,排课速度较快。为了实现专家排课功能,专门设置了两个堆栈S1和S2,S1的每个结点保存已排好课程及该课程的某次课,S2保存未排课程排课开始获取排课策略改变排课策略B进入S2栈B从S1出栈S2出栈一门课A对A排课改变排课策略A入S1栈Ru 排课结束S2为空?可用策略结束?此门课排完?YYNNYN图4-1 排课算法流程图及该课程的某次课。具体排课算法如图4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版智能电网技术研发技术保密协议正本-电力行业保密协议
- 2025年度电梯维保及智能化改造项目合同
- 2025年车辆挂靠及运输服务合同模板
- 2025版国际会议中心租赁服务合同
- 2025二手农用三轮车买卖与农事配套服务合同
- 2025年度房地产营销策划服务合同范本
- 2025年软件开发使用权授权合同样本
- 2025年度人防工程防护设备安装与验收合同
- 2025版食品安全宣传资料保密制作合同
- 2025年建筑施工安全防护措施合同范本
- 2024初级注册安全工程师笔试真题解析
- 新2024年-北京市房屋租赁合同自行成交版
- 3D打印混凝土表面增强技术-全面剖析
- 高三数学教学经验交流发言稿
- 沪科版八年级物理上册教学计划(含进度表)
- 矿山三级安全教育培训文档
- 包装行业产品物料报废处理流程
- 算力中心建设的技术要求
- 一般工业固废处理合同范本
- 2025年春季学期1530学生安全教育记录表
- 《椅旁CADCAM全瓷修复技术指南》
评论
0/150
提交评论