基于JSP+sqlserver的高校智能排课系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于JSP+sqlserver的高校智能排课系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦
文章目录:
1、项目简介
-
随着我国科学技术的进步和综合国力的增强,计算机在我们学习生活中有着越来越多的应用,我们对计算机的依赖也越来越强烈。可以说,离开了计算机我们的日常生活都不能得到保证。然而,在计算机如此普及的今天,有一些领域却还没有广泛应用这个强大的工具,比如说学校的排课。为此,我们开发了这个高校智能排课系统,旨在能为学校解决一点实际问题,同时积累一点开发经验,为以后的功能完善打下一定的基础。
-
本系统一共由四个人完成,对于几个即将毕业的大学生。开发经验不足是最大的问题。在开发过程中我们本着积极的学习精神,遇到问题迎头而上,解决问题后又倍感欣慰。同组的几位同学有着较强的团队合作精神,相互之间讨论、解决问题的合作精神更值得称赞。指导老师吴志诚积极负责,引导和监督我们的开发过程。
-
这几个月的系统开发时间里,我们学到了很多。我们能在以后的工作学习做了一个好的开头。并能将这种不怕困难的精神坚持到底。
2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9040个字21页
包含内容:全套源码+配整论文
3、关键词
排课算法;排课系统;智能;课表调整;JSP;4、毕设简介
提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。
第一章 绪论
1.1 项目背景
排课是每一个学校必须面对的问题,以前各学校的排课都是通过手工排出来了,不仅效率低,而且可变更性差,通常是经过很多次调整后确定的,给教学工作带来极大的不便。在计算机被广泛应用的今天,我们要充分利用计算机的优势,不仅大大提高了工作效率,而且提高了排课的可重用性。使排课不再成为各学校的难题。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了利用计算机进行排课而设计的。
1.2 本文所作工作
第一章是绪论部分,分析了智能排课系统开发的背景,正确定位本系统。
第二章介绍了开发本系统的相关技术,主要有:JSP、JDBC、MVC模式和Web Work。为系统的开发提供了技术支持。
第三章是排课系统的需求分析,简单介绍了本系统的作用、使用现状、和开发预想。
第四章根据第三章的需求分析结果进行了总体设计规划。这一章将详细介绍本系统的功能和设计细节。包括系统功能模块设计和数据库设计。
第五章着重介绍了调整与调度模块的详细开发过程。这一章是本文的重点。
第六章对系统介绍了运行平台级平台搭建过程。本系统是在JSP+SQL Server 的基础上开发的。
第七章分析了系统现在存在或将来可能出现的问题,为系统的茁壮成长定下调子。
第二章 相关技术介绍
2.1 JSP简介
本系统的开发语言为JSP,作为一门随同Java发展起来的技术,JSP有着它独特魅力,成为广大系统、网络开发者的最爱。
2.1.1 JSP开发背景及发展趋势
就目前的现状和发展趋势来看,Internet已经全面深入的渗入人们的日常生活中,并且人们对于它的这种依赖只会加强,而不会减弱。使用网络对很多人来说已经不再是一个新事物,电子商务、信息查询、交友聊天等诸多实际需求的出现,是人们早已不再满足于Web 技术发展初期的由文本、图形、和超链接组成的静态信息的发布与交流,为了扩展它的功能,我们需要将Web技术和数据库连接,是用户得到更多的信息和有用数据。人们希望网络编程语言简洁、易懂、功能强大,更希望Web技术能做到和操作系统无关,使开发出来的产品可重用性和可扩展性得到更大的发挥。在这种大背景下,JSP应运而生了,它很好的解决了上述问题,因此,JSP与ASP、PHP共同成为当今Web编程的三大主流技术,但JSP在网络安全性、高效性等方面比其它两种做得更好,可以说JSP必将取代其他两种技术。
2.2.2 JSP编程的特点及优势
JSP是英文Java Server Pages的缩写,它是Sun公司开发的一种新型动态网页编程技术。JSP源代码能直接插入到HTML中,只需要在代码前后加上<%…%>作为标志就行了,由于JSP技术是从Java编程语言中的Servlet技术扩展而来,因此它成功的实现了动态页面和静态页面的分离以及程序代码与硬件平台的无关性。
JSP为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器,应用服务器,浏览器和开发工具共同工作。 JSP规范是Web服务器、应用服务器、交易系统、以及开发工具供应商间广泛合作的结果。在传统的网页HTML文件(htm,.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.JSP)。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无Java Applet,甚至无Frame。
JSP技术在多个方面加速了动态Web页面的开发:
2.2.1.1 内容的生成和显示进行分离
使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。
2.2.2.2 强调可重用的组件
绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
2.2.3.3 采用标识简化页面开发
Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用Java技术家族的一部分,以及Java2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为Java Servlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。作为Java平台的一部分,JSP拥有Java编程语言"一次编写,各处运行"的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。当与Java 2平台,企业版(J2EE)和Enterprise JavaBean技术整合时,JSP页面将提供企业级的扩展性和性能,这对于在虚拟企业中部署基于Web的应用是必需的。
2.2.4.4 技术分析
Microsoft 公司的 ASP 技术也是动态网页开发技术。JSP和ASP从形式上非常相似,ASP程序员一眼就能认出<% %>以及<%= %>。但是深入探究下去会发现它们很多的差别,其中最主要的有以下三点:
1、JSP的效率和安全性更高
ASP以源码形式存放,以解释方式运行,每次ASP网页调用都需要对源码进行解释,运行效率不高。另外,IIS的漏洞曾使得许多网站源程序大曝光,包括笔者以前用ASP开发的网站,ASP程序全部被人下载了去。JSP在执行以前先被编译成字节码 (byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的Cache机制,能提高字节码的访问效率。第一次调用JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了。同时,JSP源程序不大可能被下载,特别是JavaBean程序完全可以放到不对外的目录中。
2、JSP的组件 (Component) 方式更方便
ASP通过COM来扩充复杂的功能,如文件上载、发送email以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过JavaBean实现了同样的功能扩充。在开发方面,COM的开发远比JavaBean复杂和繁琐,学会ASP不难,但学会开发COM可不简单。而JavaBean就简单多了,从本文上述示例中可以看出开发JavaBean很方便。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。JavaBean则不需要注册,放在CLASSPATH包含的目录中就行了。如果JavaBean进行了修改,则JSWDK和Tomcat现在还需要关闭和重新运行(但不是关机),但开发者已经许诺将在以后的版本中做到不需要关闭服务器。另外JavaBean是完全的OOP,可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库,例如用户权限控制、email自动回复等等。
3、JSP的适应平台更广
ASP目前仅适用于NT和IIS。虽然Unix下有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。
JSP的具体执行过程如下:
1、由客户端的浏览器,以超文本形式通过表单向Web服务器提出请求。
2、服务器得到客户端的请求后,由Web服务器上的JSP引擎把JSP代码、组件、Java脚本以及HTML代码,转换为Servlet代码。
3、JSP引擎服务器端的Java编译器对Servlet代码进行编译
JDK执行编译文件,并向客户端发送HTML文件
2.2 JDBC简介
JDBC是执行SQL语句的Java API。JDBC即“Java Database Connectivity”(Java数据库连接),它由一组用Java语言编写的类与接口组成,已成为一种数据库连接的标准。
2.2.1 JDBC 概述
计算机环境的分布式意味着在分布式环境中的每一个节点都是一个小的计算机单元。客户机/服务器(C/S)技术是分布式的一个例子。在它的核心层上,客户机是需求者,服务器是给予者。但并不是说,客户机就不能够创建新的信息发送给服务器;大多数情况下,很多的客户机连接到一个服务器上。这个服务器是一个典型的包含所有信息的资源库(因此有了数据库这个术语)。
C/S可以根据许多计算的要求给出各种各样的方案。Java完美地集成了C/S模式。网络可能代表着一个最好的例子,从某种角度讲它就是一个分布式C/S环境。另外,Java正努力改进以便更容易开发C/S程序。JDBC是Java新增加的内容之一,它几乎使得任何种类的C/S实现更容易。
JDBC是一套API集合,该集合设置了许多允许Java程序连接数据库的框架。JDBC操作在某些方面看起来和ODBC一样。区别是ODBC不能在Java程序中直接实现,原因是ODBC是用C语言写的。然而JDBC提供了JDBC/ODBC之间的桥梁。使用JDBC可以很容易地把SQL语句传送到任何关系数据库中。JDBC的基本功能包括建立与数据库的连接,发送SQL语句和处理结果。
JDBC提供了连接数据库的几种方法:
·与数据源直接通信
使用JDBC和数据库已制定的协议时,可使用一个驱动程序直接与数据源通信。既可以建立自己的驱动程序,也可找一个公用的。
·通过JDBC驱动程序的通信
可连接到一个高标准的驱动程序上,该驱动程序依次与另一个可与数据源通信的专用驱动程序通信。
·与ODBC数据源通信
一个公开可用的专用驱动程序是JDBC/ODBC桥梁驱动程序,它是Javasoft公司开发的,允许应用程序与ODBC数据源相连。
2.2.2 JDBC的设计目标
JDBC设想为建立数据库连接从Java内部填补一个调用级SQL API的空白,因此其核心在于执行SQL语句,然后接收其结果。JDBC API由多个抽象的Java接口组成(在 Java中,一个接口如同一个类),以满足标准的数据库查询需求,如连接到特定的数据库,执行SQL语句以及处理查询结果。以图形表示如下(图2-1):
图2-1 JDBC连接数据库方式
两个模型说明了分布式计算环境的分类,在其中可以使用JDBC。第一种情况是有一个大的数据库并希望有直接连接到该数据库的程序。这是一个两层模型,其中,有一个下载的程序,由其直接连接返回到数据库,处理查询并为用户提供结果。当在一个安全的环境中运行时,该模型往往是恰当的,例如一个内部的Intranet,在其中允许Java程序直接与数据库通信。当数据库是只读时,该模型也很适宜。
作为选择,三层模型有一个以Java编写的应用服务器作为访问数据库均媒介。在这种情况下,可以下载一个与Java应用服务器通信的Java程序,Java程序又转而与相关数据库通信。当需要额外的约束条件、额外的语义以及不容易直接向数据库表达的数据库访问时,该模型尤为适宜。JDBC的一个主要目标是既支持两层模型也支持三层模型。
第三章 需求分析
高校的课程,教师,教室的安排是比较复杂的,有些老师所带的课程有多门,可能会跨越新老校区。有些院系在新老校区都有班级,更加增加了排课的困难。如果采用人工排课,这无疑是一项比较繁重的工作,人工排课有很多问题存在,比如说排课随机性比较大,没有一个严格的规定。人工排课会消耗大量的工作时间,排课过程也是一个不断修改、尝试的过程,有些排课不太合理的地方往往要等到上课时才能发现,给老师、学生带来了极大的不便,这就降低了教学效率。
3.1 排课系统使用现状
目前有些学校也使用计算机排课,在这些学校中,以小学为多,小学的排课比较简单,容易实现。中学的相对来说比较复杂,但也有比较多的学校使用计算机排课,但并未在一个比较大的区域内形成一个统一的使用规范。在各高校中,情况就更为复杂了,首先各高校的情况不尽相同,比如校区、院系、教学楼、教师等都各有差别。因此,要在目前还没有公司或高校能开发出一个软件能排出所有高校的课程,即使一部分高校在使用排课系统,可以说它还不是智能的,或只适合本校或一部分学校。智能二字只是一个强加上去的。
再从已开发出来的排课系统来看,绝大多数是采用C/S结构,即客户端/服务器结构。这种模式缺点就是灵活性差、升级困难、维护工作量大,当客户访问量增加时,会极大的降低访问速度。而本系统采用的是B/S结构,这种结构优点在于 :(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。所以,随着Web技术发展的日益成熟,排课系统的C/S结构必将被B/S结构代替。
3.2 本系统的主要作用
我们学校的排课都是使用半人工半计算机的方式排出来的,都是经过反复的修改、尝试。因此效率不是很高。开发并使用排课系统,是我校要解决的当务之急。本系统正是顺应了学校的这一要求,严格参照本校的具体情况而开发的。所以本系统的功能模块的设计、代码的开发都是紧密结合校情的。改善本校的排课现状、提高排课效率是本系统的要求之一。如果系统在本校运行成功,以后可以扩充其功能,使之能适应一部分高校的排课情况。
第四章 总体设计
4.1 系统功能模块划分
高校智能排课系统在功能上分四个模块,如图4-1:
图4-1 系统功能模块划分
4.1.1 系统管理与维护
1.基础数据管理
将排课中涉及到的院、系、教研室、教师、班级、教室等事物的信息录入到系统数据库中,并能修改、查询和删除;
2.权限管理
不同角色的用户登录系统后,看到的用户界面不同,用户能操作的功能菜单也不同
4.1.2 排课算法设计与实现
该模块是整个系统的核心。在排课需要的相关数据准备好后,系统自动安排课表。系统可以一次将课表排好,也可以分几次安排。
第五章 课表调整与调度模块的详细设计与实现
智能排课系统一共分四个模块,它们是:系统管理与维护模块、排课算法设计与实现模块、课表查询与打印、课表的调整与调度模块。由于我开发的是课表的调整与调度模块,所有下面我就详细的介绍一下这个模块的设计过程:
5.1 课表调整与调度模块首页
本模块是针对课表已经排好后的操作,所以本模块的只是为管理员设计的,管理员登陆后,进入调整与调度模块的首页(conditon.htm),首页主要是选择要调换的内容,比如教室、时间等,主界面如图5-1:
图5-1 课表调整模块主界面
这个页面提交后,转到adjust.jsp页面,这个页面只提供跳转功能,根据
condition.htm传过来的参数转到相应的页面,这个页面主要的jsp代码如下:
<% String change = request.getParameter("radiobutton");
if (change.equals("change_classroom")) {%>
<jsp:forward page="changeroom.jsp"/>
<% } else if(change.equals("change_time")) { %>
<jsp:forward page="changetime.jsp"/>
<% } else if(change.equals("change_all")) { %>
<jsp:forward page="change_all/changeall.jsp"/>
<% } %>
5.2 时间和教室都调换功能设计
这个跳转页面能转到changeroom.jsp,changetime.jsp,changeall.jsp三个页面中的其中一个,我现在举跳到changeall.jsp页面来介绍一下本模块的调换课表功能的实现,changeall.jsp页面提供了两种调换课表的方式:
第六章 系统运行情况
本系统运行平台为:
Windows professional+JDK+TOMCAT+SQL server
JSP平台的搭建:
省略
第七章 尚待解决的问题
本系统是在老师的带领下,由我们四个即将踏上社会的本科毕业生完成,由于我们自身的原因,比如说没有什么开发经验,对相关技术掌握的不是很牢等,本系统存在着很多尚未解决的问题,可以说是本系统稚气未脱,显得不是那么成熟。
首先,系统是由我们分模块完成的,模块之间的整和不是那么好,按软件工程的要求,是要做到高内聚、低耦合。本系统还没有达到这样的要求。
再次,我们在开发过程中没有过多的考虑各种没有预料到的因素,比如数据库异常、网络病毒等,当这些问题发生时,本系统是否能正常运行?这就是系统的健壮性,尽管JSP语言的健壮性是比其他的要好,但我们并没有做到更好,把它发挥到极至。
还有,本系统的运行速度,在数据库不是很大时,本系统的运行速度还比较满意,这应该得益于JSP的运行机制,但当数据库增加,或网速不够快时,系统的运行速度能否得到保证?但这些问题出现时,我们还要改变系统的代码,改善算法等。
本系统还有很多尚待解决的问题,有些是在系统交付使用后应运而生,这些问题都有待改进,才能使系统具有更强的生命力。
参考文献
[1].《SQL Server数据库原理及应用教程》编著:张莉、王强、赵文、董莉;清华大学出版社。
[2].《JSP编程技术与应用》主编:方逵;副主编:许向阳、李建军、高明;高等教育出版社。
[3].《JSP网站编程教程》主编:屈辉立、陈可明、石武信;北京希望电子出版社
[4].《Java网络编程实例教程》主编:姜利群;清华大学出版社、北京交通大学出版社。
[5].《Tomcat与Java Web开发技术详解》主编:孙卫琴、李洪成;电子工程出版社
[6].《Dreamweaver MX(中文版)完全参考》[美] Ray West、Tom Muck;著;李明、英宁译;清华大学版社
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
序号 | 毕业设计全套资源(点击下载) |
---|---|
本项目源码 | 基于JSP+sqlserver的高校智能排课系统设计与实现(源码+文档)_jsp_BS架构_高校智能排课系统.zip |