毕业设计(论文)-JAVA排课教务系统的应用与开发.doc_第1页
毕业设计(论文)-JAVA排课教务系统的应用与开发.doc_第2页
毕业设计(论文)-JAVA排课教务系统的应用与开发.doc_第3页
毕业设计(论文)-JAVA排课教务系统的应用与开发.doc_第4页
毕业设计(论文)-JAVA排课教务系统的应用与开发.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

( 本科毕业设计说明书本科毕业设计说明书 学校代码:学校代码: 1012810128 学学 号:号: 题题 目目: JAVAJAVA 排课教务系统的应用与开发排课教务系统的应用与开发 学学生生姓姓名名 : 学学 院院 : 信信 息息 工工 程程 学学 院院 系系 别别: 计计 算算 机机 系系 专专 业业: 计计 算算 机机 科科 学学 与与 技技 术术 班班 级级: 内蒙古工业大学本科毕业设计说明书 摘 要 排课系统的主要任务是将教师、课程、班级等相关信息进行汇总,然后根据教 学计划或教学环节制订各班级的课程表。由于班级数、课程门数、教师、教学时间 等排课要素的不确定性,如果用手工进行排课,不可避免地出现教室资源冲突或教 师资源冲突的情况。为了使课表的编排更准确、合理、快速,高校教务部门都用计 算机来进行排课管理,并先后开发出一些适用的排课软件系统。 本文设计了基于 Struts+Hibernate 框架下的 Java 排课系统,可部署在网络上, 支持多人同时在线进行排课。本系统应用随机采样、循环遍历算法进行自动排课, 并利用 Hibernate 技术对数据进行整和处理,Java Servlet Page(JSP)可视化编程 技术处理页面,从而有效的处理了课程、老师和班级三者之间的冲突问题,使各项 有限资源得到较合理的利用。 本系统不仅实现了条件限制下的排课功能,同时还可以对教师、课程、班级、 场地、课表和教务信息进行增加、删除、修改和查询。通过对系统安全性、稳定性 和跨平台等因素的考虑,本系统界面采用 JSP 和 JAVAScript 两种技术设计完成, 其核心部分地处理采用 MVC 模式的 Struts+Hibernate 框架,同时使用了 MD5(Message-Digest Algorithm 5)算法对数据进行加密,Oracle 数据库的运用 也是研究的重点。 关键词:JAVA 排课;Hibernate;Struts;MVC 模式 全套设计加扣 3012250582 内蒙古工业大学本科毕业设计说明书 Abstract Course Scheduling systems main task is to be teachers, courses, classes, and other relevant information in aggregate, then teaching plans or teaching classes part of the preparation of the Timetable. As the number of classes, courses gates, teachers, teaching time, such as arranging schedule elements of uncertainty, if by hand for arranging schedule, a classroom resources inevitably conflict or conflict of teacher resources. Timetable to make the presentation more accurately, reasonable, fast, dean of University departments to use the computer for arranging schedule management, and has developed some software system applicable course arrangement. This paper designeded course arrangement which based on Struts + Hibernate JAVA course arrangement, the framework of the system can be deployed on the network, to support people at the same time online. the system applicat sampling, traversing cycle algorithm automatically arranging schedule and use Hibernate technical data and conformity data, JSP visual programming technology to treat the pages and to deal effectively with the curriculum, teachers and three classes of The conflict between, so that the limited resources of a more rational use. This system not only under the conditions of the course arrangement functions, but also still on teachers, courses, classes, space, Timetable and academic information to add, delete, modify, and query features. Through the system security, stability and cross- platform, and other factors to consider, the system interface using JSP and JAVAScripe two technical design is completed, the core of the MVC model used to deal with the Struts + Hibernate framework, the use of the data on MD5 (Message-Digest Algorithm 5) 内蒙古工业大学本科毕业设计说明书 algorithm Encrypted, Oracle database is the use of the focus of the study. Keywords: Java course arrangement; Hibernate; Struts; MVC model 目 录 引 言 .1 第一章 概述.2 1.1 课题的现状.2 1.2课题的应用领域.2 1.3 Hibenate 的发展.2 1.4 Struts 框架的发展.3 1.5 MD5 数据加密.4 第二章 排课相关算法简述.5 2.1 解决 NP 问题的几种算法.5 2.1.1 动态规划法.5 2.1.2 贪心算法.5 2.1.3 回溯法.6 第三章 系统需求分析.7 3.1 排课教务系统的实现思想.7 3.2 系统功能需求.7 3.2.1 问题的描述.7 3.2.2 主要数据结构.8 3.2.3 冲突检测.8 内蒙古工业大学本科毕业设计说明书 3.2.4 模块功能说明.9 3.3 系统性能需求.10 第四章 系统总体设计.11 4.1 MVC 模式.11 4.1.1 MVC 架构.11 4.1.2 处理流程.12 4.1.3总体结构设计.13 4.1.4 功能分配.14 4.2 接口设计.15 4.3 数据结构设计.15 4.4 出错处理设计.18 4.5 安全保密设计.19 第五章 排课教务系统的实现.20 5.1 Struts 技术的实现.20 5.2 Hibernate 技术的实现.21 5.3 人机交互的实现.22 5.4 模块功能实现.23 5.5 数据库的实现.30 结 论 .31 参考文献.33 谢 辞 .34 内蒙古工业大学本科毕业设计说明书 1 引 言 排课问题是一个 NP 完全问题,这一论断确立了排课问题的理论深度。对于 NP 问题目前在数学上是没有一个通用的算法能够很好地解决。近 40 年来,人们对课程 表问题的计算机解法做了许多尝试。其中,课程表编排的整体规划模型将问题归结 为求一组 0-1 变量的解,但是其计算量非常大。解决 0-1 线性优化问题的技术却只 适用于规模较小的课程表编排,Mihoc 和 Balas(1965)将课程表公式化为一个优化 问题,Krawczk 则提出一种线性编程的方法。Junginger 将课程表问题简化为三维运 输问题,而 Tripathy 则把课程表问题视作整数线性编程问题并提出了大学课程表的 数学模型。 进入九十年代以后,国外对课程表问题的研究仍然十分活跃。比较有代表性的 有印度的 Vastapur 大学管理学院的 ArabindaTripathy、加拿大 Montreal 大学的 Jean Aubin 和 Jacques Ferland 等。目前,解决课程表问题的方法有:模拟手工排 课法;图论方法;拉格朗日法;二次分配型法等多种方法。 由于课程表约束复杂,用数学方法进行描述时往往导致问题规模增大,这已经 成为应用数学编程解决课程表问题的巨大障碍。研究表明,解决大规模课程表编排 问题单纯靠数学方法是行不通的,而利用运筹学中分层规划的思想将问题分解,将 是一个有希望得到成功的办法。从实际使用的情况来看,国内外研制开发的这些软 件系统在实用性上仍不尽如人意。一方面原因是作为一个很复杂的系统,排课要想 面面俱到是一件很困难的事;另一方面每个学校由于其各自的特殊性,自动排课软 件很难普遍实用,特别是在调度的过程中一个很小的变动,要引起全部课程的大调 整,这意味着全校课程大变动,在实际的应用中这是很难实现的事。 目前对 NP 完全问题研究的主要思想是如何降低其计算复杂度,即利用一个近 似算法来代替,力争使得解决问题的时间从指数增长简化到多项式增长。结合到课 程表问题就是建立一个合适的现实简约模型,利用该简约模型能够大大降低算法的 复杂度,便于程序实现,这是解决排课问题一个很好的思路。 JAVA 排课教务系统是采用 HibernateStruts 架构设计的, 是一个可以为 3 个 班级排 4 周课程,且一名教师只能教授一门课程的简单的模型。 内蒙古工业大学本科毕业设计说明书 2 第一章 概述 1.1 课题的现状 1962 年,Gotlieb 曾提出了一个课程表问题的数学模型,并利用匈牙利算法解 决了三维线性运输问题。次后,人们对课程表问题的算法、解的存在性等问题做了 很多深入探讨。但是大多数文献所用的数学模型都是 Gotlieb 的数学模型的简化或 补充,至今还没有一个可行的算法来解决课程表问题。 此外,有些文献试图从图论的角度来求解课程表的排课问题,但是图的染色问 题也是 NP 完全问题,只有在极为简单的情况下才可以将课程表编排转化为二部图匹 配问题,这样的数学模型与实际相差太远,所以对于大多数学校的课程表编排问题 来说没有实用价值。 在国内,对课程表问题的研究开始于 80 年代初期、具有代表性的有:南京工学 院的 UTSS(A University Timetable Scheduling System)系统,清华大学的 TISER(Timetable SchedulER)系统,大连理工大学的智能教学组织管理与课程调 度等,这些系统大多数都是模拟手工排课过程,以“班”为单位,运用启发式函数 来进行编排的。但是这些课程表编排系统往往比较依赖于各个学校的教学体制,不 宜进行大量推广。 从实际使用的情况来看,国内外研制开发的这些软件系统在实用性上仍不尽如 人意。一方面原因是作为一个很复杂的系统,排课要想面面俱到是一件很困难的事; 另一方面每个学校由于其各自的特殊性,自动排课软件很难普遍实用,特别是在调 度的过程中一个很小的变动,要引起全部课程的大调整,这意味着全校课程大变动, 在实际的应用中这是很难实现的事。 1.2课题的应用领域 排课问题的核心为多维资源的冲突与抢占,其研究对类似的问题(特别是与时 间表有关的问题:如考试排考场问题、电影院排座问题、航空航线问题)也是个参 考。 1.3 Hibenate的发展 Hibernate 三层结构设计使得模块之间的耦合度得到了很大的提高, 但是在开 发过程中仍然具有一定的难度, 在开发的过程中要为不同的业务逻辑写不同的代码, 软件开发的效率很低。随着软件开发的不段发展, 又发展成为四层结构,将与数 据库打交道的分离出来, 形成数据持久化层,即数据库层,数据持久化层, 业务 内蒙古工业大学本科毕业设计说明书 3 逻辑层和应用层。每一层都为上层提供服务,下层不依赖于上层结构,具有非常高 的内棸和低耦合度。Hibernate 就是专门负责数据持久化的。 Hibernate 是从 JDBC 发展而来的,并且对 JDBC 作了轻量级的封装。在需要的 时候,绕过 hibernate 直接通过 JDBC 操作数据库。使程序员可以使用对象编程思想 来操作数据库。它不仅提供了从 Java 类到数据表的映射,也提供了数据查询和恢复 机制。使用 JDBC 和 Serivce Query Language(SQL)来操作数据库,使用 Hibernate 能大大的提高实现的效率。Hibernate 框架用配置文件的形式来定义 Java 对象和数 据表之间的映射关系,同时在更深的层面将数据表之间的关系解释为 Java 对象之间 的继承及包含等关系。通过使用 Hibernate Query Language(HQL)语句将复杂的关 系算法用对象的方式描述,在很大程度上简化了对数据的查询,加快了开发的效率。 在 Hibernate 中有一个简单而直观的 API,用于对数据库所表示的对象执行查询。 要创建或修改这些对象,只需在程序中与它们进行交互,然后告诉 Hibernate 保存 即可。这样,大量封装持久化操作的业务逻辑不再需要编写烦琐的 JDBC 语句,从而 使数据持久层得到了极大的简化。Hibernate 是开放源码的 Java 实现的持久化的中 间件。 1.4 Struts框架的发展 Struts 框架最早是作为 Apache Jakarta 项目的组成部分问世运做,它继承了 MVC 的各项特性,并根据 J2EE 的特点,做了相应的变化与扩展。Struts 框架很好的 结合了 Jsp,Java Servlet,Java Bean,Taglib 等技术。在 Struts 中,承担 MVC 中控制器角色的是 ActionServlet。ActionServlet 是一个通用的控制组件。这个控 制组件提供了处理所有发送到 Struts 的 HTTP 请求的入口点。它截取和分发这些请 求到相应的动作类(这些动作类都是 Action 类的子类) 。另外控制组件也负责用相 应的请求参数填充 Action Form(FromBean) ,并传给动作类(ActionBean) 。动作 类访问核心商业逻辑,即访问 Java Bean 或调用 EJB。最后动作类把控制权传给后 续的 JSP 文件,由 JSP 文件生成视图。所有这些控制逻辑利用 Struts-config.xml 文件来配置。在 Struts 框架中,视图主要由 JSP 生成页面完成,Struts 提供丰富 的 JSP 标签库,这有利于分开表现逻辑和程序逻辑。模型以一个或多个 Java Bean 的形式存在。在 Struts 中,主要存在三种 Bean,分别是: Action,ActionForm,EJB 或者 Java Bean。 Struts 框架没有具体定义模型层的实现,在实际开发中,模型层通常是和业务 逻辑紧密相连的,并且要对底层数据进行操作。下面介绍一种开发策略,将 内蒙古工业大学本科毕业设计说明书 4 Hibernate 引入到 Struts 框架的模型层中,使用它来进行数据封装和映射,提供持 久化的支持。 Struts 实现了 MVC 架构,即 JSPServletjavaBean 的结构在 MyEclipse 中 导入 Struts 中间系统会导入 struts 标签库和 struts 配置文件(struts- config.xml) , 和 hibernate 一样,需要对 struts 进行配置,struts 配置文件主 要是配置表单信息, 在第一个表单中都对应着一个 java 类,和 hiberante 一样, 一个表单对应一个类,这些技术在某种程度上都具有相似之处,这些表单类称为 javaBean。 1.5 MD5数据加密 所谓 MD5,即“Message-Digest Algorithm 5(信息-摘要算法)”,它由 MD2、MD3、MD4 发展而来的一种单向函数算法(也就是 HASH 算法),它是国际著名 的公钥加密算法标准 RSA 的第一设计者 R.Rivest 于上个世纪 90 年代初开发出来的。 MD5 的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人 密钥前“压缩”成一种保密的格式,关键之处在于这种“压缩”是不可逆的。 MD5 用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有 RSA 公司发 明的 MD5 算法和由美国国家技术标准研究所建议的安全散列算法 SHA. MD5 将任意长度的“字节串”变换成一个 128bit 的大整数,并且它是一个不可 逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一 个 MD5 的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多 个,这有点象不存在反函数的数学函数。 MD5 的典型应用是对一段 Message(字节串)产生 fingerprint(指纹),以防止被 “篡改”。举个例子,你将一段话写在一个叫 readme.txt 文件中,并对这个 readme.txt 产生一个 MD5 的值并记录在案,然后你可以传播这个文件给别人,别人 如果修改了文件中的任何内容,你对这个文件重新计算 MD5 时就会发现(两个 MD5 值不相同)。如果再有一个第三方的认证机构,用 MD5 还可以防止文件作者 的“抵赖”,这就是所谓的数字签名应用。 内蒙古工业大学本科毕业设计说明书 5 第二章 排课相关算法简述 2.1 解决NP问题的几种算法 2.1.1动态规划法 动态规划法是将求解的问题一层一层地分解成一级一级、规模逐步缩小的子问 题,直到可以直接求出其解的子问题为止。分解成的所有子问题按层次关系构成一 颗子问题树。树根是原问题。原问题的解依赖于子问题树中所有子问题的解。动态 规划算法通常用于求一个问题在某种意义下的最优解。设计一个动态规划算法,通 常可按以下几个步骤进行: (1)分析最优解的性质,并刻划其结构特征。 (2)递归的定义最优解。 (3)以自底向上的方式计算出最优解。 (4)根据计算最优解时得到的信息,构造一个最优解。 步骤 1-3 是动态规划算法的基本步骤。在只需要求出最优解的情况下,步骤 4 可以省去。若需要求出问题的一个最优解,则必须执行步骤 4。此时,在步骤 3 中 计算最优解时,通常需记录更多的信息,以便在步骤 4 中,根据所记录的信息,快 速地构造出一个最优解。 2.1.2 贪心算法 当一个问题具有最优子结构性质时,会想到用动态规划法去解它,但有时会有 更简单、更有效的算法,即贪心算法。顾名思义,贪心算法总是做出在当前看来最 好的选择。也就是说贪心算法并不是在整体最优上加以考虑,而是所作出的选择只 是在某种意义上的局部最优的选择。虽然贪心算法不是对所有问题都能得到整体最 优解,但对范围相当广的许多问题,它能产生整体最优解,如图的算法中单源最短 路径问题,最小支撑树问题等。在一些情况下,即使贪心算法不能得到整体最优解, 但其最终结果却是最优解的很好的近似解。 在贪心算法中较为有名的算法是 Dijkstra 算法。它作为路由算法用来寻求两个 节点间的最短路径。Dijkstra 算法的思想是:假若 G 有 n 个顶点,于是我们总共需 要求出 n-1 条最短路径,求解的方法是:初试,写出 V0(始顶点)到各顶点(终顶点) 的路径长度,或有路径,则令路径的长度为边上的权值;或无路经,则令为。再 内蒙古工业大学本科毕业设计说明书 6 按长度的递增顺序生成每条最短路径。事实上生成最短路径的过程就是不断地在始 顶点 V 到顶点 W 间加入中间点的过程,因为在每生成了一条最短路径后,就有一个 该路径的终顶点 U,那么那些还未生成最短路径的路径就会由于经过 U 而比原来的 路径短,于是就让它经过 U。 2.1.3 回溯法 回溯法有“通用的解题法”之称。用它可以求出问题的所有解或任一解。概括 地说,回溯法是一个既带有系统性又带有跳跃性的搜索法。它在包含问题所有解的 一颗状态空间树上,按照深度优先的策略,从根出发进行搜索。搜索每到达状态空 间树的一个节点,总是先判断以该节点为根的子树是否肯定不包含问题的解。如果 肯定不包含,则跳过对该子树的系统搜索,一层一层地向它的祖先节点继续搜索, 直到遇到一个还有未被搜索过的儿子的节点,才转向该节点的一个未曾搜索过的儿 子节点继续搜索;否则,进入子树,继续按深度优先的策略进行搜索。回溯法在用 来求问题的所有解时,要回溯到根,且根的所有儿子都已被搜索过才结束;而在用 来求问题的任一解时,只要搜索到问题的一个解就可以结束。 内蒙古工业大学本科毕业设计说明书 7 第三章 系统需求分析 3.1 排课教务系统的实现思想 本系统设计的排课算法由 Java 语言实现,其算法主要是循环遍历和随机抽取这 两种方法的结合。 排课条件的限制: 排课的班级只有 3 个,教师为 4 名,并且每位教师只能讲授一门课程,而在排 课的时间上做了严格的限制, 4 周的课表,每周为 1 个课时,同时每周的上课时间 为周 1-周 5,每天的上课时间为早 9 时至晚 5 时。 再者,我们通过给定的条件,通过分析得出,我们所要排课的要求。一个教师 一门课程,第一周某位教师在讲授完课程后,不能在后三周再出现,同时该教师在 其他两个班级第一周的课表上不能出现,因为这样会产生冲突。 根据以上的特点和条件约束我们如下设计:在从 JSP 表单中获得数据后,我们 将将教师和课程进行封装,封装的对象叫 teachercourse,在这个对象中有 2 个属 性,一个是教师,一个是学生。之后我们将每一个对象都放到一个 LIST 中,然后通 过随机方法,随机得到一个值,将这个值放入另一个 LIST 中,并将这个值从原来的 LIST 中 REMOVE 掉。然后在被 REMOVE 掉的 LIST 中继续随机取得一个值,再将值放 入到第 2 个 LIST 中,并将此值从原来的 LIST 中 REMOVE 掉,以此循环完成整个第一 步骤。新生成的这个 LIST 通过 EL 语句在 JSP 页面输出,即班级 1 的课程表生成。 随后 2 个班级的课程表主要通过随机和遍历生成。在原 LIST 中随机抽取一个值,然 后拿这个值和 LIST1 做比较,条件是产生随机数的位置不能和 LIST1 同位置的值相 同,同时随后产生的值在不能和 LIST1 的值相同的情况下,还不能和前面产生的值 相同,这点是通过 REMOVE 原有数组做到的。 3.2 系统功能需求 3.2.1 问题的描述 自动排课问题的简化描述如下: 设安排的课程为 C1,C2,.,Cn,课程总数为 n,而各门课程每周安排次数(每 次为连续的 2 学时) 为 N1,N2,.,Nn,每周教学日共 5 天,即星期一至星期五; 每个教学日最多安排 4 次课程教学,在这种假设下,显然每周的教学总时间段数为 5 内蒙古工业大学本科毕业设计说明书 8 4 = 20,并存在以下约束关系: n 20 , (3-1) N = 6n, i =1, Ni 20. (3-2) 自动排课问题是:设计适当的数据结构和算法, 以确定 C1,C2,.,Cn 中 每个课程的教学应占据的时间段,并且保证任何一个时间段仅由一门课程占据。 3.2.2 主要数据结构 对于每一门课程,分配 2 个字节的“时间段分配字”(无符号整数): T1,T2,., Tn。其中任何一个时间段分配字(假设为 Ti ) 都具有如下格式: Ti 的数据类型 C 语言格式定义为:unsigned int Ti 的最高位是该课程目前 是否是有效的标志,0 表示有效,1 表示无效(如停课等);其它各位称为课程分配 位,每个课程分配位占连续的 3 个位(bit),表示某教学日(星期一至星期五) 安排 该课程的时间段的值,0 表示当日未安排,1-4 表示所安排的相应的时间段(超过 4 的值无效)。 在这种设计下,有效的时间段分配字的值应小于 32768 (十六进制 8000),而大 于等于 32768 的时间段分配字对应于那些当前无效的课程(既使课程分配位已设置 好也如此),因此很容易实现停课/开课处理。 3.2.3 冲突检测 有时在自动排课完毕后,需要人工调整某些课程的安排时间,如把第 i 门课程 在人工干预下改成星期数为 week、时间段为 segment 的位置,则根据上述数据结构 需做如下运算: T i = T i cfg.configure(/hibernate.cfg.xml);/获取配置文件 SessionFactory factory = cfg.buildSessionFactory();/获得 session 实例的工厂类 Session session = factory.openSession();/获得 Session 对象 return session; 获得 session 对象之后,就可以对数据库进行操作了。 Hibernate 表与类之间的关联映射。由于目前市场上所有数据库基本上都是关 系型的,而我们所写的类都是面向对象的,这就造成了表和类之间并不完全相符, 但是表中的字段和类中的属性之间存在了对应的关联。要使 hibernate 知道哪个类 对应数据库中的哪张表,就需要在配置文件中配置表与类之间的关系。表与表之间 存在三种关系, 分别是一对一、一对多、和多对多这三种关系,但在 hibernate 配 置文件必须体现这三种映射关系。 在上面的配置文件中配置的是一张学生表,它的字段有 id,name,select,grade 和 institution 其中的 get/set 方法以及构造器没有给出,具体情况可以去参看程序。 其中 id 为主健,按照 sequence 中的 student_seqzhang 自动生成,hibernate 从中去读取,并将值赋给 id,property 对应的分别是 student 表中的属性, name“name” 表明类中有一个属性为 name,column“name“表明对应 student 表中 name 字段,其类型为 string 类型,其它的映射也是一样,最后一个属性 sc 是 一个集合,和数据库中 SC 表是一对多的关系,对应的字段为 studentid,lazy 表示 延迟加载。 5.3 人机交互的实现 系统交互设计采用目前广为流行的,基于 B/S 的架构设计,人机交互界面主要 使用当今流行的 JSP 技术,以网页的形式展现给用户。首先,展现在用户面前的是 登陆界面,没有注册的用户可点击进入注册页面,而丢失密码的用户则可通过密码 找回功能重新获得新的密码,这 3 个界面都是通过提示信息与用户进行交流,实现 内蒙古工业大学本科毕业设计说明书 23 人机交互。进入整个浏览器后分成四个子框体,最上面的一个框体显示系统的 Log 和系统名称;左边的框体主要是系统功能导航;右边的框体主要是显示第一个功能 的操作界面,下面的框体是一个静态也面主要显示公司和版权等一些信息。在功能 模块中都有提示信息,这些提示方便了用户的操作和使用。 5.4 模块功能实现 ()用户注册: 在 register.jsp 页面用户可以注册一个会员帐号,昵称作为以后登陆社区的唯 一标识。密码需要用 MD5 算法加密。 图 5-2 用户注册界面 (2)用户登陆: 在 login.jsp 页面上用户可以输入昵称和密码进行登陆,如果用户名和密码都 正确,则登陆成功。如果不正确,需要提示用户。 图 5-3 用户登陆界面 内蒙古工业大学本科毕业设计说明书 24 (3)修改密码: 用户进入修改密码界面,填写用户名称、密码提示问题和问题答案,通过点击 修改按扭实现,新的密码在弹出的对话框中。 图 5-4 找回用户密码界面 (4)修改用户信息 会员在 modify.jsp 页面上输入要修改的信息,点击提交,则需要将修改的信息 保存到数据库,并且还需要将 session 范围内的 memberinfo 对象里面的属性值与数 据库中的值同步。 具体是实现: 从 Modify.jsp 传入要修改的信息,ModifyAction 从 ModifyForm 获得数据进行 处理,具体的处理在 MemberServiceImpl 中实现,然后交给 DAO 层提交给数据库。 内蒙古工业大学本科毕业设计说明书 25 图 5-5 修改用户信息界面 (5)新建信息: 需要判断接收者是否存在,如果存在,则在 Messagerecord 表中插入一条数据, 并且提示用户成功,如果不存在提示用户接收方不存在。 图 5-6 发信息界面 (6)已收信息: 显示当前会员接收的所有短信(包括新短信和已读短信) ,并且可以删除某条短 信,和查看某条短信的详细信息。 内蒙古工业大学本科毕业设计说明书 26 图 5-7 收件箱界面 (7)排课: 通过获得的 class 、teacher、 course 、coursetime 四个值进行排课,将生 成的课表显示出来,课程表可保存和打印。 、 内蒙古工业大学本科毕业设计说明书 27 图 5-8 排课功能界面 (8)从数据库中获得教师、教室、场地、课表和课程等信息,这主要是通过 FindClassInfo、FindCourseInfo、FindTeacherInfo、FindGroundInfo 这些方法获 得,获得的信息显示到排课页面上,用户根据信息选择相应的排课条件,TTAction 从 PkActionForm 获得用户获得的信息,通过 IcourseService 中的方法进行排课。 当用户点击保存后,则调用 Savecoursetable 方法对课表进行保存。 教务、教师、教室、场地、课表和课程信息: 可对教师、教室、场地、课表和课程信息进行增删改查。 这几块的功能基本相同,都是提高页面获得数据然后保存到数据库,再从数据 库查询出信息动态的显示到页面上,同时可以删除信息。 内蒙古工业大学本科毕业设计说明书 28 图 5-9 课程相关功能界面 图 5-10 查看教务信息界面 内蒙古工业大学本科毕业设计说明书 29 (9)用户可以在查看课程表功能中查看已经排好的课程表。 图 5-11 查看课程表界面 (10)用户可以添加、删除、查询教师信息,教师信息包括教师的姓名,所授 课程,描述。在删除信息时会有对话框弹出进行提示。 内蒙古工业大学本科毕业设计说明书 30 图 5-12 教师信息功能界面 5.5 数据库的实现 首先启动 Oracle 数据库,进入 SQLPLUS 空间,创建一个空间,然后创建表, 之后建立 JAVABEAN 和对应的 Hbm.xml 文件,通过 Hibernate 进行映射,Hibernate 会自动封装 JDBC 数据源与数据库进行交互。 内蒙古工业大学本科毕业设计说明书 31 结 论 系统按需求分析,实现了各部分的功能。但是该系统存在了很多的不足,界面 设计过于死板,排课的算法过于简单,而在排课的条件限制上做的不够理想,没能 真实的反映出现实需求的情况。 系统使用了主流的 MVC 模式开发,但是系统在很多方面还具有局限性。首先 对于服务器端来说,配置低的机器可能无法适应系统的运行。其次在主要的排课算 法的实现上存在很多的缺陷,很多排课所涉及到的元素都是不定的,可变的,这增 加了算法难度,该系统忽略了这些可变元素,将其设置为定性的,从而实现简单的 排课。本系统只做了管理员部分,并没有涉及到权限的管理,最后 MVC 架构的系 统在分布式方面有很大的缺憾,这使得在访问量,同时在线量等问题上出现了很大 的局限性,系统无法解决这类问题。由于是 WEB 开发,所以以上的局限性需要像 EJB 等新技术来解决和完善。因此系统在今后需要做以下改进: (1)登录模块 登录模块的安全性不够高,通过采用随机数字和字母的搭配生成验证码,用户 输入正确的验证码才可登录。 自动登录功能,在用户已经注册登录一次后,用户可以选择自动登录模式,这 样用户不需要再填写登录信息就可以登录。 (2)排课模块 在排课时间的设置上可以采用图论着色法,用户可以根据需要选择每天上几节 课,每周上几天课,同时可以点击课表上的色块选定不能上课的时间。 在教务信息、教师信息、课程信息和场地信息这 4 块原有功能中增加修改信息 功能,即对已存在的信息进行修改操作。 教务信息、教师信息、课程信息和场地信息的动态显示和操作也是需要改进的 部分,新添加的信息和删除的信息应该能动态的从排课界面上显示,这需要 JAVAScript 和 JAVASessionBean 技术来实现。 排课算法的改进是今后研究的重点方向,可以利用遗传算法和图论着色法综合 排课功能,在技术上需要使用到 JAVA5 的新特性。 (3)信息模块 信息模块的主要改进点在信息的存储,用户所建立信息实际上都存储在一个数 据库内,用户建立和查看信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论