




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 引言 开发背景 随着信息技术的飞速发展,各个行业的信息化势在必行。科技的进步大大地提高了生产率。作为高校,如何才能提高办学效率,更好地完成教学任务,跟上社会发展步伐,这是一个摆在教学工作者面前的一个迫切的问题。应用信息化来改造传统的教学管理模式是一个重要途径 1。 近几年来,随着各高校办公自动化工作的推进,教务管理自动化也被摆上了日程。在教务工作中占有很大比重的一项就是每学期的课程表排定工作。由于教工、教室和设备的相对紧张,如何进行合理地安排和分配,从而充分利用教学资源是我们不得不面对的问 题 2。而人工进行排课不仅任务重,效率低,而且易出错,难于维护,想要排出一张各方面都满意的课表非常困难。并且随着高校规模的扩大手工排课的难度和工作量呈几何级数增长 3。 在实际的应用中,很多研究者都提出了各种解决排课问题的方法,由于排课问题的复杂性,还没有找到有效的算法能获得 全问题的最优解。因此,如何运用近似算法和新的软件技术来降低排课问题的计算复杂度,仍然是颇具挑战性的研究方向 4。 排课管理系统是利用数据库管理系统开发的一种应用系统 ,其开发主要包括数据库的建立,充分满足正常的题库管理的前提下 ,提供了多角度的题库信息查询和题库信息分析报表,使学校管理人员可以随时掌握学校的排课情况,进一步指导学校的教学。真正实现了业务一体化,为学校全方位的信息化管理奠定了基础 5。 传统的人工排课使用手工操作存在许多弊端,如重复劳动严重、效率低下、且不能达到资源的最优化配置等,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。最令人担心的问题就是 出现教室资源冲突或教师资源冲突的情况,而且工作繁琐,工作量巨大 ,尤其是在给大学校园进行排课时出现的问题更多 6。当前高校教务管理所涉及到的信息资料 数量大、类型多,还可能带有大量的统计输出,同时学校规模的不断扩大和招生人数的逐年攀升导致传统的排棵手段已无法满足现代化管理的要求 7。 在教学计划的不断完善和各高校校园网建立的大背景下,设计满足高校教务要求的排课系统显得十分必要。而据了解,排课管理是高校教务处重复性比较强且急需得到解决的工作, 且排课系统有安全性要求高、交互性强、处理数据量大等人工难以实现的特点 8。 因此设计一个基于校园网络的人工智能化且操作简便的排课系统是高校教务管理信息系统实现的首要条件,同时也是一大难点,因为排课管理要求综合考虑 教师、课程、班级、教室、时间等诸方面的因素,统筹兼顾,使课表既符合教学规律,又能够充分利用现有资源使其最大限度地发挥作用 9。 国内外研究现状 早在 20世纪 50年代末,国外就有人开始研究课表编排问题。 1963 年, 由于排课问题易受实际问题的影响,求解结果也不理想 10。 20 世纪 70年代,美国人 就证明了排课问题是一个 算法的时间复杂度呈指数增长。 论证正式确立了排课问题的学术地位,把人们对排课问题的认识提高到了理 论高度 11。此外,有些文献试图从图论的角度来求解课表问题,但是图的染色体问题也是 全问题,只有在极为简单的情况下才可以将课表编排转化为二部图匹配问题 12。 在国内,在 20世纪 80年代初期,国内学者开始用从模拟手工排课,也有人工智能构建的专家系统等等,具有代表性的有:南京工学院的 统,大连理工大学的智能教学组织管理与课程调度系统等。这些系统大都是模拟手工排课过程,以“班”为单位,运用启发式函数来进行编排的。 但是这些课表编排系统往往依赖于各个学校的教学体制,不宜于进行大量推广 13。 2 相关技术介绍 介 用 须首先确定应用程序如何与用户交互,如鼠标单击,用户必须编写代码控制这些事件的响应方法。 使用 ( 1) 建立数据库 ( 2) 建立用户界面 ( 3) 编写代码 ( 4) 调试运行 ( 5) 编译应用程序 ( 6) 发布应用程序 界面设计 ( 1) 控件的位置 ( 2) 界面元素的一致性 ( 3) 保持界面的简明 ( 4) 使用颜色和图像:增加视觉的感染力 ( 5) 图像和图标:增加应用 程序的视觉上的趣味 ( 6) 选取字体 由于 以应用程序的代码结构就是该程序在屏幕上物理表示的模型。根据定义,对象包含数据和代码。在屏幕上看到的窗体代表属性,这些属性定义了窗体的外观和内在特性 14。 000 简介 本系统所用 000 的特性包括: 成 ; 署和使用。 同时本系统使用 000 个人版 ; 其特性为: (1)高性能 设计,可充分利用 (2)系统管理先进,支持 形化管理工具,支持本地和远程的系统管理和配置。 (3)强壮的事务处理功能,采用各种方法保证数据的完整性。 (4)支持对称多处理器结构、存储过程、 具有自主的 言。其内置的数据复制功能、强大的管理工具、与 紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台 15。 介 受广大程序员的喜欢,因 为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的 一个小型的轻量级应用服务器, 在本系统中 当在一台机器上配置好 务器,可利用它响应对 面的访问请求。实际上 分是 务器的扩展,但它是独立运行的,所以当你运行 ,它实际上作为一个与 立的进程单独运行的。 当配置正确时, 面服务,而 际上运行 面和 外, 有处理 面的功能, 同时 它还是一个 器,独立的 器是 默认模式 16。 3 需求分析 系统的主要功能 1 掌握学校所有的课程和教师的信息。包括每门课程的时间、班级以及任课老师的姓名等。 2 针对不同的人员授予不同的权限。提供灵活的浏览、查询功能。可以查看某个系、某个班级所有课程的信息。 3 可以对一个或多个班级进入课程管理与排课表管理,可以不限次的生成该班级课程表。 4 可以对课程进行变动管理。既可以手工排课,又可以实现自 动排序功能。 5 帮助系统维护可以实现:操作日志、重新登录、打印设置(包括统计各种报表及打印等)、退出等操作。 6 提供一种或多种课程表输出功能,并使用活动的模板输出功能,输出样式可以由用户自定义。 7 实现功能全面化,由于每个学校或班级的每天课程数目或时间都不太一样,实现智能计算总课程数目和管理对应的时间段,并且根据每门课程的独立分布式来进行排列(例如:大学语文自动排列的分布方式可以是周一至周六,那么系统就会自动将其平均分布在周一至周六这些天里) 。 8用户管理:设置两个级别用户:管理员和普通用户,管理员有 权限操作系统中的所有数据,普通用户只能以执行查询,输出之类的功能,无法对系统进行实质性的操作,用户使用本系统之前必须先通过身份认证(用户级别、用户名和密码,密码输入有次数限制,连续三次输入错误密码则锁定该用户) 。 排课的约束条件 在我的排课系统,主要对不同类型课程进行等级划分,排列出课程的排课优先级别,通过优先次序对不同类型的课程使用不同的算法进行排课,能够非常方便地处理各种排课约束条件的限制。 例如教师和教室冲突、班级冲突、教师上课时间和地点选择、分层次教学、单双周排课、一课多教师教学 和 课程连上 等各种各样的约束。同时该系统还能够非常迅速地得到排课结果,例如排一千门课只需几分钟时间等一系列问题 。 系统所需 硬件环境 ( 1)处理器 : 建议使用酷睿 2 ( 2)内 存: 1G 以上 系统所需 软件平台 ( 1)操作系统: P ( 2)数据库: 003 ( 3) 务器 : 4)浏览器: 推荐使用 360 安全浏览器 4 系统总体设计 设计思想 本系统采用各班级独立划分管理,所有教师均可为任何班级服务,各班级根据每天课程数目来进行自 动排序,同时各教师允许教学多门课程,因此为了每名教师配置了时间占用表,只要与班级对应的时间空间表未被占用,都可以参与排课,并根据用户定义的要求排出课程。 数据管理类:由于班级,时间,教师,课程等信息都需要一个活动的管理过程,因为在节省资源的情况下,将各数据所需要的代码合并在一起进行编写和使用。 图 据管理 系统功能模块划分 教务 排课系统在功能上分四个模块,如图 图 系统功能模块划分 老师管理 班级管理 课程管理 时间段设置 用户管理 课表生成 排课设计 学生管理 教务排课系统 管理与维护 排课算法设计 排课结果查询 课表调整 数据库结构的设计 利用 管理排课资源、排课约束条件等信息,利用数据库技术来实现设置排课优先级、课时和时间段的匹配以及处理排课资源的冲突,从而实现自动排课的目的。 主要包含的数据实体有:专业、课程、教师、教室、课程表等。实体的具体属性如下: ( 1)专业信息包括:专业代码、专业名称; ( 2)课程信息包括:课程代码、课程名称、课程类型、总学时、每周课时、任课教师、开课院系、授课班级(专业)、上课人数、约束条件等信息; ( 3)教师信息包括:教师代码、教 师名称、所属院系、约束条件等; ( 4)教室信息包括:教室代码、教室名称、教室类型、教室地址、容纳人数等; ( 5)课程表信息包括:课程代码、专业代码、教师代码、教室代码、上课时间等。 5 系统详细设计 登录系统设计 设计说明 :进入主界面后 ,等待操作用户输入用户名和密码 ,在输入之后按确定进入 ,验证用户名和密码 ,实现流程 : (1) 检测数据库中有无管理员 账号, 如果有 ,则等待用户输入用户名和密码 ,否则按程序本身自动执行插入命令 ,新建一个管理员用户 ,并等待用户输入 . (2) 验证用户名和密码是否正确 ,错 误次数不能超过三次 ,超过三次则退出系统登陆界面 (3) 当验证通过后 ,检测该登陆用户的管理权限 ,并设置变量传值给主窗体 图 录系统流程图 主界面 及 课表生成 设计 班级管理 设计 模块设计说明:班级的操作部分是排课程序正常执行的重要部分,班级的添加不允许有同名的班级出现,而修改也不能做到修改班级名,班级名称将作为不可修改的数据部分,而删除部分,在删除之前必须保证该班级的课表是否已经生成,如果是,则需要注销课程表,这样做是让该 班级生成的课表占用教师空间的部分全部返回,这样不会使教师的空间被反复占用,而最终导致错误发生。 登录界面 输入用户名和密码 验证账号和密码 退出系统 登录排课主界面 Y N4 图 级管理流程图 班级课程处理设计 图 级课程处理流程图 模块设计说明:课程数据的添加,修改或删除都会影响到已生成课程表的返回,因为在操作之前必要保证课程表属于未生成状态,如果当前为生成状态,则需要注销课程表,这样才可以继续操作。 班级管理 添加 保存 修改 删除 返回 输入数据 验证重复 执行保存 班级课程处理 课程是否生成 提示并返回操作 添加 保存 输入数据 删除 修改 执行保存 验证重复 N Y 注:已生成课程表的返回:由于课程表排列 好后,对应的课程后教师的排课占用表都会有标记标明,如果这时修改了某此数据后,这教师的占用表并没有恢复到未生成状态,这样就会导致不可预知的错误发生。 课表生成部分 设计 图 课循环流程图 模块设计说明:此处将执行的数据分成很多小部分来执行,这样做可以在测试中便如发现问题,因为排课系统的要求非常高,所以在程序实现方面是以由简到繁的过程。 (1)排课中要求的每周课程数相加不能超出定义的课表范围,否则也将会出现死循环。 (2)列出对应课程教师的未被占用的排课列表和班级的课程占用表。 (3)穷举法列出以上两者之间的共通点,可用点。 排课循环 C D F 是否再次循环 G 退出 C:当前所排课程与当前班级的可排课位置生成 D:获取随机的值来计算课程表上对应的横向与纵向坐标 F:根据用户的设置来确定允许排课的课节数(例如:允许同一课程两节课速派,则可以进行某个操作步骤),根据当前的需要,目前只开发 2节课速排与单节课排列。 G:在当前课程 当前节排列成功后,将会在该课程的教师的课程占用情况与班级的占用做修改,做个标记 次数取决于课程总数 2 节课连排 2 节课连排 (4)最后通过循环随机选择来实现课程的定位与排列。 (5)课程定位中不允许每天有相同的课程重复,并按规定来执行按什么样的格式来排列,例如两节连排,也就是说可以把该课程在同一天排在一起,可以实现两节课连上,这是大学课表里最常用的一个功能。 图 表生成流程图 报表输出功能 设计 模块设计说明:此处采用了两种输出方式,第一种是普 通的报表方式输出,可以实现一般的打印预览等功能,第二种则是采用模板功能,用户可以自由修改模板,前提是不可以更改数据位,其它的部分无论如何修改都没有关系。 生成课表 显示课程 A 进入排课循环 排课完成并退出 退出 注释: A:每周课程数是否大于课程表的表格数 B:退回以前曾生成的课程表,此操作达到将各位老师和该班级的排课占用情况返回到未生成状态 Y N 图 表输出流程图 数据表设计 在使用 建“排课管理系统”数据库系统中需要建立的数据表如下所示 : 1 课程信息 表 程信息表 字 段 数据类型 字段大小 必填字段 索引 允许为空 课程名 文本 50 否 有 (无重复 ) 否 课节数 数字 长整型 是 无 是 每周课数 数字 长整型 是 无 否 需要周数 数字 长整型 是 有 (有重复 ) 否 任课老师 文本 50 否 无 否 两节课累排 文本 50 否 无 否 课程分布 文本 50 否 无 否 所属班级 文本 50 否 无 否 报 表输出 板输出 a b 打印 退出 a 是否打印 打印 返回操作 N Y a:通过班级来获取对应的生成课程表数据并赋值给某个打印变量或数据集 b:打开 体,并在其中显示报表窗体,将该表的数据源定义为 a 所赋值的语句变量 保存临时文件 获取模板并复制 数据填入临时文件 2 用户登录 表 统登录表 字段 数据类型 字段大小 必填字段 索引 允许为空 用户名 文本 50 是 无 否 密码 文本 50 否 有 (无重复 ) 否 权限 文本 50 是 无 否 3 课程名 表 程名表 字 段 数据类型 字段大小 必填字段 索 引 允许为空 课程名 文本 4 否 有 (无重复 ) 是 教师姓名 文本 50 是 无 否 4 临时生成表 表 时生成表 字段 数据类型 字段大小 必填字段 索引 允许为空 时间段 文本 50 是 无 是 星期一 文本 50 否 无 是 星期二 文本 50 否 无 是 星期三 文本 50 否 无 是 星期四 文本 50 否 无 是 星期五 文本 50 否 无 是 星期六 文本 50 否 无 是 星期日 文本 50 否 无 是 所属班级 文本 50 否 无 是 自动编号 自动编号 是 无 否 5 课程占用表 表 程占用表 字段 数据类型 字段大小 必填字段 索引 允许为空 班级 文本 50 是 无 否 占用 文本 50 否 有 (无重复 ) 否 6 系统日志 表 统日志表 字段 数据类型 字段大小 必填字段 索引 允许为空 用户名 文本 50 是 无 否 时间 文本 50 否 无 否 操作记录 文本 255 否 无 否 7 系统设定 表 统设定表 字段 数据类型 字段大小 必填字段 索引 允许为空 每天课数 数字 长整型 是 无 否 其它模块设计 此处几个模块是经过资源优化将其与班级管理整合在一起的,此处工作流程基本上与班级管理的流程相同。 6 系统 的实现 调课功能的实现 及设计说明 由系统自动排课生成的并不一定能完全达到用户所想需要的效果 ,虽然在程序中解决了系统冲突的出现 ,但是因为某些原因而出现临时的原因都需要进行调课 ,因此排课系统中除了自动生成课表还必须有很灵活的调课功能才能让系统更完整 ,也 方便 使用 。 图 课流程图 此处调课是事先获取系统有用资源空间 ,并在图表中进行背景色变色显示 ,提示用户该门课程可以调动至变色显示的地方 ,主要是通过班级的课程占用与该教师的排课占用情况进行对比 ,寻找有利和适用的位置 ,并等待用户进行调课操作 。 执行调课 :在进行以上操作后 ,计算机自动等待用户选择系统列出的调课点 ,在选择某调课点后 ,系统自动清除数据库的中该课程的教师与当前班级该处资源占用情况 ,并同时清除图表中的资料 ,将其重新放置到新位置 ,并修改新地点的资源占用情况 ,最后将图表的可调位置背景色还原回正常状态 。 核心代码 系统自动排课代码: /调课 获取课程资料 获取教室对应资源 查询可调点 使可调位置变色 ;/班级号 ; ); / ; ; ; = ); 第一页 ,0); ; = ,0,星期 ); = ,0,日期 ); = ,0,剑锋 ); = ,0,秋静 ); = ,0,秦少游 ); l: l); /输出日期 i=1;i / 已经排成的时间段 / 设置老师 001, 剑锋 ); 002, 秋静 ); 003, 秦少游 ); ; / 设置上课班级 601, , 20); 602, , 25); 603, , 19); ; / 设置课程 001, 29, 6); 002, 35, 6); 003, 51, 6); ; / 设置上课教室 001, 实 验楼 303, 50); 002, 南方商务大厦 , 40); 003, 先锋公司 , 30); ; 目前排课的资源情况如下: ); 教师情况 ); t : 教师 + + 教师姓名 : + ); 教室情况 ); 教室 + + 教室名称 : + + + ); 课程情况 ); 课程 + + 课程名 ,计算机范文网 : + + 课时数: + + 每周课时 + ); 班级情况 ); c : 班级 + + 班级名称 : + + 班级人数: + ); / 排课流程 t) if(t= if(t= if(t= = ();/ 放原教师空闲时间 );/ 求教师与学生时间交集 ;/ );/ 取出教师和学生的一定次数的随机组合 ()()();/ 放原教师空闲时间 );/ 求交集 ;/ );/ 取出教师和学生的一定次数的随机组合 ()()();/ 放原教师空闲时间 );/ 求交集 ;/ );/ 取出教师和学生的一定次数的随机组合 () / 输入课表方法 t) if(t= if(t= if(t= ; + 的课表详情排列如下: + 课程名称 : + ); 班级名称: + + 教室名称: + ); s : s); 班级名称: + + 教室名称: + ); s : s); 班级名称: + + 教室名称: + ); s : s); / ; 1 ); 3 ); 5 ); 7 ); 1 ); 3 ); 5 ); 7 ); 1 ); 3 ); 5 ); 7 ); 1 ); 3 ); 5 ); 7 ); 1 ); 3 ); 5 ); 7 ); / ); 系统的管理与维护 将排课中涉及到的院、系、教研室、教师、 班级、教室等事物的信息录入到系统数据库中,并能修改、查询和删除。 不同角色的用户登录系统后,看到的用户界面不同,用户能操作的功能菜单也不同 。 7 结论 设计总结 1. 本程序使用了新型控件 控件 的双色表格与单元格的特殊赋值功能不但能带给用户最好的视觉感受,同时在操作时大大减少了手动输入操作,因此也为非计算机人员的可操作性带来很大的方便。 2. 采用独特的资料占用排除方法来生成所需要的课程表,使课程表生成速度加快。 3. 支持很方便的课程,用户等模块的添加,修改,删除等过程。 4. 使用定位查询,只要选择对应的班级,就可以找到对应的内容,班级就是一个整体,通过班级来寻找所想要的数据会实现的更为简便。 5. 特殊的课程表输出功能,大大减少了课程表输出时的格式局限性,只要修改的模板,就可以打印出你想要的效果来。 程 序的不足: (1)对排课来说,各个学校都有着不太相同的排列方法,有每天的课节数,允许课程连排数,时间段等等,而这些方法转换为计算 机语言时,往往会因为这样那样的限制而造成死循环或者程序速度缓慢。 (2)由于排课实现功能复杂,程序中也许有不可预知的错误未测试出来,所以这也需要长时间的进行测试才能发现并修复问题。 (3)受开发条件和开发时间的限制,本系统只利用了本地数据库同应用程序处于同一系统中,能存储的数据量也有一定限制,并没有发挥出 设计心得 本系统 是在刘变莲老师的带领下,同时在许多同学和老师的帮助下完成。由于我没有什么开发经验,对相关技术掌握的不是很牢等,本系统存在着很多尚未解决的问题,可以说是本系统稚气未脱,显得不是那么成熟。 首先,系统模块之间的整和不好,按软件工程的要求,是要做到高内聚、低耦合。本系统还没有达到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版全新商铺租赁终止合同
- 光伏佣金合同样本
- 体育课教案:武术
- 人教版小学四年级上册音乐全册教案
- 买水果 合同范例
- 股权代持协议书及授权委托书
- 人教部编版高中语文上册喜看稻菽千重浪教案
- 入股餐馆合同样本
- 安防监控合同
- 为规范合同范例
- 2024-2025学年人教新目标英语八年级下册期末综合检测卷(含答案)
- 331金属晶体课件高二化学人教版选择性必修2
- 矿山矿石采购合同模板
- 2024年浪潮数字企业技术有限公司社会招聘(105人)笔试核心备考题库及答案解析
- 第47届世界技能大赛江苏省选拔赛竞赛技术文件-混凝土建筑项目
- 2024年新人教版四年级数学下册《第6单元第2课时 小数加减法》教学课件
- 国开2024年《数据库运维》形考1-3
- 劳动合同(模版)4篇
- 137案例黑色三分钟生死一瞬间事故案例文字版
- 药物研发监管的国际协调
- 生猪屠宰兽医卫生检验人员理论考试题及答案
评论
0/150
提交评论