课程设计(自动排课系统)
- 格式:doc
- 大小:164.50 KB
- 文档页数:15
J 1SHANXI AGRIC 1UNIV 1(N at ural S cience Edition)学报(自然科学版)2009,29(3)002529收稿日期:2008211226 修回日期:2009201205作者简介:韩勇鹏(19782),男(汉),山西太谷人,主要从事计算机监控系统、教务管理方面的研究。
高校公共选修课自动排课系统的设计与实现韩勇鹏(山西农业大学教务处,山西太谷030801)摘 要:为实现教务管理中公共选修课在必修课安排的基础上合理化、智能化的安排,讨论了一个高校公共选修课自动排课系统的结构与功能。
该系统共由输入、排课、输出,查询,统计,以及Web 六个主模块组成。
算法的数据结构实现是以三个类(Teacher ,SelectClass 1Room )组成,其中,主要分析了依据必修课密度进行公共选修课分布以及在自动化排课模块中由教师T 、课程SC 、教室R 组成的三元组与时间H 的匹配问题。
该系统的设计开发为实现高校公共选修课程编排的微机化作业提供了一种有效的新途径。
关键词:排课系统;算法;类中图分类号:TP311111 文献标识码:A 文章编号:167128151(2009)0320281203Design and Implementation of a College Course Arrangement System H AN Y ong 2peng(O f f ice of A cademic A f f ai rs ,S hanx i A g ricutural Universit y ,Tai gu S hanx i 030801,China )Abstract :For the realization of the Senate in the management of public elective courses in the arrangement based on ra 2tionalization and intelligent arrangements ,in the paper ,we discussed the design and implementation of a college course arrangement system.The system is constituted of six components ,namely ,input ,arrangement ,output ,search ,sta 2tistic and web.The core data structures of the arrangement algorithm are the three classes (Teacher ,SelectClass 1Room ).Moreover ,we analyzed the distribution of electives according to the density of the required courses and solved the match problem of the quadruple ,i 1e 1,the teachers T ,the classes SC ,the class rooms R and the timeline H.The system provides an effective way for arranging lessons.K ey w ords :Arrangement system ;Algorithm ;Class 近年来,随着高校的扩招,全国各高校在校学生人数逐年增加,班级的数量也进一步增多,这就给高校的排课工作加大了难度,尤其是公共选修课。
中北大学课程设计说明书软件工程大型实验学生姓名:史东海学号:0706054208 学院: 电子与计算机科学技术学院专业: 软件工程题目: 大学自动排课算法设计与实现系统——登陆及用户管理子系统成绩指导教师:宋礼鹏职称: 讲师2010 年 1 月 21 日1.设计目的该系统并不是所有人都能随便使用的。
系统应该有不同的权限用于排课和课表的查询,通过登陆可以解决权限问题。
而用户是会经常变动的(比如毕业生的离校),所以需要对用户进行相应的管理(如添加、删除及密码的修改),所以需要实现用户管理功能。
2.设计内容在整个系统中本人主要负责登陆和用户管理功能的实现,同时也参加算法的设计与实现。
本系统要涉及到管理人员、教师、学生三个不同的参与者,有两个不同的权限。
管理员可以录入教师、教室、班级等基本的信息然后进行排课,而教师和学生只具有查询课表的权限。
所以在登录的时候要把不同的权限划分出来。
程序在设计好后数据库中有一个默认的管理员的用户名和密码,通过该用户名和密码可以登陆系统,然后通过用户管理模块可以添加教师、学生或管理员。
为了防止用户忘记密码,管理员可以在不知道原始密码的情况下修改用户的密码。
而教师或学生若想修改自己的密码必须输入旧密码。
3.需求描述图1 登陆及用户管理子系统用例图用例描述如下:表1 UserManagement用例描述表表2 Login用例描述表表3 AddUser用例描述表表4 DeleteUser用例描述表表5 ModifyPassword用例描述表4.系统详细分析设计4.1顺序图(1)登陆顺序图:图2 登陆顺序图登陆首先输入用户名和密码,然后程序到数据库中查询用户名是否存在,密码是否正确,如果正确则登陆成功;不正确登陆失败,可以继续登陆或关闭登陆窗口。
(2)添加用户顺序图:图3 添加用户顺序图管理员输用户名、密码和确认密码。
如果数据库对应表中有所输入的用户名则给出提示;没有则比较两次输入密码是否相同,相同条件成功;不同则给出相应提示。
数据库原理课程设计(2012级)黄山学院自动排课系统的数据库设计姓名:李华阳学号: 21206031023 指导教师:丁丙胜院系:信息工程学院专业:计算机科学与技术提交日期:2014—06—122012级计本数据库原理课程设计目录1. 引言 (3)2. 系统需求分析 (4)2.1 功能需求分析 (4)2.1.1本系统的功能需求分析 (4)2.1.2 排课的基本原则要求 (5)2.2 数据流图 (6)2.3 数据字典 (7)2.3.1 数据项 (7)2.3.2 数据结构 (10)2.3.3 数据流 (10)2.3.4 数据存储 (11)2.3.5 处理过程 (12)3.系统功能设计 (13)3.1 系统功能描述 (13)3.1 系统模块分析 (13)4. 数据库概念模型概念 (14)4.1 概念结构设计的方法 (14)4.2 概念结构设计的步骤 (14)4.3 数据抽象与局部视图设计 (15)4.4 视图集成设计 (15)5. 数据库逻辑结构设计 (16)5.1 数据概念模型的优化 (16)5.2 数据逻辑设计 (17)6. 数据库物理结构设计 (19)结束语 (21)参考文献 (22)22012级计本数据库原理课程设计1.引言随着我国计算机技术、互联网行业的快速发展,计算机的开发应用已渗透到各个领域,成为各行各业必不可少的工具,而且日趋普及。
自动排课管理是学校日常工作中经常要面对的事情,传统的自动排课管理只能是通过手工、分散的管理方式,查找、复核困难,资源不能充分利用,造成资源浪费。
现在相当一部分学校在进行自动排课工作时仍沿用手工方式。
老师为了组织一次排课.不仅要应付课程需要的教师安排、自动排课、学生管理。
人工排课需要经过三个步骤.一是对课程班级人员的选择.二是对课程需求教室的选择,三是根据课程教室分配学生.这些工作浪费了大量的宝贵时间,同时安排位置的工作由于人员多.容易出错.而且安排不具有随机性.不够客观。
摘要随着社会的发展,在现在的社会,信息的各种操作都需要通过计算机软件来完成。
当今,素质化教育也在校园内不断地得到深化。
自动排课模式也在许多的学校内开始遍布了,而传统的教学模式渐渐被取代了。
自动化排课系统,可以满足学校教务处对于排课管理的需求,减少教务人员工作量的同时降低排课中的并发和错选等问题。
学生通过网页可以随时随地进行选课,节约了大量统计时间;教务人员通过设置排课规则快速的完成课程的安排,易于调整修改;教师可以快速方便的安排课程信息。
该系统采用数据集中管理、统计分布式管理。
自动排课系统的系统设计是基于JSP技术的,它具有灵活的一体化发展战略,圆满完成了整个系统的全面设计。
自动排课系统,采用一个简单的界面,操作方便,灵活,实用,有效的简化了自动排课管理系统的过程,大大提高了自动排课系统的效率,使之更加系统化体系化、标准化、自动化,具有优良的可用性、可靠性和安全性。
该系统采用标准的MVC三层架构,包括表示层、控制层和业务层三个部分,降低了系统开发的复杂性。
这个项目具体是运用了JSP,提高系统的运行性和安全性,并且方便了后期的维护和操作。
系统主要实现了教师列表、班级列表、学生列表、教师列表、课程列表、排课列表、管理员列表等功能模块,具有良好的实用性。
关键词:自动排课;B/S 模式;MVC;JSPAbstractWith the development of society, in the information society, information acquisition, processing, communication and decision-making needs of high-quality computer software. Today, the quality of education are constantly deepened campus. Smart Scheduling model is also in many schools throughout the beginning, while the traditional teaching model was gradually replaced. Intelligent Scheduling System, arranging to meet the needs of the school management for Academic Affairs, reducing the workload of academic staff while reducing concurrency and arranging the wrong choice and other issues. Student enrollment at any time via the web can save a lot of statistical time; rapid completion of the academic staff by organizing courses set Scheduling rules, easy to adapt and modify; teachers can quickly and easily arrange course information. The system uses a centralized data management, statistical distributed management.Senate elective system design management system is based on JSP technology, it has a flexible integrated development strategy, the successful completion of a comprehensive design of the entire system. Academic course management system that uses a simple interface, easy to operate, flexible, practical and effective management system simplifies the Senate elective process, greatly improving the efficiency of educational administration course management system to make it more systematic system, standardization, automation with excellent availability, reliability and security. The system uses three standard MVC architecture, including the presentation layer, control layer and service layer three parts, reducing the complexity of system development. The main use of JSP technology development, improve the system performance and security, and easy to maintain and operate. System is mainly to achieve the teacher lists, class lists, list of students, teachers, lists, list of courses, arranging the list, the list of administrators and other functional modules, with good usability.Key words : Academic Course management; B / S mode; MVC; JSP目录摘要 (I)Abstract (II)1 绪论........................................................................................................................................ - 1 -1.1 课题研究背景及意义.................................................................................................. - 1 -1.2 课题研究现状.............................................................................................................. - 1 -1.3 本课题主要工作.......................................................................................................... - 2 -2 系统相关技术........................................................................................................................ -3 -2.1 J2EE技术 ...................................................................................................................... - 3 -2.2 MVC模式...................................................................................................................... - 3 -2.3 B/S结构......................................................................................................................... - 3 -2.4 数据库技术.................................................................................................................. - 3 -2.5 本章小结...................................................................................................................... - 3 -3 系统需求分析.................................................................................................................... -4 -3.1 系统总体目标.............................................................................................................. - 4 -3.2 系统可行性分析.......................................................................................................... - 4 -3.2.1 操作可行性分析................................................................................................ - 4 -3.2.2 技术可行性分析................................................................................................ - 4 -3.3 系统功能需求分析...................................................................................................... - 5 -3.4 系统非功能需求分析.................................................................................................. - 5 -3.5 系统开发环境与开发工具.......................................................................................... - 6 -4 系统设计与实现.................................................................................................................... - 7 -4.1 系统设计目标和原则.................................................................................................. - 7 -4.2 系统架构设计.............................................................................................................. - 7 -4.3 数据库设计.................................................................................................................. - 9 -4.3.1 数据库的选定.................................................................................................... - 9 -4.3.2 数据库概念模型设计........................................................................................ - 9 -4.3.3 数据库逻辑设计.............................................................................................. - 12 -5 系统详细设计与实现.......................................................................................................... - 15 -5.1 数据库连接实现........................................................................................................ - 15 -5.2 系统登录实现............................................................................................................ - 16 -5.3 系统功能模块实现.................................................................................................... - 17 -5.3.1 管理员功能模块的实现.................................................................................. - 17 -5.3.2 学生功能模块的实现...................................................................................... - 22 -5.3.3 教师功能模块的实现...................................................................................... - 23 -6 系统测试.............................................................................................................................. - 25 -6.1 软件测试.................................................................................................................... - 25 -6.2 功能检测.................................................................................................................... - 25 -6.3 系统配置要求............................................................................................................ - 25 -6.4 测试内容.................................................................................................................... - 25 -6.5 测试结果.................................................................................................................... - 29 -6.6 本章小结.................................................................................................................... - 29 - 结论.................................................................................................................................. - 30 - 参考文献............................................................................................................................ - 31 - 致谢.................................................................................................................................. - 32 -1绪论1.1课题研究背景及意义20世纪末,计算机的诞生与发展将人类带入到一个全新的领域中,如今已经成为解决很多工程问题的必要途径。
基于智能算法的校园自动化排课系统设计与实现校园自动化排课系统是一种基于智能算法的新一代教育管理工具,旨在帮助学校高效、准确地进行课程排定。
本文将介绍校园自动化排课系统的设计与实现,以及其所采用的智能算法。
一、系统设计1.需求分析在设计校园自动化排课系统之前,我们需要先进行需求分析。
该系统需要具备以下功能:- 自动识别学校的教学资源和班级数目,并能够根据学校的教学大纲自动生成课程表;- 能够考虑到师资的合理利用,根据教师的特长和排课偏好,分配教师给不同的班级和课程;- 能够处理课程冲突,避免同一时间段内安排了两门课;- 能够根据学生的选修课情况,合理调配教室和时间资源;- 提供灵活的排课参数设置,如考虑到体育课的时间、上课时间段的设置等等。
2.系统架构校园自动化排课系统的架构分为前端和后端两部分。
前端主要负责用户交互和展示,后端负责算法实现和数据处理。
前端采用现代化的Web技术,如HTML、CSS和JavaScript,以实现用户友好的界面;后端使用Java语言开发,并引入各种智能算法实现排课功能。
3.智能算法选择校园自动化排课系统需要选择适当的智能算法来进行排课。
目前,常用的智能算法包括遗传算法、模拟退火算法、禁忌搜索算法等。
在选择算法时,需要考虑到课程数量、教师和教室资源的规模以及排课的灵活性等因素。
针对不同的需求,可以选择合适的算法或者结合多种算法进行优化。
二、系统实现1.数据预处理在实现校园自动化排课系统之前,需要进行数据预处理。
这包括获取学校的教学资源、课程大纲、教师、班级和学生的信息,并进行整理和存储。
同时,也需要收集学生的选修课情况以及教师的排课偏好等额外信息。
2.算法实现基于智能算法的校园自动化排课系统的核心就是算法的实现。
以遗传算法为例,它可以通过模拟生物进化的方式,不断优化课程安排。
遗传算法主要包括初始化种群、评价种群适应度、选择优秀个体、交叉与变异等步骤。
在具体实现中,可以根据实际需求对算法进行调整和优化。
VB课程设计大学排课系统1.设计目的排课管理是高校每个学期教学教务管理工作的一个主要内容,是整个综合教学教务管理系统中必不可少的部分。
排课也是一项复杂而精细的工作,归纳起来主要有五方面相互作用、相互关联的因素,即课程、教师、时间、班级以及教室。
教务处根据教学计划的要求、实际招生人数、教师资源情况、每学期要开设的课程、开课计划,公共课程(包括公共英语、马列课、公共体育、计算机基础、高等数学等)进行分组处理,自动排课,以班为单位形成课程表,以教室为单位形成教室使用表,供教师、教学楼管理员使用。
2.设计内容本次课程设计中完成排课算法和课表查询的实现,排课包括手动排课、自动排课和手动调整,查询包括班级课表、教室课表以及教师课表的查询,手动排课是管理员可以自己选择课程名称、教师名称、班级编号、教室编号和上课时间,然后将排课信息存到数据库表中,自动排课是自动调用任课表中的课程、教师和每周节数、班级信息表中的班级编号、教室信息表中的教室编号以及时间表中的上课时间,然后根据算法自动进行排课。
查询可以根据班级编号、教室编号、教师姓名查出手动排课和自动排课后的班级课程表、教室课程表和教师课程表,自动排课后的课程表支持预览打印。
打印是通过程序调用Excel表格,显示出课程表3.需求描述图1 系统功能结构图查询老师信息修改老师信息图2 系统用例图3.1参与者学生:查询学生课表,在查询课表时首先应该登录,所以课表查询用例要包含登陆用例。
教师:查询教师课表,在查询课表时首先也应该登录。
院管理员:可以编辑信息,查询课表信息。
校管理员:可以编辑信息,查询课表信息,可以进行排课以及调整课表3.2用例描述(1)自动排课○1用例:自动排课○2简要说明:通过调用数据库表完成对课程的安排○3事件流:基本事件流○4前置条件:已成功登录系统,任课表里存在记录○5后置条件:完成对课程的安排,并形成课表○6优先级:3基本事件流:a)院管理员发出自动排课请求b)系统根据数据库存储的信息自动排课,并形成课表c)系统提示自动排课成功(2)手动排课○1用例:手动排课○2简要说明:通过手动选择相关信息完成对课程的安排○3事件流:基本事件流○4前置条件:已成功登录系统○5后置条件:完成对课程的安排,并形成课表○6优先级:3基本事件流a)院管理员选择相关信息对课程安排b)系统完成对课程安排的存档并形成课表c)系统提示手动添加成功(3)班级课表查询○1用例:班级课表查询○2简要说明:通过输入班级编号查询该班级课表○3事件流:基本事件流○4前置条件:已成功登录系统,且数据库中存在该班级课表记录○5后置条件:查询并显示出该班级课表○6优先级:3基本事件流a)学生输入班级编号请求查询该班级课程表b)系统完成对该班级课表的查询并显示出来(4)教室课表查询○1用例:教室课表查询○2简要说明:通过输入教室编号查询该教室课表○3事件流:基本事件流○4前置条件:已成功登录系统,且数据库中存在该教室课表记录○5后置条件:查询并显示出该教室课表○6优先级:3基本事件流a)管理员输入教室编号请求查询该教室课程表b)系统完成对该教室课表的查询并显示出来(5)教师课表查询○1用例:教师课表查询○2简要说明:通过输入教师姓名查询该教师课表○3事件流:基本事件流○4前置条件:已成功登录系统,且数据库中存在该教师课表记录○5后置条件:查询并显示出该教师课表○6优先级:3基本事件流c)教师输入教师请求查询该教师课程表d)系统完成对该教师课表的查询并显示出来(6)登录○1用例:登录○2简要说明:通过输入验证用户名和密码登入系统○3事件流:基本事件流和扩展事件流○4前置条件:用户启动该系统○5后置条件:通过验证并进入系统○6优先级:5基本事件流:a)系统提示用户选择用户角色,输入登录信息b)用户选择用户角色,输入用户名和密码c)用户发出登录请求d)系统验证登录信息e)验证通过A01不存在这个用户A02登录信息填写不完整f)系统跳至主界面扩展事件流:A01不存在这个用户g)系统提示不存在这个用户h)系统提示请重新选择角色、输入登录信息i)用户选择取消登录,则结束用例j)否则,系统跳至基本事件流2k)重复三次,则系统自动关闭A02 登录信息填写不完整l) 系统提示某个登录信息未输入m) 用户输入该登录信息n) 系统跳至基本事件流24.系统详细分析设计4.1顺序图(1):图3 自动排课顺序图(2):图4 手动排课顺序图(3):图5 查询课表顺序图4.2 活动图否]图6 活动图图7 类图图8 部署图4.5构件图图9 构件图4.6 数据库表表2 学院信息表表3 系信息表表4 班级信息表表7 时间表表8 课程信息表表9 任课表表10 排课表5.系统实现5.1开发工具及系统运行环境开发工具:Microsoft Visual Basic6.0、Microsoft Access2003 运行环境:Windows7、WindowsXP5.2 排课、查询子系统实现(1)手动排课图10 手动排课该界面通过下拉列表选择课程名称、任课教师、教室编号、班级编号和上课时间,点击确定即会添加至数据库表中,右面的表格也会刷新显示出最新的课程安排。
⾃动排课系统——数据库⼤作业⾃动排课系统⼀.系统需求1该“⾃动排课系统”只是对数据库应⽤技术的⼀个样本数据库的实例,重在对数据库⼀些⽅法的熟悉与掌握,其中包括从数据库的概念模型到ER图的绘制,再到数据库模式的建⽴(即为数据库及其基本表的建⽴),⽽后数据的录⼊(在此从略),最后完成⼀些简单的关系运算表达式的表达和相关的Select 查询语句的使⽤。
2系统结构简述:2.1本系统包括六个实体:课程,学⽣,教室,教师,学院,班级2.2实体之间的多对多联系:教学计划,选课2.2.1⼀个学⽣可选多门课,⼀门课可被多个学⽣选修。
2.2.2⼀门课可使⽤多个教室,⼀个教室可被多门课占⽤。
2.3实体之间的⼀对多联系:教学,⾪属,从属,属于,开设2.3.1⼀个学院有多个教师,⼀个教师只⾪属于⼀个学院。
2.3.2⼀个学院有多个班级,⼀个班级只⾪属于⼀个学院。
2.3.3⼀个学院可开设多门课程,⼀门课程只能被⼀个学院开设。
2.3.4⼀个班级有多名学⽣,⼀个学⽣只⾪属于⼀个班级。
2.3.5⼀个⽼师可教多门课程,⼀门课程只能被⼀个⽼师教。
实体之间的关系转换为其他三个表:教学(⼀对多),教学计划(多对多),选课(多对多)。
注:各个基本表中关键字已在关系模式中说明。
3经过分析,得到⾃动排课系统的如下功能:3.1部分属性插⼊时添加默认值。
3.1.1为选课表中属性是否重修创建并绑定默认值’NO’。
3.1.2为教师表中属性是否可⽤创建并绑定默认值’YES’。
3.2对教学计划表插⼊数据时检查数据是否合理。
3.2.1当插⼊课程⼈数多于教室容量的数据时,⽆法插⼊数据。
3.2.2当插⼊课程占⽤不可被占⽤的教室的数据时,⽆法插⼊数据。
3.3部分表添加唯⼀约束,使插⼊数据的数据值受到限制。
3.3.1教学计划表中,每⼀门课程在⼀天只能安排⼀次。
3.3.2教学表中,⼀门课程只能被⼀个⽼师教。
3.4数据检索3.4.1学⽣查询所选某门课程的成绩。
输⼊:学⽣学号,课程编号输出:课程名称,成绩3.4.2教师查询选修所教课程的学⽣的信息。
智能排课系统操作手册智能排课系统是一种利用先进的算法和技术,以自动化的方式进行学校、培训机构或其他组织的排课工作的系统。
本文将为您提供智能排课系统的操作手册,让您能够轻松地使用该系统。
1. 登录和账户管理首先,打开智能排课系统的登录页面。
输入您的用户名和密码,点击登录。
如果您还没有账户,点击注册并按照系统的指引进行账户的创建。
2. 创建课程和教师信息在系统登录后,您可以开始创建课程和教师信息。
点击课程管理,填写课程名称、上课时间、教室等相关信息,并保存。
同样,点击教师管理,填写教师姓名、联系方式和授课科目等信息,并保存。
3. 设置课程要求和约束在开始排课之前,系统提供了一些设置选项来满足您的需求。
点击排课设置,您可以设置课程的时间间隔、课时长度、教师的可用时间和任课科目等。
确保您设置了适当的约束和要求,以便系统能够根据这些条件进行排课。
4. 排课流程一切准备就绪后,点击排课功能。
系统会自动根据您设定的课程要求和约束,进行排课操作。
您可以选择自动排课或手动调整排课结果。
5. 课程调整和修改系统提供了灵活的课程调整和修改功能。
如果您需要更改某节课的时间或教室,只需点击相应的课程,进行修改并保存。
6. 查看和导出排课结果完成排课后,您可以在系统中查看排课结果以及教师和教室的占用情况。
您还可以选择将排课结果导出为Excel或PDF格式,方便打印或与他人分享。
7. 系统备份和数据管理智能排课系统还提供了数据备份和管理功能。
您可以定期备份数据,以防止数据丢失或系统故障。
同时,您可以管理课程和教师信息,进行添加、删除或编辑操作。
总之,智能排课系统通过自动化和智能化的方式,极大地简化了排课工作,提高了教学效率。
本手册为您提供了系统的基本操作指南,请按照步骤进行操作,以便更好地利用智能排课系统进行课程安排。
希望您能够通过该系统轻松、高效地完成各类排课任务。
第19卷第12期 武汉科技学院学报Vol.19 No.12 2006年12月 JOURNAL OF WUHAN UNIVERSITY OF SCIENCE AND ENGINEERING Dec. 2006自动排课系统的设计与实现杨建红1,刘蓉2(1 武汉工业学院计算机系,湖北武汉 430021;2 华中师范大学电信系,湖北武汉 430079)摘要:本文首先分析比较了几种常用的排课算法,然后针对高中学校特殊的教学需求提出了一个改进算法,能较好地处理各种冲突,有效地提高了排课效率,最后给出了一个基于此算法的排课系统。
关键词:排课;算法;教学计划中图分类号:G423.04 文献标识码:A 文章编号:1009-5160(2006)-0050-04随着信息技术的快速发展,利用计算机实现学校课表的自动编排,不仅解除了手工排课的重复性和繁琐性,减少了教学管理人员的工作量,而且大大提高了教学管理的效率,保证了课程安排的合理性与科学性。
自动排课算法的设计其实是由一个多种因素制约的大规模组合的问题,其最终目标是在遵守各种排课规则以及满足各种约束条件的情况下合理安排一个学期的上课时段、课程、场地以及教师等各个元素,使他们不互相冲突,既能满足排课的一些硬性制约,同时还尽可能地满足一些软性要求,如主要课程的时间段安排、各主干课程之间的合理时间间隔等。
虽然当前已经出现了许多采用不同算法设计的自动排课系统,但它们普遍存在着不足:或因适用范围太广而导致操作复杂,需手工输入排课信息太多;或因适用范围窄而导致排完课后仍需人工调整,既耗时且排课质量差。
而且大多是针对大专院校需求开发设计的,很难适用于以升学率为目标来组织教学的高中学校的特殊的教学安排。
因此本文在比较和研究了当前常用的排课算法的基础之上给出了一个改进算法,该算法能有效处理各种复杂冲突,基于此算法的排课模型能完全满足高中学校的教学需求。
1 常用排课算法介绍(1)Constraint Logic Prongramming(CLP),是由Logic Programmingi(LP)中的限制操作而成。
计算机教学134 自动排课系统开发◆何德华排课问题是学校教务管理中一个非常重要的问题,具有非常重要的现实意义,为此,笔者开发一款自动排课系统,无论是对校领导还是普通教师都有很大的帮助和意义。
排课问题是学校教务管理中一个非常重要的问题,具有非常重要的现实意义。
一、系统自动排课系统的条件每一个技工院校的排课过程都是比较复杂多样,主要涉及到教师、课程、教室(教室所能容纳学生人数的多少)、班级(学生人数)、时间这五个相互制约的因素。
其中课程、教师、班级这三者已经固定不变,要变的是教室和时间,后二者是能够调配的。
系统自动排课问题的求解过程就是把任意的一门课程对应一个合适的老师,同时满足一个教室能让一个合适的班级上课。
在实际排课的中可能出现冲突现象,主要有这二大类约束,分别是软约束条件和硬约束条件。
下边我们先来分析软约束条件:(1)学生的上课时间在周一至周五尽量均匀分布,应避免一天课程很满而另一天却一整天没课的情况;(2)单门课程在一周中应尽量分散分布,这样教师有充足的时间备课和批改作业,学生也有时间做作业和复习消化;(3)单个教师的所有课程在一周中应分散分布,避免单个教师的课排满一整天;(4)尽量满足教师首选的上课时间;(5)尽量满足教师首选的上课地点。
硬约束条件(如有下列任何条件之一出现,则该课表是无效的):(1)在一个教室安排一堂课,这个教室必须要具备这堂课所需要的教学设备;(2)一个教室必须要有足够的座位来容纳这堂课的所有的学生;(3)在同一时间段内,一个教师或一个班级只能安排一门课程;(4)在同一时间段内,一问教室只能安排一门课程。
二、遗传算法设计我们所讲到的遗传算法进化中是以每个个体的适应度值为依据来选取下一代种群的。
用适应度函数设定的好坏直接影响到遗传算法的收敛速度和能否找到最优解。
在这一次的系统设计中,适应度值的设计只与硬约束条件有关。
我们设计的每一类可以是00到05分,如果一位老师在某一个时间段没有其他班的课,我们就再次递增加这门课的分数,我们检查的最后一件事情;如果要上某门课的学生班级里在同一时间没有其它课,就加一分,而一个课程表的总分是所有门课分数的总和;如果一门课要求是多媒体教室而它安排的教室是多媒体的教室,我们就增加它的分数;如果一个课表按照某一时空槽所制定的规则已经被占用,则不增加其得分。
智能排课系统操作手册一、系统概述智能排课系统是一款基于人工智能技术和大数据分析的高效排课工具。
该系统能够根据学校的课程需求、教师资源和学生选课情况,智能地进行排课优化,提高教学效率,减少排课冲突,提供教学管理的便捷性和准确性,极大程度地提升了教学质量和管理水平。
二、系统登录1. 打开浏览器,输入系统网址,进入系统登录界面。
2. 输入用户名和密码,点击“登录”按钮。
3. 成功登录后,进入系统主界面。
三、系统功能1. 课程管理a. 新建课程:点击“新建课程”按钮,填写课程名称、授课教师、课程时间等信息,点击“保存”按钮。
b. 编辑课程:选择要编辑的课程,修改相关信息,点击“保存”按钮。
c. 删除课程:选择要删除的课程,点击“删除”按钮。
2. 资源管理a. 教师管理:添加、编辑、删除教师信息。
b. 班级管理:添加、编辑、删除班级信息。
c. 教室管理:添加、编辑、删除教室信息。
3. 排课优化a. 点击“排课优化”按钮,系统将根据已有的课程、教师和教室资源,智能地进行排课优化,并生成最优的排课方案。
4. 课表查询a. 点击“课表查询”按钮,系统将显示所有班级的课表信息,包括课程名称、授课教师、上课时间和教室。
5. 学生选课a. 学生可以通过系统进行选课、退课操作,系统会根据学生的选课情况进行排课。
6. 系统设置a. 可以设置上课时间段、教室使用规则、教师授课时间等参数,以满足不同学校的实际需求。
7. 报表导出a. 系统支持导出各种排课报表,便于进行教学管理和统计分析。
8. 数据备份a. 系统定期进行数据备份,以确保数据安全。
四、系统操作1. 新建课程a. 点击“课程管理”菜单,选择“新建课程”,填写相关信息,点击“保存”。
2. 编辑课程a. 点击“课程管理”菜单,选择要编辑的课程,修改相关信息,点击“保存”。
3. 删除课程a. 点击“课程管理”菜单,选择要删除的课程,点击“删除”。
4. 排课优化a. 点击“排课优化”按钮,系统将自动进行排课优化,生成最优的排课方案。
2008~2009学年度《WEB 程序设计》课程设计班级:05网络3班学号:姓名:周秋艳2008年12月17日2008—2009 学年度<<WEB 程序设计>>课程设计周秋艳1 基于WEB 的高校教师排课系统一、 用户需求分析(10分)学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。
其中,作为学校教务重点环节之一的排课系统也尤为重要。
先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。
既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系统。
此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。
系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。
该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。
本系统界面友好,操作简单,使用方便。
二、 系统总体设计(15分) 1.系统功能描述1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;1.2 数据处理:自动排课、课表修改、删除功能;1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;1.4 帮助:指导用户使用该系统及其他相关说明。
2 系统功能设计分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。
在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:2.1 怎样的合班组合能避免冲突?目前采取的方式是相同或相近的专业的班级组合。
2008~2009学年度《WEB 程序设计》课程设计班级:05网络3班学号:姓名:周秋艳2008年12月17日2008—2009 学年度<<WEB 程序设计>>课程设计周秋艳1 基于WEB 的高校教师排课系统一、 用户需求分析(10分)学校教务的管理作为高校教育信息化工作中的一项重要工作,如何构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨的课题。
其中,作为学校教务重点环节之一的排课系统也尤为重要。
先前,在统筹安排各班级上课的时间需要人工实现,而且经常会出现同时有多个班级要使用教室的冲突。
既耗时又耗精力,随着计算机技术的不断发展,计算机技术在各领域的充分完美应用,以学校的教务管理为该系统的应用背景,开发一个教室智能排课系统。
此系统开发主要包括后台数据库的建立和前端应用程序的开发两个方面。
系统采用Visual Basic 6.0开发工具和SQL Server 2000作为后台数据库开发的应用软件。
该系统实现上机时间的安排,课程的安排,教室的安排,以及它们之间的不冲突和资源的高效利用;这更切合学院教学需要,降低了排课管理工作的工作量和节省了时间,同时课程安排完成后,学院可迅速获得课表情况信息,为教学工作带来方便。
本系统界面友好,操作简单,使用方便。
二、 系统总体设计(15分) 1.系统功能描述1.1 基本信息管理:教师、教室、班级、课程、教学任务等数据的输入、编辑功能;1.2 数据处理:自动排课、课表修改、删除功能;1.3 数据输出:桌面查询教师、教室、班级课程表,报表打印教师、教室、班级课程表;1.4 帮助:指导用户使用该系统及其他相关说明。
2 系统功能设计分析目前市场上流行的各种排课软件,它们都具有比较完善的功能,但在真正的排课算法上都会有些问题,因为排课算法最关键的问题是如何解决各式各样的冲突。
在做需求分析的过程中,通过调查得知目前排课人员对排课算法的主要要求有:2.1 怎样的合班组合能避免冲突?目前采取的方式是相同或相近的专业的班级组合。
2.2 什么地方有空能排课?对教室和班级而言是查空,对教师而言是有无排课需求。
2.3 有两个以上的空哪一个更好?是要考虑离散和平衡问题。
2.4 排课前如何考虑教师宏观利用问题?例如:多媒体大班课:大学英语、高等数学尽量排在上午,思想道德修养、马克思主义哲学原理等尽量排在下午。
2.5 对于数量巨大的信息,系统仍具有较快的响应速度和较小的系统开销。
三、系统功能模块分析(25分)详细分析各功能模块之间的关系,以及各功能模块下的子模块构成。
22008—2009 学年度<<WEB 程序设计>>课程设计周秋艳31 系统总体模块分析如下2 登陆子模块分析如下3 管理员子模块分析如下教师4 教师子模块分析如下5 注销子模块分析如下返回到登录页面四、数据库设计和建立(15分)1、与前面功能模块的划分相一致的建立合理的关系数据库,详细说明各关系表的属性与描述(每张关系表适当42008—2009 学年度<<WEB 程序设计>>课程设计周秋艳5 添加说明)。
数据库名称是PK ,此数据库包含10张关系表,它们分别是: 表1:ChooseCourse表2:ClassInfo表3:CourseGeneral表4:Department表5:RoomInfo表6:Speciality表7:TermInfo表8:TimeInfo表9:Timetabel表10:UserInfo2、建立数据库及表之间的关系图。
62008—2009 学年度<<WEB 程序设计>>课程设计周秋艳7 3、说明系统与数据库的连接方式。
此系统使用的数据库是SQL Server2000,连接数据库时用的方法是在系统配置文件Web.config 中添加一连接字符串: <add key="dsn"value="server=(local);database=Paike;User ID=sa;password=123;Max Pool Size=1000" />五、 主要界面及相关代码分析(35分)通过系统目标和数据分析创建好数据库后,接下来进行系统功能的开发和实现。
该系统流程图如图所示。
系统中采用的主要技术1用打开数据库的方法程序中通过存取数据库的数据是以离线的数据为基础的,你可以在本地的机器上对数据集进行数据的添加、删除或修改,然后更新回真正的数据库。
具体实现过程为以下几步:1.第一种方案1)首先要导入名称空间<%@ Import namespace="System" %><%@ Import namespace="System.Data" %><%@ Import namespace="System.Data.SqlClient "%>2)建立与数据库的连接SqlConnection myconnection;myconnection=new SqlConnection("server=localhost;uid=sa;pwd=;database=数据库名称");3)在此数据连接上,执行SQL语句,返回所需的数据集Stringc md="select * from数据表名称";SqlDataAdapter mycommand = new SqlDataAdapter ( cmd,myconnection);DataSet ds=new DataSet();mycommand.Fill(ds,reg);数据连接成功后,利用Sql的插入(INSERT)、删除(DELETE)和更新(UPDA TE)命令82008—2009 学年度<<WEB 程序设计>>课程设计周秋艳9 就可以很方便地实现数据库的管理。
2.第二种方案当然我们也可以通过配置web.config 来实现<add key="dsn" value="Data Source=(local); UID=sa; PWD=jianglian; DATABASE=tkxt"/>2 异常的捕获与控制为了提高系统的交互性与运行的可靠性,系统对各类操作异常和运行异常进行捕获与控制。
操作异常是利用 提供的几个验证控件和设置下拉框来实现的,如录入试题时必须先选择章节、知识点、题型,采用下拉框的形式确保试题属于某一知识点;运行异常捕获是使用try()…catch()的结构实现的。
如对数据库进行操作时,对用户输入的题目进行判断,若该题目存在,则提示数据已存在。
具体实现如下:try{ mycommand.ExecuteNonQuery(); lblout.Text="插入成功"; //插入成功 }catch(SqlException exc) { if (exc.Number==2627)lblout.Text="数据已存在"; //数据已存在 elselblout.Text =" error number is:" + exc. Number + exc.Message; //其它错误 }其中lblout 为一个label 控件。
3 自动排课的算法分析用户在自动排课时,可对排课提出多方面的要求,如从教师,教室,时间,课时数目等方面,同时满足多方面的要求并非易事;另外在数据量不是很大的时候要实现自动排课的成功率难度较大,因此排课的算法的优劣直接影响到所排课程的好坏,本系统采用随机排课方式,但是解决了排课算法中的冲突问题。
(排课的具体实现代码在界面与代码分析中)4 排课算法冲突解决方法分析排课算法中的主要的冲突是教室冲突和教室冲突。
我将再通过存储过程的来解决这样的冲突,下面介绍一学期16周,某一门课程32课时为例。
存储过程名为DetectArrangeCollisionCREATE PROCEDURE DetectArrangeCollision @SureCourseID int, @RoomID int, @TimeID int, @TermID int asdeclare @Arrange_id int declare @UserID char(10)select @UserID=erID from Timetabel inner joinChooseCourse on Timetabel.SureCourseID=ChooseCourse.SureCourseID where ChooseCourse.SureCourseID=@SureCourseIDselect @Arrange_id=Arrange_id from Timetabel where ( (RoomID=@RoomID and TimeID=@TimeID ) or ( Timetabel.SureCourseID in ( selectSureCourseID from ChooseCourse where UserID=@UserID)and TimeID=@TimeID )) /*检查教室和教师冲突*/if @Arrange_id <>nullbeginselect * from Timetabel where Arrange_id=@Arrange_id /*查询出数据*/endelsebegindeclare @currentID intselect @currentID=count(*)from Timetabelwhere SureCourseID= @SureCourseID and TermID= @TermIDif ( @currentID <=0)/*查看数据库中是否有重复*/insert into Timetabel values (@TermID,@SureCourseID,@RoomID ,@TimeID)select * from Timetabel where Arrange_id=0endGO1.登录界面login.aspxpublic string[] UserLogin(string UserName,string password){String[] CheckLogin;int Permit=0;string UserID="";SqlParameter[] parameters={new SqlParameter("@UserName",SqlDbType.VarChar ,50),new SqlParameter("@UserPassword",SqlDbType.VarChar ,50),new SqlParameter("@UserID",SqlDbType.Char ,10),new SqlParameter("@result",SqlDbType.Char ,10),new SqlParameter("@Permit",SqlDbType.Int ,4) };parameters[0].Value =UserName;parameters[1].Value =password;parameters[2].Direction=ParameterDirection.Output;parameters[3].Direction=ParameterDirection.Output;parameters[4].Direction=ParameterDirection.Output;int rowsAffected;RunProcedure("sp_UserLogin",parameters,out rowsAffected);// result: NoUser// success,or nouser,or pswerror,// Permit, 如果角色还没分配怎么办if (parameters[4].Value!=DBNull.Value){Permit= Convert.ToInt32(parameters[4].Value);}//设没有这个老师,2008.9.26if (parameters[2].Value!=DBNull.Value)2008—2009 学年度<<WEB程序设计>>课程设计{UserID=Convert.ToString(parameters[2].Value); }CheckLogin=new string []{ UserID, (String)(parameters[3].Value), Convert.ToString(Permit) };return (CheckLogin);}2.自动排课界面GenerateTimeTable.aspxprivate void PK_Click(object sender, System.EventArgs e){int j;int k;string r;con.Open();SqlCommand del = new SqlCommand("delete Timetabel where TermID='"+Convert.ToInt32(ddl1.SelectedValue.ToString().Trim())+"'", con);del.ExecuteNonQuery();//清空Timetabel表里面所有教师任课的信息DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter("SELECT CourseID FROM CourseGeneral",con);da.Fill(ds, "CourseID");for (int i = 0; i < ds.Tables[0].Rows.Count; i++){SqlCommand coure = new SqlCommand("select CourseName,Period from CourseGeneral where CourseID='" + ds.Tables[0].Rows[i][0] + "' ", con);SqlDataReader reader1 = coure.ExecuteReader();if(reader1.Read()){string cr = reader1.GetValue(0).ToString();pr = reader1.GetValue(1).ToString();}reader1.Close();if(int.Parse(pr)/16==2){SqlCommand cmd = new SqlCommand("select RoomID from RoomInfo", con);//调用存储过程,筛选出某门课程某个班级上SqlDataReader dr = cmd.ExecuteReader();j = 0;k = 0;while (dr.Read()){field1[j] = dr[0].ToString();j++;} //获得该课程给定时间的每个可用场地,附值给数组field1[j]dr.Close();SqlCommand cmd1 = new SqlCommand("SELECT SureCourseID FROM ChooseCourse where CourseID in (select CourseID from CourseGeneral where CourseGeneral.Period=32) ", con); SqlDataReader dr1 = cmd1.ExecuteReader();while (dr1.Read()){class1[k] = dr1[0].ToString();k++;}//获得确定,附值给class1[k]dr1.Close();Random rnd = new Random();for (int m =0; m<10; m++)//随即调换class1数组里面的成员{int x = rnd.Next(j);//得0~k的随机数r = field1[x];field1[x] = field1[0];//第一个跟第x个调换field1[0] = r;}for (int n = 0;n<k;n++)//下面为更新插入数据库的操作{SqlCommand cm=new SqlCommand("DetectArrangeCollision",con);mandType=CommandType.StoredProcedure;cm.Parameters.Add(new SqlParameter("@SureCourseID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@RoomID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TimeID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TermID",SqlDbType.Int,4));cm.Parameters["@SureCourseID"].Value=Convert.ToInt32(class1[n]).ToString().Trim();if(Convert.ToInt32(field1[n])!=0){cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n]);}else{int n1=rnd.Next(j);2008—2009 学年度<<WEB程序设计>>课程设计cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n1]);}cm.Parameters["@TimeID"].Value=rnd.Next(24)+1;cm.Parameters["@TermID"].Value=Convert.ToInt32(ddl1.SelectedValue.ToString().Trim()); cm.ExecuteNonQuery();}}else if(int.Parse(pr)==64){SqlCommand cmd = new SqlCommand("select RoomID from RoomInfo", con);//调用存储过程,筛选出某门课程某个班级上SqlDataReader dr = cmd.ExecuteReader();j = 0;k = 0;while (dr.Read()){field1[j] = dr[0].ToString();j++;} //获得该课程给定时间的每个可用场地,附值给数组field1[j]dr.Close();SqlCommand cmd1 = new SqlCommand("SELECT SureCourseID FROM ChooseCourse where CourseID in (select CourseID from CourseGeneral where CourseGeneral.Period=64) ", con); SqlDataReader dr1 = cmd1.ExecuteReader();while (dr1.Read()){class1[k] = dr1[0].ToString();k++;}//获得确定,附值给class1[k]dr1.Close();Random rnd = new Random();for (int m =0; m<10; m++)//随即调换class1数组里面的成员{int x =rnd.Next(j);//得0~k的随机数r = field1[x];field1[x] = field1[0];//第一个跟第x个调换field1[0] = r;}for (int q = 0;q<k;q++)//下面为更新插入数据库的操作{for(int n= 0;n<k;n++){SqlCommand cm=new SqlCommand("DetectArrangeCollision1",con);mandType=CommandType.StoredProcedure;cm.Parameters.Add(new SqlParameter("@SureCourseID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@RoomID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TimeID",SqlDbType.Int,4));cm.Parameters.Add(new SqlParameter("@TermID",SqlDbType.Int,4));cm.Parameters["@SureCourseID"].Value=Convert.ToInt32(class1[n]).ToString().Trim();if(Convert.ToInt32(field1[n])!=0){ int z= rnd.Next(j);cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[z]);}else{int n1=rnd.Next(j);cm.Parameters["@RoomID"].Value=Convert.ToInt32(field1[n1]);}cm.Parameters["@TimeID"].Value=rnd.Next(24)+1;cm.Parameters["@TermID"].Value=Convert.ToInt32(ddl1.SelectedValue.ToString().Trim()); cm.ExecuteNonQuery();}}}}Response.Write("<script>alert('排课完毕!')</script>");con.Close();}。