实验室排课系统的设计与实现 实验室排课系统的设计与实现 作 者 计家瑞 指导教师 赵会洋 [摘要] 为提高实验室的资源利用率,减轻管理人员的劳动强度,方便学生、实验室管理人员与教师之间的交互和沟通,系统提出了用计算机代替手工排课的方法,设计了一个利用计算机实现实验室排课的系统。通过对手工排课过程的调研与分析,设计出了实验室排课系统的功能结构,在此基础上,给出并利用回溯算法实现了实验室排课及课表的导出与打印等功能。实验结果表明,该方法具有很高的可行性和有效性。 [关键词] 导出与打印;自动排课;回溯算法
1. 引言 自动排课是在传统人工排课经验的基础之上,利用计算机模拟人脑来选择合适的方案进行排课。许昌学院计算机科学与技术学院计算机机房承担着计算机科学与技术学院、软件学院的教学实验任务,由于近两年来学院的办学规模不断扩大,实验室的建设也在逐步发展。高质量的教学需要高效率的管理支持,随着开放式实验教学管理模式的改革和学院办公信息化项目的推广,传统的实验室人工管理模式已经不能满足我们工作学习的需求,无法有效合理的提高实验室资源的利用率。实验室自动排课系统的实施,不仅可以提高计算机机房的管理水平、教学质量,而且可以使实验室达到高效、有序、网络化的管理。 2. 系统需求分析 排课是高等院校教学管理中一项重要而复杂的工作,自动排课算法是一个NP完全问题,集成了时间、空间的双重约束,从数学上来讲,排课问题是一个在时间、教师、学生和教室四维空间,以教学计划和各种特殊要求(如指定时间、指定教室、排课等级)为制约条件的组合规划问题,其实质是解决各个因素之间的冲突。 2.1 系统的功能分析 本系统的最终用户是学生、教师和管理员,处理要求如下所示。 (1)先排有指定要求的课程,指定要求包括指定教室和指定时间、只指定时间没有指定教 室、只指定教室没有指定时间,最后对既没有指定时间又没有指定教室的课程进行安排。 (2)周五下午不能排课,排课时间为周一至周五,每天上午、下午各两节课,共十八个上课时间段。 (3)满足周课时要求。 (4)可根据使用用户的不同,将课表分为班级课表、教室课表、教师课表和总课表。 (5)管理员可以设置用户权限、用户初始密码及添加、删除用户。 (6)可分别将基本信息和课表信息导出到Word或者Excel。 (7)可打印基本信息、教学计划和课表信息。 (8)设置一个简易留言板,用户可以进行留言,管理员可以对留言板进行管理。 (9)不同级别的用户,具有不同级别的用户权限。 2.2 系统的性能需求 (1)系统使用方便、简单,基于实验室排课系统的面向对象是所有使用实验室的教师、学生及实验室管理人员,因此要求系统应该是使用方便、简单且尽量适合不同层次、不同使用习惯的用户使用。 (2)系统操作上应该简单、方便、界面简洁美观。 (3)系统在结构上应该具有很好的可扩展性,以便于以后的进一步开发和维护。 2.3 数据库设计 数据库的构架是应用系统研制成功的基石,整个系统的操作都是围绕着数据库表进行的,因而如何建立数据库表,每个表应具有哪些项目等,对节省存储内存、减少运算量、简化程序设计等都是非常重要的【1】。 本系统建立了数据库表LRS,在LRS数据库表中设立了以下几张表结构,包括教师信息表(teacher)、教室信息表(lab)、班级信息表(class)、课程信息表(course)、任课信息表(lessons)、教学计划表(plan2)、用户信息表(userinfo)、留言信息表(liuyan)、时间表(t_info)、排课单元表(unit)。 3. 系统总体设计 3.1 系统功能结构 本系统是一个基于WEB的实验室排课系统,它主要包括登陆界面,管理员主界面,教师主界面,学生主界面,登陆时系统会根据使用者角色的不同,系统会进入不同的操作界面,系统总体结构如图1所示。
实验室排课系统
基本信息管理教学计划管理数据处理自动排课
留言板
用户管理关于我们教师信息教室信息班级信息课程信息任课信息查询或删除教学计划添加教学计划数据导出与查询打印信息基本信息教学计划课表信息导出到Word导出到Excel基本信息教学计划课表信息班级课表教师课表教室课表总课表自动排课清除排课添加留言查看留言管理留言修改密码管理用户信息帮助技术支持课表信息
图1 系统结构图 3.2 排课流程 自动排课系统的运行是在基本信息录入完毕之后进行的,基本信息包括教师信息,教室信息,班级信息,课程信息,任课信息,因此在排课之初,需要对基本信息进行正确的录入及处理。 进入到自动排课页面,页面首先会提醒用户选择要排课的学年和学期,选择之后单击确定进行排课,单击清除对已经存在的排课信息进行清除。 自动排课算法设计的排课流程如图2所示。 开始选择学年
按排课优先级任课表进行排序
查找无冲突的时间、教室和班级
查找无冲突的时间和班级
插入排课单元(学年、学期、课程、教师、班级、教室、时间)
NNNNY
YYY是否既指定时间又指定教室是否只指定时间是否只指定教室
结束查找无冲突的班级和教室
是否已排课选择学期查找无冲突的班级 图2 排课流程图 3.3 登录子系统 系统设有三级用户:学生用户、教师用户和管理员用户,登录系统时,系统将判断用户身份,根据用户身份的不同进入不同的功能界面。 3.4 用户管理子系统 本子系统的功能根据使用者权限的不同而有所不同。其具体的介绍如下所示。 (1)管理员用户:具有最高权限,其可以对各信息进行查看、编辑、删除、添加、导出和打印。另外作为实验室排课系统的最高级别用户,其可以进行自动排课,并能对排课进行清除。 (2)教师用户:教师作为教学活动的重要指导者和参与者,其可以对各信息进行查看、编辑、删除、添加、导出和打印。其主要特点是可以根据自身的需要指定教室,指定时间等,以提高排课的有效性。 (3)学生用户:学生是教学活动的重要参与者,在该实验室排课系统中,学生用户可以对相关部分信息进行查看、导出和打印,但是对各信息无权修改或者删除。学生用户拥有最低权 限。 4. 系统详细设计 4.1 母版页设计 实验室排课系统是一个基于WEB的系统,名称为LRS。 母版页可以极大地简化为站点创建一致外观的任务,ASP.NET2.0提供的母版页功能,为提高工作效率、降低开发和维护强度提供了有利的支持【2】。母版页设计界面如图3所示。
图3 母版页设计 在母版页中添加了Web用户控件top.ascx、menu.ascx、link.ascx、bottom.ascx。 (1)用户控件top.ascx用来显示页面顶部的logo、联系管理员、收藏本站、设置主页等内容。 (2)用户控件menu.ascx用来显示登录日期以及一些常用的链接。 (3)用户控件link.ascx用来显示到许昌学院和百度的友情链接。 (4)用户控件bottom.ascx用来显示与本系统有关的一些基本的联系方式。 4.2 登录页面设计 本系统的功能根据使用者的不同而不同,主要有三种用户:学生用户、教师用户和系统管理员。用户登录时系统将判断用户身份,根据使用者的不同进入不同的功能界面。登录界面设计如图4所示。 图4 登录页面设计 4.3 管理员用户功能设计 管理员用户作为实验室排课系统的最高权限管理者。管理员用户的管理模块主要有基本信息管理模块、教学计划管理模块、自动排课模块、课表信息模块、数据处理模块、留言板、用户管理模块和关于我们模块。 (1)基本信息管理 基本信息包括教室信息、教师信息、班级信息、课程信息、任课信息,管理员用户可以对此类信息进行查看、编辑、修改、添加或删除,其中教师信息管理界面如图5所示。
图5 教师信息管理页面 (2)教学计划管理 教学计划是实验室排课的重要依据,管理员用户可以对教学计划进行查询、添加和删除。 (3)自动排课 自动排课是实验室排课系统的核心,是系统开发和研究的关键所在。系统根据用户输入的教室、教师、班级、课程、任课、教学计划等信息,对各课程进行自动排课,并生成排课单元unit 表。 管理员可以选择要进行排课的学年、学期,单击“确定”开始排课,如果排课单元unit表中已经存在该学年学期的课程安排则显示提示信息,提醒用户此学年学期的课程已经安排过,否则进行排课,成功后提示用户排课成功信息。当基本信息发生更改后,管理员需要对课程进行重新安排,此时单击“清除”则可以对排课单元中已经存在的各信息进行清除。 (4)课表信息 根据课表使用者的不同,可以把课表分为教师课程表、班级课程表、教室课程表、总课表,其中教师课表如图6所示。
图6 教师课表 (5)数据处理 数据处理部分主要是对基本信息、教学计划信息和各课表信息进行的导出或打印等操作,其中导出包括导出到Word和Excel。教学计划导出与打印页面如图7所示。
图7 教学计划导出与打印页面 (6)留言板 实验室作为教学活动的一个特殊地点,对教学活动的正常进行起着不可或缺的作用,但实验室经常会遇见设备损坏或者由于用户使用不当而照成的软硬件不能正常运行等问题,此类问题单靠管理人员发现后再维护耗时长且不便,因此在这里设立留言板的作用不仅仅是为了给用户提供了一个交流平台,更重要的是提供一个用户