admin 管理员组文章数量: 887629
2024年1月17日发(作者:雪崩电影元宇宙)
黑龙江工程学院本科生毕业设计
摘 要
本论文主要介绍基于Web的课程设计管理系统的研究和设计,以及系统设计中所涉及的技术。进行了模块划分,而后分析了各个模块和流程的具体划分和最后的编程实现,从问题的提出到最后逐步的实现。都一步一步作了系统的介绍,在实际开发阶段,本文将比较有代表性的代码给出,并作了相关注释,便于理解和对照。
本系统在当前流行的web开发平台上进行课程管理系统的设计与开发。系统使用XML、JAVA等当前流行的技术进行系统实现。他给学生带来了很多的方便,学生可以在线选择自己想要选的课题。老师也可以在线添加课题、给学生打分等。管理员可以在线对老师、学生、课程进行管理。总体上实现了预期的目的。
在实现方面,该毕业设计最大的特点是使用JSP+JavaBean+Servlet开发模式,将系统中的表示层和业务逻辑层分开。这种开发模式在一定程度上体现了MVC的思想,又减少的常规MVC模式的复杂性,在中小型Web应用的软件开发中具有一定的应用价值。而且采用MVC开发模式进行该系统的具体实现,为日后程序的修改和扩展提供了很好的可扩展性。
关键词:JSP,Servlet,JavaBean,iReport,JavaMail
1
黑龙江工程学院本科生毕业设计
目录
摘 要 ......................................................................................................... 1
1.1基于web的课程设计管理系统发展特点。 ............................... 5
1.2 主要功能 ....................................................................................... 6
2.1 Java语言简介 ............................................................................... 6
2.2 Java 语言在网络上的应用 .......................................................... 7
2.3 JSP技术简介 ................................................................................. 7
1.4 Servlet技术简介 ........................................................................... 8
1.5 JavaBean技术简介 ....................................................................... 9
1.6 Tomcat简介 ................................................................................... 9
1.7 B/S与C/S 模式 ....................................................................... 10
第二章 需求分析 ................................................................................ 11
2.1设计目标 ...................................................................................... 11
2.2功能概图 ...................................................................................... 12
2.3 性能需求 ..................................................................................... 12
2.4 数据需求 ..................................................................................... 13
第三章 系统概要设计 .......................................................................... 14
3.1 系统运行平台设置 ..................................................................... 14
3.2 运行环境 ..................................................................................... 14
3.3 开发工具及技术简介 ................................................................. 14
3.3.1 开发工具简介 ........................................ 14
3.3.2技术简介 ............................................ 15
2
黑龙江工程学院本科生毕业设计
第四章
数据库概念结构设计 ............................................................ 16
4.1数据库表如下: .......................................................................... 16
4.1.1.登录表(user) ....................................... 16
4.1.2.管理员表(admin) .................................... 16
4.1.3.教师表(teacher) .................................... 16
4.1.4.学生表(student) .................................... 17
4.1.5.课程表(course) ..................................... 17
4.1.6.选课表(selectCourse) ............................... 17
4.1.7.评教表(judgeTeacher) ............................... 17
4.2 数据库的完整性和安全性 ......................................................... 18
4.2.1 数据库的完整性 ...................................... 18
4.2.2 数据库的安全性 ...................................... 18
4.3登录用到的触发器 ...................................................................... 18
第五章
数据库逻辑结构设计 ............................................................ 20
5.1数据库的需求分析 ..................................................................... 20
5.2 数据库的逻辑设计 .................................................................... 20
5.2.1 实体与属性之间的关系 ................................. 20
5.2.2 E-R模型 .......................................... 20
第六章 数据流图及程序结构框图 .................................................... 21
6.1、核心模块数据流图 ................................................................... 21
6.2、程序结构图 ............................................................................... 22
6.2.1.用户登录及其处理类图: ................................ 22
6.2.2.接数据库类: ........................................ 23
6.2.3.个性服务信息及其处理类图 : ............................ 23
6.2.4.管理员及其处理类图: ................................. 23
6.2.5.课程及其处理类: ..................................... 23
6.2.6.学生及其处理类图: ................................... 24
6.2.7.教师及其处理类图: ................................... 24
6.2.8.评教及其处理类图: ................................... 24
6.2.9.选课及其处理类: ..................................... 24
第七章 程序源代码及其说明 .............................................................. 25
7.1、登录模块核心代码: ............................................................... 25
3
黑龙江工程学院本科生毕业设计
7.1.1.非法登录时的界面: ............................................................... 28
7.2、课程管理系统选课模块中能否选课时间的核心代码 ........... 28
7.2.1.没到选课时间时,提示界面: ............................ 29
7.2.2.管理员设置选课时间顺序错误时: ......................... 30
7.2.3.选课成功时,在当前页面显示选课结果: .................... 31
7.2.4.学生可以对相应的授课老师进行评教: ...................... 32
7.3、发送邮件模块核心代码: ....................................................... 32
7.3.2、发送给 ............................................ 34
7.3.3、发送给 ............................................ 35
7.3.4、发送邮件给未选上课的学生: ............................ 35
7.3.5、张月月s000003收到的选课信息: ....................... 36
7.4、报表打印模块核心代码: ....................................................... 36
7.4.1、未选上课的学生报表: ................................. 37
7.4.2、学生报表生成页面如下 ................................. 37
7.5、其他模块图: ........................................................................... 38
7.5.1添加学生图(带校验): ................................ 38
7.5.2添加学生成功时,自动关闭窗口,并刷新父窗口: .............. 39
7.5.3、学生,教师,管理员可修改登录密码: ..................... 40
7.5.4、教师录入成绩: ...................................... 41
7.5.5、学生可查询成绩,教师也可查询成绩,管理员可以查询所有信息: . 41
7.5.5.1、学生精确查询成绩: ................................ 41
7.5.5.2、管理员可以查询所有信息: ........................... 42
7.5.5.3、管理员可以设置系统通知信息: ........................ 42
7.5.5.3、相应的学生都可以查看系统通知信息: ................... 43
第八章 系统测试分析 ............................................................................ 43
8.1 系统测试目的和原则 ................................................................. 43
8.2 JSP的中文乱码问题 ................................................................... 44
8.3 测试环境 ..................................................................................... 45
8.4功能测试 ...................................................................................... 45
8.5测试结果 ...................................................................................... 45
结 论 ....................................................................................................... 45
参考文献 .................................................................................................. 46
4
黑龙江工程学院本科生毕业设计
致 谢 ....................................................................................................... 46
第一章 绪论
1.1基于web的课程设计管理系统发展特点。
基于web的课程设计管理系统,根据高校课程管理的基本流程,实现课程信息管理的电子化,减轻管理人员的负担。管理人员能够很好对课程进行管理。长期以来,学校基本都是使用传统人工的方式管理学生课程信息,效率低、保密性差,随着计算机和网络技术的发展,使用计算机来管理课程信息已经成为发展5
黑龙江工程学院本科生毕业设计
趋势。这样可以提高学生选课和成绩管理工作的效率,围绕此管理所需要的学生个人信息、课程和任课教师信息、所选课程信息进行管理及维护。
随着科学技术的不断提高,计算机科学日渐成熟其强大的功能已为人们深刻认识,他已经进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分,使用计算机对高校课程进行管理,有着手工管理所无法比拟的优点。例如:检索迅速,查找方便,可靠性高存储量大成本低等。这些有点都能够极大的提高高校课程管理的效率也是企业的科学化正规化管理,与世界接轨的重要条件。所以说,程管理系统是高校不可缺少的一部分,他的内容对于学校的决策者和管理者来说都至关重要
1.2
主要功能
开发课程管理系统的总体任务是实现学生网上选课功能,将学生选择的课程和学生成绩通过网络进行管理等。
本系统的主要功能如下:
管理员登录:管理学生、教师、课程和班级信息。
学生:学生学籍的管理,基本信息的查询,成绩查询,选课查询
教师:选择学生、任教科目查询、成绩录入、师基本信息查询
第二章 开发语言及相关技术概述
2.1 Java语言简介
Java语言是当今流行的网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的概念,使WWW从最初的单纯提供静态信息发展到现在的能够提供各种的动态服务。Java不仅能通过编写小应用程序实现嵌入网页的声音和动画功能,而且还哪个应用与独立的大中型应用程序中,其强大的网络功能可以把整个Internet最为一个统一的运行平台。Java的诞生从根本6
黑龙江工程学院本科生毕业设计
上解决了Internet的异构、代码交换以及网络程序的安全性等诸多问题。Java语言且有平台无关性,程序经过编译后,生成字节代码并运行在Java虚拟机上,随着Java Servlet的推出 ,Java的应用更加广泛,目前Java技术已成为项目开发的主要选择。
2.2
Java 语言在网络上的应用
Java程序可以获取网络上结点的图像、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。
2.3
JSP技术简介
JSP(Java Server Pages)是一种基于Java的脚本技术,这种技术为创建显示动态生成内容的Web页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序哪个与各种Web服务器、应用服务器、浏览器和开发工具共同工作。在JSP 的众多优点之中,其中之一是它能将 HTML 编码从 Web 页面的业务逻辑中有效地分离出来。用
JSP 访问可重用的组件,如 Servlet、JavaBean 和基于 Java 的 Web 应用程序。JSP 还支持在 Web 页面中直接嵌入 Java 代码。可用两种方法访问 JSP 文件:浏览器发送 JSP 文件请求、发送至 Servlet 的请求。
1. JSP 文件访问 Bean 或其它能将生成的动态内容发送到浏览器的组件。图1.1说明了该 JSP 访问模型。当 Web 服务器接收到一个 JSP 文件请求时,服务器将请求发送至 WebSphere应用服务器。WebSphere应用服务器 对 JSP
文件进行语法分析并生成 Java 源文件(被编译和执行为 Servlet)。Java 源文件的生成和编译仅在初次调用 Servlet 时发生,除非已经更新了原始的 JSP 文件。在这种情况下,WebSphere应用服务器 将检测所做的更新,并在执行它之前重新生成和编译 Servlet。
7
黑龙江工程学院本科生毕业设计
图1.1:浏览器发送
JSP 文件请求
2. 发送至 Servlet 的请求生成动态内容,并调用 JSP 文件将内容发送到浏览器。图1.2说明了该访问模型。该访问模型使得将内容生成从内容显示中分离出来更为方便。WebSphere应用服务器 支持 HttpServiceRequest 对象和
HttpServiceResponse 对象的一套新方法。这些方法允许调用的 Servlet 将一个对象放入(通常是一个 Bean)请求对象中,并将该请求传递到另一个页面(通常是一个 JSP 文件)以供显示。调用的页面从请求对象中检索 Bean, 并用 JSP
来生成客户机端的 HTML。
图1.2:发送至
Servlet
的请求
1.4 Servlet技术简介
Servlet是用Java书写的一种协议,是与平台无关的服务器端的构件。它可以在支持Servlet的Web服务器或应用服务器上运行。Servlet被装载到Web服务器或应用服务器后,在Java虚拟机上执行,所以不需要呗装载到Web客户端的JVM上执行是同样的方式。由于Servlet在服务器上执行,所以不需要任何图形用户界面。从这个意义上讲,Servlet是一个“无面”对象。
Servlet为客户端和服务器端的信息处理提供了一种“请求/回答”机制。Java的Servlet API为处理客户端和服务器端之间的请求和回答信息定义了标准接口。
Java Servlet处理技术与传统的CGI和许多其他类似CGI的技术相比,具有许多优点。
高效
在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程而不是重量级的操作系统进程来处理。
8
黑龙江工程学院本科生毕业设计
方便
Servlet提供了大量的实用工程,例如自动解析和解码HTML表单数据、读取、和设置HTTP头、处理Cookie、跟踪会话状态等。
功能强大
在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。
可移植性好
Servlet用Java编写,Servlet API具有完善的标准。因此,为某个Enterprise Server写的Servlet无须任何实质上的改动即可移植到Apache、Microsoft IIS 或者WebStar上。
节省投资
不仅有很多廉价甚至免费的Web服务器供供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet,那么要加上这部分功能也往往是免费的或是只需要极少的投资。
1.5 JavaBean技术简介
JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成
JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。
1.6 Tomcat简介
Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat6支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
选课工作是学校课程管理的重要组成部分,为老师和学生提供一个课程管理的平台,长期以来,学校基本都是使用传统人工的方式管理学生课程信息,效率9
黑龙江工程学院本科生毕业设计
低、保密性差,但随着某高等学院教学体制的不断改革,信息化的不断发展,特别是学分制、选课制等展开和深入,各大院校教务日常管理工作日趋繁重、复杂,迫切需要研制开发一套基于Internet网络的计算机课程管理软件,从而减轻教务管理的压力,更好的为师生服务。本系统正是为适应这种需求而研发的。
本文从课程管理系统的开发背景、相关技术、需求分析、详细设计、系统测试与维护等方面详细阐述了整个系统的开发过程。
1.7 B/S与C/S 模式
随着网络的发展,在web应用程序中,程序的部署简单、开发高效、平台兼容、程序的维护是越来越重要。由于编程语言越来越多,以至于程序员的通信和维护更加的困难,因此需要一个统一的平台和架构来解决编程语言和平台的兼容问题。当前流行的架构有B/S和C/S模式,B/S的市场规模每年都在快速增长,越来越成为当今开发的主流模式。然而当前的技术有微软的.net平台提供的web应用架构和SUN公司开发的java。
按照系统终端情况的不同,可将高职院校辅助教学平台系统的开发结构分为C/S(客户端/服务器)和B/S(浏览器/服务器)两种模式,它们各具特色,是当前高职院校辅助教学平台系统开发的主流。C/S是一种client客户端和serves服务器的架构,其中客户端负责接受用户的请求,然后发给服务器,由服务器处理然后在返回给客户端。B/S 作为如今最为流行的体系结构模式,也是受到了广大开发人员以及客户的认同,其开发模式也在不断的发展着,九江职业技术学院辅助教学平台采用的是B/S的体系结构模式。
客户器/服务器系统的主要优点为能最大体现客户和服务器或客户间的交互性。作为本基于B/S模式的教学管理系统主要特点表现为:学生和老师的交互,学生几乎可以随时和老师进行互动,学生学习中问题的提出,老师对相应问题进行回答;老师通过该系统平台发布有关通知,布置作业题目、家庭学习任务等,学生既可及时地通过该系统平台得到相关信息,并可通过该系统提交自己完成的任务或作业等;老师对重点难点课件或教授视频的上传,学生通过该系统加强对相应重点难点内容的学习;学生并可以通过该系统及时查看自己的某次考试的分数,并及时与相应老师进行交流.
(1) 系统易于扩展和维护。该平台系统可随时根据需要上传任何格式的文件(只要服务器的空间足够),对过期的资料进行相应的处理。学生成绩查询子系统采用数据库存放个学生相应信息,可随时根据具体的考试情况对数据库进行维10
黑龙江工程学院本科生毕业设计
护和管理。并且系统的各个模块之间相对独立但又相互关联,易于对相应模块单独进行调整与完善。
(2) 大大降低对网络带宽的要求。采用客户端/服务器系统可避免点对点网络传输所产生的过分的网络阻塞与延迟。可以说,只要服务器端的带宽足够,并具备大规模服务的能力,对于客户端的网络带宽要求是非常低的
第3章 需求分析
3.1设计目标
本系统是一个网络版的管理系统,主要针对高效学生教务流程开发设计,系统提供了较好的功能扩充接口。
下面简要分析系统大致的功能需求。
1) 管理员登录
在管理员进入系统前,首先要求管理员进行登录,防止非法用户对系统进行操作,登录时要验证用户名和密码是否匹配,验证通过后允许管理员进入本系统操作。同时特别注意sql系统注入漏洞问题。
2) 学生信息管理
提供包括学生学籍的管理,基本信息的查询,成绩查询,选课查询。
(a) 填写学生信息
(b) 查询学生信息
(c)修改学生信息
(d)删除学生信息
3) 教师管理
教师对学生信息的查询,任教科目查询,成绩录入,教师基本信息查询。
(a) 填写教师信息
(b) 添加教师信息
(c) 修改教师信息
(d) 删除教师信息
4) 选课管理
提供学生每学期的公选课的选择。
a) 设定选课时间、人数
11
黑龙江工程学院本科生毕业设计
b) 选上课的学生名单
c) 未选上课的学生名单并用邮件通知
d) 选课成绩信息可用邮件通知其一门课或学期所有课的成绩
3.2功能概图
本系统的流程主要描述的是学生选择课程后,教师为学生录入成绩。该系统的适用对象包括学生、教师和管理员,如果3.1所示:
网上选课系统
登录
管理员 学生 教师
学
生
管理
教师管理课程管理选课管理查询评教管理查询评教个性服务网上选课查询个性服务录入成绩
图3.1系统模块结构图
3.3
性能需求
可靠性
系统7×24小时持续可用,可在每日特定时间段内对系统进行维护。传输数据服务要求准确,不能丢失数据。系统应有分级权限和逐级授权管理功能。
可维护性
软件采用面向对象技术开发,较之过程化技术,更容易维护。软件严格和规范文档化,给系统的维护带来方便。软件规范模块化,尽量做到低耦合,便于软12
黑龙江工程学院本科生毕业设计
件的更新修改,增强可维护性
性能,效率
本软件安全保护优良,可提供备份,工作有较好的稳定性,响应时间短,系统可以在1小时内实现恢复。如果硬件损坏,应提供应急和替代方案。
可扩展性
系统功能扩充或使用单位增加时应不影响现有系统功能和结构。系统建设要求能够保护投资,当系统数据量和访问量增大而导致系统配置不能满足要求时,可以通过仅增加服务器等硬件进行解决,而不是在软件上做修改。
安全性
硬件设备的安全性。
操作系统及支持软件的安全性(必须进行安全配置)。
应用及数据的安全性。
易用性
要求管理用户具有一定的计算机知识和操作能力,按照数据流程进行操作
兼容性
本软件在windows系列操作系统上都可以正常运行。对硬件的要求也不高,一般PC机上均可。
可移植性
本系统可以移植到windows系统的计算机上,也可以移植到Linux系统的计算机上。
3.4
数据需求
(1)数据录入和处理的准确性和实时性
数据的输入是否准确是数据处理的前提,错误的输入会导致系统输出的不正确和不可用,从而使系统的工作失去意义。数据的输入来源是手工输入。手工输入要通过系统界面上的安排系统具有容错性,并且对操作人员要进行系统的培训。
在系统中,数据的输入往往是大量的,因此系统要有一定的处理能力,以保证迅速的处理数据。
13
黑龙江工程学院本科生毕业设计
(2)数据的安全性
本系统为企业人事管理部门设计,因此只有特定的人事管理者才能对数据实现增,删,改,查等操作。未获授权人员不能进入系统。
(3)数据的备份
要定期对数据库中的数据进行全部或新增部分的备份工作,以保证在硬件出现故障或人为原因导致无法运行时是可以快速及时的还原到原来的正常状态。
本章小结:本章主要介绍了本系统的设计目的已经系统的功能和数据需求
第4章 系统概要设计
4.1 系统运行平台设置
本系统的运行平台设置分为硬件环境和软件环境。
4.2 运行环境
1.硬件环境
系统的硬件环境配置为处理器Pentium III800,内存1G,硬盘1G。
2.软件环境
系统的软件环境配置为Windows XP操作系统,SQL Server 2005数据库,JDK1.5、MyEclipse5.1开发工具包和Tomcat6.0服务器。
4.3
开发工具及技术简介
以下内容是对本系统所采用的开发工具和技术进行的简单介绍。
4.3.1 开发工具简介
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,
Struts, JSF, CSS, Javascript, SQL, Hibernate。
14
黑龙江工程学院本科生毕业设计
在结构上,MyEclipse的特征可以分为7类:(1)J2EE模型;(2)WEB开发工具;(3)EJB开发工具;(4)应用程序服务器的连接器;(5)J2EE项目部署服务;(6)数据库服务;(7)MyEclipse整合帮助。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
SQL Server 2005是一种采用T-SQL语言,基于C/S模式的关系型数据库管理系统。SQL Server 2005存储和管理数据有以下优点
(1)每个数据项都存储在中央位置,所有用户都可在这个位置使用它们;
(2)各个客户端上不单独存储数据项复本,从而消除了因用户不得不确保使用的信息相同所带来的麻烦。系统不需要确保使用当前值更新所有数据复本,因为中央位置仅有一个复本;
(3) 可以在服务器上一次性定义业务和安全规则,并对所有的用户平等执行;
(4)可以在数据库内通过使用约束、存储过程和触发器来强制执行规则。还可在服务器应用程序中执行规则,因为这些应用程序也是许多客户端访问的中央资源;
(5)关系数据库服务器只返回应用程序所需要的数据,优化了网络流量;
(6)最大程度地降低硬件的成本,由于数据不是存储在每个客户端上,客户端不必耗费磁盘空间来存储数据。客户端无需在本地增加管理数据的功能,同时,服务器不需将处理能力耗费在显示数据上;
(7)可以配置服务器以优化检索数据所需的磁盘输入/输出容量,配置客户端以优化从服务器检索数据的格式;
(8)可以将服务器存储在一个相对安全的位置,并配备如不间断电源供应系统这样的设备,这比完全保护每个客户端更经济;
(9)维护任务(例如备份和恢复数据)得到简化,因为这些任务都可以集中在中央服务器上执行。
4.3.2技术简介
本系统采用MVC框架,MVC(Model-View-Controller)是一种设计 模式,15
黑龙江工程学院本科生毕业设计
它强制性地把应用程序的输入、处理和输出分开。MVC把应用程序分成3个核心:模型层、视图层和控制层,它们分别担负不同的任务。其中视图层向用户显示相关的数据,并能接受用户的输入数据,但是它并不进行任何实际的业务处理。模型层表示业务数据和业务逻辑。控制层接收用户输入并调用模型和视图去完成用户的需求。
本系统需要用到的Java相关技术有jsp技术、servlet技术、jdbc技术、SSH框架。其中,关键的技术难点在于Struts技术的运用。Struts技术是基于MVC的Web应用框架。在Struts框架中,模型层由实现业务逻辑的JavaBean组件构成,控制层由ActionServlet和Action来实现,视图层由一组JSP文件构成。
4.4 数据库概念结构设计
数据库表如下:
4.4.1.登录表(user)
属性 类型 主键/外键 是否为空 注释
id
password
name
char(12)
char(12)
char(8)
主键
否
否
否
用户ID
密码
用户名
4.4.2.管理员表(admin)
属性
aid
password
name
类型
char(12)
char(12)
char(8)
主键/外键
外键(user)
是否为空
否
否
否
注释
管理员ID
密码
用户名
4.4.3.教师表(teacher)
属性
tid
password
name
类型
char(12)
char(12)
char(8)
主键/外键
外键(user)
是否为空
否
否
否
注释
教师ID
密码
用户名
16
黑龙江工程学院本科生毕业设计
4.4.4.学生表(student)
属性
sid
password
name
class
department
major
类型
char(12)
char(12)
char(8)
char(4)
nchar(20)
nchar(20)
主键/外键
外键(user)
是否为空
否
否
否
注释
学生ID
密码
用户名
班级
系科
专业
4.4.5.课程表(course)
属性
cid
name
capcity
remain
classTime
classAdress
startSCTime
endSCTime
类型
char(12)
char(8)
smallint
smallint
smalldate
nchar(20)
smalldate
smalldate
主键/外键
外键(user)
是否为空
否
否
注释
课程ID
课程名
课程容量
剩余容量
上课时间
上课地点
开始选课时间
结束选课时间
4.4.6.选课表(selectCourse)
属性
sid
cid
name
类型
char(12)
char(12)
float
主键/外键
外键(student)
外键(course)
是否为空
否
否
否
注释
学生ID
课程ID
成绩
4.4.7.评教表(judgeTeacher)
属性
tid
cid
name
类型
char(12)
char(12)
float
主键/外键
外键(teacher)
外键(course)
是否为空
否
否
否
注释
教师ID
课程ID
成绩
17
黑龙江工程学院本科生毕业设计
4.5 数据库的完整性和安全性
4.5.1 数据库的完整性
数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。
本系统中定义了表与表之间的联系有助于实现完整性规则,一般在程序中实现具体的完整性控制。
4.5.2 数据库的安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,而且为许多用户直接共享,是宝贵的信息资源,系统的安全保护措施就显得更为重要,它保护数据库防止恶意的破坏和非法的存取。
本系统包括数据库的安全和服务器的安全。采用管理员表示和鉴定的方法实现数据库的安全,此安全管理措施并不在前台开发工具中实现,而是在后台数据库中实现。在登录数据库时,系统让管理员户表示自己的身份,不同的管理员权限不同,系统进行核实,鉴别此管理员是否为合法用户,若是,系统进一步核实用户,通常要求用户输入口令,系统和对用户口令以鉴别用户身份。服务器的安全也是通过用户在登录服务器时输入合法的用户名和密码来实现的。这是一种简单可行的方法,实现起来比较方便。没有采用更加复杂的系统安全管理措施是因为本管理系统一般是应用在校园网中,采用安全管理措施主要是为了防止没有修改权限的用户无意间修改了数据,因此采用用户标识和鉴定的安全管理措施就能够保障数据库的安全性。
4.6登录用到的触发器
--当插入学生时,自动的在用户(admin)表中插入相应的学生编号且级别为18
1、
黑龙江工程学院本科生毕业设计
密码为默认值
create trigger insert_student
on student
for insert
as
begin
declare @id char(20),@name char(20)
select @id=tId,@name=tName from inserted;
if not exists(select userId from admin where userId=@id)
insert into admin(userId,userJiBie,userName) values(@id,1,@name);
end
GO
--当插入教师时,自动的在用户(admin)表中插入相应的教师编号且级别为3、密码为默认值
create trigger insert_teacher
on teacher
for insert
as
begin
declare @id char(20),@name char(20)
select @id=rId,@name=rName from inserted;
if not exists(select userId from admin where userId=@id)
insert into admin(userId,userJiBie,userName) values(@id,3,@name);
end
GO
--当插入管理员时,自动的在用户(admin)表中插入相应的管理员编号且级别为5、密码为默认值
create trigger insert_administrator
on administrator
for insert
as
begin
declare @id char(20),@name char(20)
select @id=d,@name=ame from inserted;
if not exists(select userId from admin where userId=@id)
insert into admin(userId,userJiBie,userName) values(@id,5,@name);
end
GO
19
黑龙江工程学院本科生毕业设计
4.7 数据库逻辑结构设计
4.7.1数据库的需求分析
依据课程管理系统的处理需求,对就数据表的设计及功能如下:
(1)班级信息表:存放所有班级的基本信息。
(2)课程信息表:存放所有课程的基本信息。
(3)学生信息表:存放学生的基本信息。
(4)教师信息表:存放教师的基本信息。
(5)管理员信息表:存放订管理员的基本信息。
(6)选课信息表:存放学生选课的基本信息。
(7)评教表:存放学生评价教师的基本信息
(8)信息表:存放一些登录信息的表。
4.7.2数据库的逻辑设计
4.7.2.1 实体与属性之间的关系
E-R模型的组成元素有:实体、属性、联系。E-R模型用E-R图表示。实体是用户工作环境中所涉及的事务,属性是对实体特征的描述。
(1)模型中的实体相当于实体集、一个表,而不是单个实体或表中的一行。实体用矩形框表示,实体名称标注在矩形框内。用菱形表示实体间的联系,菱形框内写上联系名,用无向边把菱形分别与有关实体相连接,在无向边旁标上联系的类型。
(2)属性是实体的性质。用椭圆框表示,与实体之间用一条线相连表的主码是关键属性,关键属性项加下划线。
(3)各子系统模块中主键相同的字段之间存在着相互关联的关系。
(4)在程序中实现对他们的完整性和一致性控制。
4.7.2.2 E-R模型
20
黑龙江工程学院本科生毕业设计
班级
系科
专业
系科
密码
课程名
姓名
ID
课程ID
成绩
学生ID
学生
N
管理
管理
M N
M
管理
N
讲授
1
教师
姓名
姓名 密码
ID
剩余容量
N
选课
密码
M N
课程容量
1
课程
开始选课时结束选课时ID
上课时间
上课地点
ID
管理员
4.8 数据流图及程序结构框图
4.8.1、核心模块数据流图
21
黑龙江工程学院本科生毕业设计
评教通知
课程表
选课通知
生成网上选课名单
选课
时间未到或选课失败
评教
选课成功
选课表
评教处理
评教表
成绩录入
录入成绩
教师
设置评教时间
选课处理
选课成功
成绩处理
设置选课时间
管理员
学生
4.8.2、程序结构图
系统采用MVC设计模式,M(Model)模型层用javabean表示业务逻辑连接操作数据库等,V(View)视图层用jsp表示各用户界面,C(Control)控制层用Servlet快速的控制反转功能调用M业务逻辑层。
因此,系统程序结构为(由于空间有限只列出了部分类的属性和方法,其他都隐藏了):
4.8.2.1.用户登录及其处理类图:
22
黑龙江工程学院本科生毕业设计
这是一个servlet用于控制翻转等起控制器作用这是一个Bean类,用于封装各种具体信息UserClServlet这是一个业务处理类,用于处理各种请求UserBeanUserBeanCl
4.8.2.2.接数据库类:
4.8.2.3.个性服务信息及其处理类图 :
InformationClServletInformationBeanInformationBeanCl
4.8.2.4.管理员及其处理类图:
AdminClServletAdminBeanAdminBeanCl
4.8.2.5.课程及其处理类:
23
黑龙江工程学院本科生毕业设计
CourseClServletCourseBeanCourseBeanCl
4.8.2.6.学生及其处理类图:
StudentClServletStudentBeanStudentBeanCl
4.8.2.7.教师及其处理类图:
TeacherClServletTeacherBeanTeacherBeanCl
4.8.2.8.评教及其处理类图:
4.8.2.9.选课及其处理类:
24
黑龙江工程学院本科生毕业设计
第5章 程序源代码及其说明
5.1、登录模块核心代码:
说明:a)课程管理系统中系统安全性方面非常重要,防止数据库注入漏洞,用户名、密码、级别分开判断b)创建系统失效时间,进一步增强安全性。可在刚登录进系统时为每个用户创建一个Session,并设置失效时间。代码如:
HttpSession hs=sion();
InactiveInterval(600);//600秒即10分钟
然后在每个页面判断Session是否为空,若为空则回到登录界面重新登录。
/**
* 数据库连接类
* @author 王龙 11/06/10
*
*/
public class ConnectDB {
private Connection ct=null;
/**
* 数据库连接方法
* @author王龙 11/06/10
* @return 连接Connection
*/
public Connection getConnection(){
try{
25
黑龙江工程学院本科生毕业设计
e("verDriver");
ct=nection("jdbc:sqlserver://localhost:1500;DatabaseName=EMS",
"zck", "583");
}catch(Exception e){
n("----------nection()--------------");
tackTrace();
}
return ct;
}
}
/**
* function:完成用户登录验证
* @author 王龙
* @param user:用户ID
* @param password:用户密码
* @param grade:用户级别
* @return 用户级别
*/
public int checkUser(String user, String password, String grade) {
int b = -1; //用户级别
try{
ct=new ConnectDB().getConnection();
//单写的ConnectDB类,其中getConnection()用于与数据库连接,以增加系统扩展性
ps=eStatement("select rtrim(userPassword), "
+ "rtrim(userJiBie)"
+" from admin where userId=?");
ing(1, user);
rs=eQuery();
if(()){
if(ing(1).equals(password)){
if(ing(2).equals("" + grade)){
b = nt(grade); //单独判断以防止注入数据库漏洞
}
}
}
}catch(Exception e){
n("----------checkUser出错-------------");
26
黑龙江工程学院本科生毕业设计
tackTrace();
}finally{
(); //单写的一个方法专用于关闭数据库连接
}
return b;
}
/**
* fuction:用户关闭数据库连接
* @author 王龙
*/
public void close(){
try {
if(rs!=null){
();
rs=null;
}
if(ps!=null){
();
rs=null;
}
if(ct!=null){
();
ct=null;
}
} catch (SQLException e) {
n("----------close()出错-------------");
tackTrace();
}
}
27
黑龙江工程学院本科生毕业设计
5.1.1.非法登录时的界面:
5.2、课程管理系统选课模块中能否选课时间的核心代码
说明:a)因为数据库中设定日期时间格式为xxxx-xx-xx形式而Date类能转换的形式是 xxxx/xx/xx所以要将其转换,然后再比较。b)将此方法写在单独的日期处理类里,以便用的此方法时,直接调用即可,从而增加复用性
/**
* 选课时间处理方法:用于判断是否能选课以及能否评教
*
@author 张成昆
* @param beginDate 开始选课时间
* @param endDate 结束选课时间
* @return 是否能选课
*/
public boolean dateJudge(String beginDate,String endDate){
boolean b = false;
Date nowTime = new Date();
//取得服务器当前时间
beginDate = e('-', '/');
//选课开始时间中"-"替换为"/"便于将字符串转换成时间类
28
黑龙江工程学院本科生毕业设计
endDate = e('-', '/');
Date begindate = new Date(beginDate);
//将字符型转换成特定时间类
Date enddate = new Date(endDate);
if(e()>=e()&&e()<=e()){
//比较是否能够选课及评教,其中getTime()返回自 1970年1月1日00:00:00GMT 以来此 Date 对象表示的毫秒数
b=true;
}
return b;
}
5.2.1.没到选课时间时,提示界面
说明:核心代码如下:
StudentBeanCl sbc = new StudentBeanCl();
String courseId = ameter("courseId");
String beginSelectCourseTime = inSelectCourseTime(courseId).trim();
String endSelectCourseTime =
SelectCourseTime(courseId).trim();
DateFunction df = new DateFunction();
if(dge(beginSelectCourseTime, endSelectCourseTime)){
String studentId = ameter("studentId");
SelectCourseBeanCl scbl = new SelectCourseBeanCl();
ArrayList al = OnlineCourse();
ArrayList haveSelectCourseBeanList =
SelectCourse(studentId);
ribute("haveSelectCourseBeanList",
haveSelectCourseBeanList);
ribute("allCourse", al);
uestDispatcher("student/student_").forward(request, response);
}else{
n("");
}
29
黑龙江工程学院本科生毕业设计
5.2.2.管理员设置选课时间顺序错误时
说明:相应的javascript代码:
30
黑龙江工程学院本科生毕业设计
5.2.3.选课成功时,在当前页面显示选课结果
31
黑龙江工程学院本科生毕业设计
5.2.4.学生可以对相应的授课老师进行评教
5.3、发送邮件模块核心代码
说明:鉴于每次回家时,家里网络不是太好,登录学校网站成绩很困难,有时因网络超时而不能查询到成绩,因此,可以由管理员统一,在特定时间发送邮件到每个同学的邮箱,从而可在每个人的邮箱中就可查询到个人的这个学期的成绩。
/**
* 发送邮件
* @author 王龙
*/
public boolean send(){
//创建一个属性对象
Properties props = new Properties();
//指定SMTP服务器
("", SMTPHost);
//指定是否需要SMTP验证
("", "true");
try{
//创建一个授权验证对象
SmtpAuth auth = new SmtpAuth();
ount(user,password);
32
黑龙江工程学院本科生毕业设计
//创建一个Session对象
Session mailSession = aultInstance(props,auth);
ug(true);
//创建一个MimeMessage 对象
MimeMessage message=new MimeMessage(mailSession);
//指定发件人邮箱
m(new InternetAddress(from));
//指定收件人邮箱
ipient(,new
InternetAddress(to));
//指定邮件主题
ject(subject);
//指定邮件内容、ContentType及编码方式
tent(content,"text/html;charset=gb2312");
//指定邮件发送日期
tDate(new Date());
//指定邮件优先级 1:紧急 3:普通 5:缓慢
der("X-Priority","3");
anges();
//创建一个Transport对象
Transport transport = nsport("smtp");
//连接SMTP服务器
t(SMTPHost, user, password);
//发送邮件
ssage(message, Recipients());
();
return true;
}catch(Exception ex){
tackTrace();
return false;
}
}
//定义一个SMTP授权验证类
static class SmtpAuth extends Authenticator{
String user,password;
//设置帐号信息
void setAccount(String user,String password){
= user;
rd = password;
}
33
黑龙江工程学院本科生毕业设计
//取得PasswordAuthentication对象
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(user,password);
}
}
5.3.1、邮件发送成绩单界面如下
5.3.2、发送给s000001丽丽同学的邮件如下
34
黑龙江工程学院本科生毕业设计
5.3.3、发送给s000002王敏同学的邮件如下
5.3.4、发送邮件给未选上课的学生:
35
黑龙江工程学院本科生毕业设计
5.3.5、张月月s000003收到的选课信息:
5.4、报表打印模块核心代码:
说明:a)先用iReport3.0.0做好模板并为程序留有接口,这样报表就能根据数据库动态变化。b)做好后编译、运行,生成xxxx. jasper结尾的文。c)将此文件导入到WebRoot/iReport/下d)jsp文件头部应引入包:
<%@ page language="java"
import=".*,.*,.*"
pageEncoding="gb2312"%>
<%@ page
import=".*,tDB.*,.*,.*" %>
File reportFile = new
File(lPath("iReport/"));
//获得模板文件
Connection conn = new ConnectDB().getConnection();
//连接数据库,ConnectDB类是自定义的类用于数据库的连接
try {
byte[] bytes = ortToPdf(h(), null, conn);//将文件动态绑定到数据库,更新数据
if(conn!=null){ //关闭数据库
try {
if(!ed()){
36
黑龙江工程学院本科生毕业设计
();
}
} catch (SQLException e) {
tackTrace();
}
}
tentType("application/pdf");
//调用系统pdf工具
tentLength();//设置内容大小
ServletOutputStream outputStream = putStream();
//打开数据流
(bytes, 0, );
//向缓存中写动态生成的文件内容
();//将缓存区中的数据写入到pdf工具中
();
} catch (JRException e) {
tackTrace(); }
5.4.1、未选上课的学生报表:
5.4.2、学生报表生成页面如下
37
黑龙江工程学院本科生毕业设计
5.5、其他模块图:
5.5.1添加学生图(带校验):
38
黑龙江工程学院本科生毕业设计
5.5.2添加学生成功时,自动关闭窗口,并刷新父窗口:
说明:相应的javascript核心代码:
39
黑龙江工程学院本科生毕业设计
5.5.3、学生,教师,管理员可修改登录密码:
40
黑龙江工程学院本科生毕业设计
5.5.4、教师录入成绩:
5.5.5、学生可查询成绩,教师也可查询成绩,管理员可以查询所有信息:
5.5.5.1、学生精确查询成绩:
41
黑龙江工程学院本科生毕业设计
5.5.5.2、管理员可以查询所有信息:
5.5.5.3、管理员可以设置系统通知信息:
42
黑龙江工程学院本科生毕业设计
5.5.5.4、相应的学生都可以查看系统通知信息:
第6章 系统测试分析
6.1 系统测试目的和原则
在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。我们力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。目前软件测试仍然是保证软件质量的关键步骤,它是对软件规格说明、设计和编码的最后复审。
尽管面向对象技术的基本思想保证了软件应该有更高的质量,但无论采用什么样的编程技术,编程人员的错误都是不可避免的,而且由于面向对象技术开发的软件代码重用率高,更需要严格测试,避免错误的繁衍。因此,软件测试在面向对象编程里更具有它的重要性。
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个43
黑龙江工程学院本科生毕业设计
步骤地继续。大型软件系统通常由若干个子系统组成,每个子系统又由许多模块组成。因此,大型软件系统的测试的基本层次如图6-1所示。
需求规格说明系统测试概要设计集成测试详细设计单元测试编码
图6.1 测试的基本层次
(1) 单元测试 单元测试的用例从单元详细设计中导出。在单元测试中可以采用功能性测试和结构性测试两种。
(2) 集成测试 在这个测试步骤中所发现的往往是概要设计的错误。
(3) 系统测试 在这个测试步骤中所发现的往往是需求规格说明的错误。一般来说,系统测试是功能性测试,不是结构性测试。
6.2 JSP的中文乱码问题
问题描述及解决办法:显示信息时出现了中文文字显示的问题。Java语言默认的编码方式是Unicode,而我们通常使用的文件和数据库都是基于 GB2312或者BIG5等方式编码的,在程序中经常会碰到汉字的处理及显示的问题。在向网页输出中文字符串的时候,经常会采用n(string)或者<%=string%>方式,那么必须转换,方式是通过<%@page
ContentType=”text/html;charset=gb2312”%>定义输出字符集,从而实现内码的自动转换。
中文作为参数传递出现了乱码的问题。原因是客户提交的中文信息经浏览器编码到达服务器后,JSP无法将其正确解码。而事实上浏览器缺省的编码方式为ISO-8859-1,所以我们在处理中文参数时,把客户提交的中文参数先转换后再应用。通过以下的方法解决这个问题。
<%@ page content-Type=”text/html;charset=gb2312”%>,就可以解决汉44
黑龙江工程学院本科生毕业设计
字显示问题。在把数据输入到数据库中前,进行下面的转换:
byte[] temp=es(“iso-8859-1”);
String desString=new String(temp);
得到的desString就可以写入到数据库中了。
6.3 测试环境
在测试中我采用windows XP sp3系统
6.4功能测试
测试中将测试包括用户登录级别测试、学生登录后操作测试、教师登录后操作测试、管理员登录后操作测试等功能。
6.5测试结果
系统中所涉及的功能基本都可以实现。
结 论
1、设计刚开始是没有很好分析系统功能、数据库设计也存在问题。比如数据库表设计不够完善,在编码阶段,当想到表中缺少某字段时才添加,此时程序也必须做相应的修改,这样很耽误时间,有可能有没考虑到的细节导致程序出错。以此,编程启动阶段,系统功能图、E-R模型、数据库表及其属性须考虑全面仔细。
2、开发方法还采用面前结构化的开发方法;同时由于时间关系,框架使用还不成熟,所以采用jsp+javabean+servlet技术而没有用struts+hibernate+spring当前比较流行的框架来做,无论在开发效率、可移植性、可维护性还是面向市场性都不太适合当前企业需求。希望毕业设计时,再用框架。
45
黑龙江工程学院本科生毕业设计
3、系统加入邮件发送技术,根据实际情况采取相应对策。
4、通过此次设计我学到了很多东西,同时感到自身知识的匮乏和考虑问题不够仔细详尽,还有待提高。
参考文献
【1】《UML基础与Rose建模案例》(第2版) 人民邮电出版社 2007 吴建
郑潮 汪杰 编著
【2】《软件工程—理论、方法与实践》 高等教育出版社 孙家广 主编 刘强 编著
【3】《Jsp完全自学手册》—张银鹤 冉小芠 刘治国—清华大学出版社
【4】《Java Web 整合开发 jsp+ajax+structs+hibernate》—电子工业出版社—刘斌著
【5】《Java Web开发技术方案宝典》—人民邮电出版社—王国辉 王毅 尹相群编
【6】JavaServer Pages Standard Tag Library Version 1.1 Pierre Delisle编著
【7】《iReport3.0.0使用教程》/?load=read&id=828川江号子原创
【8】《数据库系统概论》—王珊 萨师煊—高教出版社
【9】孙更新 Java毕业设计指南与项目实践 科学出版社 2008
致 谢
在做毕业设计的这几个月的时间是我学生生涯中最有价值的一段时光。这里有治学严谨而不失亲切的老师,有互相帮助的同学,更有向上、融洽的学习生活氛围。借此论文完成之际,我想向所有人表示我的谢意。
首先要感谢计算机系的所有老师,老师们渊博的专业知识,严谨的治学态度给我留下了深刻的印象。在大学的三年时间里是他们让我学会了如何学习,更重要的是教会了我怎样做人和做事。
感谢我的毕业设计老师赵峰老师,在我的毕业设计中,他的指导给予了我极大的帮助,使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我有了很大收获。
感谢所有的指导老师们,对他们的细心帮助和指导表示由衷的感谢。在这段46
黑龙江工程学院本科生毕业设计
时间里,我从他们身上不仅学到了许多的专业知识,更感受到了他们工作中的兢兢业业,生活中的平易近人。此外,他们严谨的工作态度和忘我的工作热情更值得我去学习。
还要感谢给与我帮助的我们项目小组的其他成员,他们在我的毕业设计过程中经常给我提出许多关键性的问题,使我受益匪浅。
感谢四年来与我倾心相交的朋友们,怀念我们相互支持、共同进取的日子,怀念我们一起青梅煮酒,纵论天下的日子。感谢四年来你们对我的支持和帮助,我一无所拒,惟感领而已。
更要感谢辛苦养育我多年的父母,正是由于他们对我支持和鼓励,我才能够顺利地完成学业,他们是我学习和生活的精神支柱,今后我将竭尽所能,努力报答他们。
最后,我要感谢所有关心帮助过我的人。
谢谢!谢谢!
47
版权声明:本文标题:基于web的课程管理系统 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705427913h484383.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论