基于SpringBoot的智能排课系统设计与实现

文未可获取一份本项目的java源码和数据库参考。

(一)选题来源与背景

高校的每学期伊始,排课是教务处工作中的重中之重。安排合理无资源冲突(教师、教室和设备等教学资源)的课表是教务工作必须面临的问题。传统的人工排课是一项十分繁锁而复杂的工作。出现教室资源冲突或教师资源冲突的情况是令人最为担忧的问题,一旦出现冲突,则工作繁琐,调整的工作量巨大。高校的排课是教学管理中最基本、最重要、十分繁重而复杂的工作,它涉及到全校全部的专业,全部的师生和全部的课程,它的本质就是为所有的课程安排一组适当的教学时间和地点,使教学能够顺利进行。随着各高校的扩招,教师和教室源越发紧张,使得本来就有难度的排课问题更加困难。

(二)研究目的

为了保证教学质量,制定一套严密、规范的教学计划和执行合理的课程安排是高校亟待解决的问题。排课作为教务处日常管理工作中最重要也最复杂的部分之一成为国内外学者重要的研究课题。但是,在整个排课过程中,自始至终充满了冲突。它属于一类涉及多种因素的组合规划问题,它必须使课程安排中的教室、教师和学生不发生冲突,这是最基本的要求。在此基础上要尽量满足教师提出的其它要求和教室资源的约束。然而在人工排课过程中实现这样的要求是有一定困难的,而且工作量非常大,并且手工排课的缺点会日益突出。而计算机恰好能帮助解决这个问题,它具有自动运行、计算速度快等特点,只要有相应的智能化的排课系统软件,就能很好地解决排课的困难,实现教学管理智能化。计算机应用技术用于日常工作安排是目前科技发展的趋势,为减轻人类工作的压力,将繁琐的判断与运算交给计算机来做可充分发挥计算机的优势并大大减少人的工作量,是社会科技进步的表现。智能排课系统投入使用后,无需繁琐的人工安排,教务处只需设置好学校基本情况及排课要求,利用系统排出课程表就能应用于新学期使用。

(三)国内外研究现状

在国外,早在20世纪50年代开始了这方面的研究,并在理论上论述了课表问题是NP完全的。但由于现代计算机尚未找到解决NP完全问题的多项式算法,此后的研究便更多地转向经验方式。进入90年代以后,国外对该课题的研究仍然很活跃,对于排课问题已使用的算法有:关联规则FP-growth算法、基于时间位图迭加匹配算法、基于资源匹配的算法、分组优化决策算法、分支定界法、有限回溯法、拉格朗日松弛法、二次分配型法等。由于课表约束复杂,进行问题描述时往往导致问题规模剧烈增大。具研究表明利用运筹学中分层规划的思想将问题分解,将是一个值得研究的方法。

在国内,我国对这一问题也进行了许多研究,特别在应用方面也出现了一些好的排课软件,80年代初期出现了对课表问题的研究。南京工学院的UTSS(AUniversityTimetableSchedulingSystem)系统,清华大学的TISER(TimetableSchedulER)系统,大连理工大学的智能教学组织管理与课程调度和西安交大的排课系统等是该阶段中比较有代表性的系统。它们在实际应用方面起到很好的作用,是很好的人/机交互式排课系统。还有些市场流行的很多排课系统比如:相似排课CIS,plsn智能排课系统,正信华课程安排管理系统,排课博士,排课无忧等等,这些排课软件在解决排课问题时大多数采用的算法都是回溯算法,排课的效果也都很好。但是该阶段的系统大多是以“班”为单位,运用启发式函数等方式模拟传统的手工排课来进行系统排课的,或多或少存在着问题。这些系统共同的弊端在于:使用的局限性。系统设计时依赖于学校的教学体制。实际上,80年代初期国内研制开发的排课系统在实用性上并不尽如人意。系统的定制性强,但是可扩充性很差,难以广泛推广使用。目前,已有许多学者尝试将其他领域的理论(如人工智能等)引入到排课系统中,并给出了不同的解决方案。各高校也曾根据自身实际的教学体制开发了自身定制的排课系统,虽然这些系统排课周期长、排课员工作量大,但在真正的机器智能排课系统出现之前,这些系统基本可以完成高校的排课任务。

从目前情况看,无论国际还是国内,更为完整有效的自动排课算法还处于研究阶段。课程调度是教学管理最重要、最繁重的工作之一。科学地编制课程表,合理地进行课程搭配,适当地平衡师生负担,对稳定学校教学秩序,提高教学质量,有着重要作用。2000提出基于C/S的开放式智能排课系统的研制;用计算机辅助排课具有排课时间短、省人力和质量高的优点,设计了基于优先级的自动排课算法(Priority-basedCourseSchedulingAlgorithm,PCSA),本算法通过使用划分等价类、计算优先级等方法大大降低了课程调度的算法复杂度,实现了课程的合理编排功能;再如基于遗传算法的排课系统,遗传算法是一种借鉴生物界自然选择和达尔文的进化论发展起来。是一种随机搜索算法,并且非常有效的解决NP完全的组合优化问题,基于遗传算法解决在排课过程中的冲突问题。2006提出基于B/S结构的高校排课系统,系统采用的是目前比较先进的B/S网络结构,采用JSP动态网页技术开发工具,选用Mysql2000作为后台网络数据库,并详细介绍了系统的开发方案和相关技术的实现。由于排课问题是一个NP完全优化问题,该排课系统采用了遗传算法来搜索近似最优解。经过实验测试,认为本方法对实现高校网上排课,完善高校教务管理工作具有一定的参考价值;前后又出现基于贪心算法的排课系统、基于免疫算法的排课系统[6]等。但多数情况下对排课系统的数学抽象都过于简单而且有些不能符合实际情况。实际排课中非常规因素和干扰因素较多,特别是规模较大的高校,算法应用效果不佳。

(四)主要参考文献

[1] 费雅洁,许泓宁。基于 C/S 的开放式智能排课系统的研制[J], 沈阳电力高等专科学校学报, 2018年03期

[2] 曾光清 基于优先级的人性化排课算法研究[J] 信息与电脑 2019,16 (12) : 127 - 128

[3] 业宁,梁作鹏, 董逸生。一种基于遗传算法的TTP问题求解算法. 东南大学学报(自然科学版),2019(1):41-44

[4] 唐勇, 唐雪飞, 王玲。基于遗传算法的排课系统.计算机应用, 2017(1):93-94,97

[5] 基于 B/S 结构的高校排课系统的设计与实现.吉林大学, 2016

[6] 张晶,李广军等.智能排课算法综述[J].西南民族大学学报:自然科学版, 2019, 35 (3) : 675 - 678

[7] 王凤. 高效排课问题的图论模型及算法[J].计算机工程与应用, 2019, 45 (27) : 53 - 55

[8] 李振,王晓全,张子蛟,候跃生基于专家系统的交互式排课系统的实现. 郑州大学学

报工学版. 2018(4)

[9] 李玉吉,卢才武,刘冠.蚁群遗传算法在高校智能排课系统中的应用. 现代电子技术, 2019

年14期

[10]陆永祯,段慧坤,周芸, 等. SQL Server 2000 数据库管理和程序开发一周通[M]. 北京:中国铁道出版社, 2017.1

[11] Ronald J. Norman, Object-Oriented Systems Analysis And Design, Prentice-Hall, 2016.1

[12] Date C J. An Introduction to Database System(Ed.7) New York Computer Science Press ,2018.1

[13] Martin J. Principles of Database Management New YorkComputer Science Press, 2017.3

[14] S.Lidin. Inside Microsoft.NET IL Assembler, Redmond: Microsoft Press. 2016.

[15] Tsichritzis D CLochovsky F H. Data Models. Prentice-Hall2017.

(一)研究内容

系统包括课程信息管理模块:主要实现对所开设课程的相关信息的添加。教学任务信息管理模块:主要实现教研室对教师的教学任务安排。师教学工作量管理模块:主要实现教师教学工作量的提交和计算。自动排课功能,进行排课,模拟退火算法,排课智能化,尽量不手动调整,每次生成一个班的课表。

(二)研究思路

通过基于JAVA的高校智能排课系统的需求分析;进行数据库分析,设计数据库;构建程序模块图,根据高校智能排课系统模块图建立程序主体与框架;设计并实现各模块功能; 链接程序与数据库,调试运行;多次测试,直至程序稳定运行,完成系统设计。

(三)研究方法

(1)总体设计,确定软件系统的结构,对全局数据结构进行设计,进行模块划分,确定每个模块的功能及模块间的调用关系,生成结构图及概要设计说明书。

(2)详细设计,对智能排课管理系统进行设计和美化工作,并对局部功能结构进行设计,编写代码,生成源程序代码、内部文档,并对局部功能结构进行设计,调试,编写详细的设计说明书。

(3)系统测试,针对系统中的错误和缺陷,经过不断修改和调试,使所设计的系统更加完善。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144638.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】练习:控制语句(二)第1关

第1关:分支结构基础实训 第一题第二题第三题第四题(※)第五题(※)第六题第七题 第一题 #第一题 for temp in [-280, -100, 0, 20, 120, 200]:#请在下面编写代码# ********** Begin ********** #if temp>-273.15:F9/…

使用Rust直接编译单个的Solidity合约

这里写自定义目录标题 使用Rust直接编译单个的Solidity合约前言预备知识准备工作示例 使用Rust直接编译单个的Solidity合约 前言 我们知道,我们平常开发Solidity智能合约时一般使用Hardhat框架,但是如果你是一个Rustacean (这是由 “Rust” 和 “crust…

SpringBoot项目同时集成Mybatis和Mybatis-plus框架

1. 背景 Mybatis-plus可以生成CRUD,减少开发中SQL编写量,但是某些情况下我们需要多表关联查询,这时候Mybatis可以手写SQL的优势就体现出来了,在实际开发中,项目里面一般都是Mybatis和Mybatis-Plus公用,但是…

<<编码>> 第 14 章 反馈与触发器(8)--带预设和清零的触发器 示例电路

带预设和清零的边缘触发 D 型触发器 info::操作说明 将 “清零” 置为高电平可将 Q 置为 0; 将 “预设” 置为高电平可将 Q 置为 1; 注: 如果两者同为高电平, 则清零占优, 应避免同时出现 其余操作同上 primary::在线交互操作链接 https://cc.xiaogd.net/?startCircuitLinkhtt…

0基础跟德姆(dom)一起学AI 数据处理和统计分析04-Panda入门

* Pandas数据结构介绍 * Series对象 * DataFrame对象 * Series常见操作 * 常用属性 * 常用方法 * 布尔索引 * 运算 * DataFrame常见操作 * 常用属性 * 常用方法 * 布尔索引 * 运算 * 更改操作 --- 1.Pandas数据结构介绍 * 图解 * 解释 * **DataFrame…

STM32最小系统核心板-SZPT领跑团队-C4

目录 一、团队介绍 队伍介绍 二、stm32f103c8t6构成 (1)概要 (2)构成 三、电路设计 (1)电源电路 (2)晶振电路 (3)SWD接口电路 (4).复位电…

[Leetcode 543][Easy]-二叉树的直径-递归

目录 一、题目描述 二、整体思路 三、代码 一、题目描述 原题地址 二、整体思路 取一个结点的最大直径就是取一个结点的左子树最大深度右子树最大深度之和,因此可以定义一个递归函数,作用是取一个结点的最大直径。这个函数中还实现了求左子树最大深度…

Find My资讯|AirPods 4标准版充电盒无扬声器,Find My查找不会发出声音

苹果 AirPods 4 国行版标准版 999 元,主动降噪款 1399 元。标准版充电盒未内置扬声器,降噪版内置扬声器可用于查找功能。 苹果 AirPods 4 搭载 H2 芯片,引入计算音频技术,充电盒支持 USB-C 充电,体积比前代缩小 10% 以…

yolo车位数据集

停车场车位检测数据集是一个非常有价值的数据资源,它对于开发和训练能够自动识别停车位是否被占用的计算机视觉系统至关重要。以下是对这样一个数据集的详细介绍,以及如何使用这个数据集来训练YOLO(You Only Look Once)这样的目标…

nvm安装实现node多版本的切换

nvm安装实现node多版本的切换 方式一 下载安装包安装下载安装包解压安装设置 nvm 环境变量查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本 方式二 一键脚本安装下载安装查看 nvm 是否安装完成安装 node 环境切换 node 版本列出已经安装的版本nvm相关命令…

基于yolov5的不同颜色安全帽检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv5的不同颜色安全帽检测系统是一种利用深度学习技术,特别是YOLOv5目标检测算法的创新应用。该系统旨在提高施工现场的安全管理水平,通过实时识别和检测工人佩戴的安全帽颜色,实现对安全规范的精准监督。 YOLOv5作为一…

GeoGebra 與數學探索 3 GeoGebra 在微積分的探索與動態演示

Goal: GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索. “Talk is che…

记录|如何对批量型的pictureBox组件进行批量Image设置

目录 前言一、问题表述二、批量化处理更新时间 前言 参考文章: 一、问题表述 问题就是上图所示,这些的命名风格统一,只是最后的数字是不同的。所以存在可以批量化进行处理的可能性。 二、批量化处理 private void SetPictureBoxImages(){for…

VMware Fusion 虚拟机Mac版 安装CentOS8 系统教程

Mac分享吧 文章目录 CentOS 8 安装完成,软件打开效果一、Mac中使用虚拟机安装CentOS 8 系统1️⃣:下载镜像2️⃣:创建虚拟机3️⃣:设置虚拟机4️⃣:安装虚拟机5️⃣:设置成从磁盘启动 安装完成&#xff01…

数字病理图像处理:分割、合成与数据增强研究|顶刊精析·24-09-20

小罗碎碎念 今日精析:Medical Image Analysis 这篇文章介绍了一种结合了先进分割模型和生成对抗网络的病理切片图像分析流程,用于提高癌症诊断的准确性和效率。 作者角色姓名单位名称(中文)第一作者Muhammad Jehanzaib博阿齐奇大学…

在SpringCloud中实现服务熔断与降级,保障系统稳定性

在分布式系统中,微服务架构的应用越来越受欢迎。然而,由于各个微服务之间的依赖关系和网络通信的不稳定性,一个不稳定的服务可能会对整个系统产生连锁反应,导致系统崩溃。为了保障系统的稳定性,我们需要一种机制来处理…

支持异步线程自动传递上下文(例如当前请求)的工具类(支持自定义上下文传递逻辑,支持拦截所有异步操作)

文章目录 支持异步线程自动传递上下文(例如当前请求)的工具类(支持自定义上下文传递逻辑,支持拦截所有异步操作)使用示范ContextSupportedAsyncUtil .java自动拦截所有异步线程池操作ContextSupportedExecutorAspect.j…

【C++】——多态

文章目录 多态的概念多态的定义和实现虚函数虚函数的重写(覆盖)虚函数重写的例外 override 和 final关键字重载、重写和重定义(隐藏)纯虚函数和抽象类多态的原理动态绑定和静态绑定 多态的概念 多态就是多种形态,在执行某个行为时,当不同对象去完成时&a…

九章云极交付总监徐阳受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京九章云极科技有限公司基础设施中心交付总监徐阳先生受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾,演讲议题为“进阶卓越:自我培养备受需求的项目经理的实战策略”。大会将…

靠AI视频在短视频平台接单月入过万,她怎么做到的?AI视频真的来了

大家好,我是画画的小强 相信大家和我一样,从小也有一个导演梦,感谢AI时代,替我完成了这个梦想,如果你想知道如何实现的,今天这篇文章,你一定要看完! 从去年11月份起,随…