学生考试与成绩管理系统开发毕业设计.doc_第1页
学生考试与成绩管理系统开发毕业设计.doc_第2页
学生考试与成绩管理系统开发毕业设计.doc_第3页
学生考试与成绩管理系统开发毕业设计.doc_第4页
学生考试与成绩管理系统开发毕业设计.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

学生考试与成绩管理系统开发毕业设计目 录第一章 绪论11.1课题背景及意义11.2 课题的主要工作11.3论文组织1第二章 系统分析32.1需求分析32.1.1 用户需求分析32.1.2 系统性能需求分析42.2 可行性分析42.2.1 经济可行性分析52.2.2 运行可行性分析52.2.3 技术可行性分析52.3 开发语言与工具介绍52.3.1 Java 语言简介52.3.2 JSP简介62.3.3 JavaBean 简介62.3.4 SQL查询语言概述62.3.5 Struts(MVC 的一种开放源码实现)简介72.3.6 J2EE背景知识介绍82.3.7 Mysql 数据库简介92.3.8 JDBC 驱动程序简介102.3.9 TOMCAT 6.0112.3.10 Dreamweaver112.4本章小结11第三章 系统设计123.1系统概要设计123.2功能模块设计123.2.1管理员模块设计123.2.2 教师模块设计133.2.3 学生模块设计143.3 数据库设计153.3.1 ER图设计153.3.2数据库表设计173.4 本章小结19第四章 系统实现204.1 管理员模块实现204.2教师模块实现314.3学生模块实现334.4异常处理模块实现404.5本章小结40第五章 系统测试415.1开发环境415.2 运行环境415.3单元测试415.4集成测试415.5 本章小结42结束语43致 谢44参考文献45附录46南京邮电大学2012届本科生毕业设计(论文)第一章 绪论在这一章里解决的问题是论文课题提出的具体背景,同时将具体分析设计的现实意义。最后一节里,将计划好整个论文的组织结构。并将之作为系统开发的指南针。1.1课题背景及意义学生考试与成绩管理一直都是学校工作中的一项重要的内容,但传统的管理模式有很大的不方便性,例如:考试时间、地点固定,成绩录入繁琐,成绩查询单一且不便等。为此想到推出基于Web平台的学生在线考试与成绩管理系统,目前已有的与此系统类似的系统只能完成简单地成绩管理,不具备在线考试和成绩查询分析功能。这样就突显了此系统的重要现实意义。计算机与网络技术的飞速发展,从根本上改变了人类信息管理与交流的方式。基于web平台的学生考试和成绩管理系统,就是因势而生的新生代产品。这种新时代的网络化趋势正是进行此次毕业设计的主要原因。1.2 课题的主要工作这个学生考试与成绩管理系统主要研究对象是学生、教师、管理员三个用户,这就形成了三个模块,通过这三个模块使整个系统运行起来,从而实现学生的在线考试和成绩管理。课题的目的是做出一个分不同角色的系统,通过不同的角色完成不同的功能。通过管理员和教师完成后台课程套题和考试题目以及学生成绩的维护功能,从而实现前台的在线考试和成绩查询分析功能。课题研究过程中初步事项是进行可行性分析、需求分析,这样主要的工作是对现今的学生考试和成绩管理进行调查,这些工作包括对传统的考试和现在存在的教务管理软件的调查分析,并和老师、学生、教务管理人员进行面对面的问答式调查,直接研究相关的教务管理系统。课题研究中期工作,主要是系统功能的设计与实现,具体包括管理员、教师、学生各个模块,逐步完成系统功能的前台页面设计。然后结合Mysql数据库建立对应的表格完成系统的设计和实现。课题研究后期工作,先是反复对系统的各个模块进行多次测试,查看各个模块是否能够正常运行;然后把各个模块整合起来,对系统进行整体调试,查看系统的整体运行情况,并优化操作;最后总结我分析课题的相关问题并写入文档中。1.3论文组织通过对系统进行初步研究后,论文决定采用下面的基本框架组织全文:(1)绪论,主要是分析课题研究的背景和具体实施的意义,课题的主要工作,以及论文的组织形式。(2)系统分析,从各个方面上分析系统的需求,论证课题是否可行,确立在课题研究中将要进行的主要工作。当然也牵涉到了开发工具选取的问题,根据工具使用的难易程度结合自己的技能水平,选择合适的工具。(3)系统设计,通过建立好系统设计的主要思路,完成系统要求的功能设计,做好功能模块图。对数据库的具体内容进行构思,实现数据库表格和表格数据的合理安排。(4)系统实现,选举比较重要的模块进行详细的实现解说。说明管理员、教师、学生模块的实现方法,以及数据库的实现。(5)系统测试,主要是介绍系统的测试工作。(6)结束语,主要是对整个课题的一个整体总结与展望。第二章 系统分析2.1需求分析本系统属于教务管理系统的一个子系统。教务管理系统平台充分利用互联网络B/S管理系统模式,以网络为平台,为各个学校教务系统的管理提供一个平台,帮助学校管理教务系统,用一个账号解决学校教务教学管理,并且学校可以自由选择学校需要的教务管理系统,灵活地定制符合学校自己实际情况的教务系统1。教务工作人员通过学生考试和成绩管理这个子系统来进行学生的考试和成绩管理。本系统是针对学生考试与成绩管理现状而设计的。目前很多学校仍采用传统的学生考试与成绩管理模式,这种模式有很大的不方便性,例如:考试时间、地点固定,教务管理人员信息、学生成绩维护繁琐不便,成绩查询单一且不便等。计算机与网络技术的飞速发展,从根本上改变了人类信息管理与交流的方式。因此,开发一款网络版的考试与成绩管理系统就变得十分必要了。为此想到推出基于Web平台的学生在线考试与成绩管理系统,通过该系统可以实现教务人员在线维护各种信息,教师可以查询分析学生的成绩,学生可以在线考试、查询分析个人成绩。由于系统主要是为了更加方便和准确的管理信息数据,所以人机交互界面的功能要非常完善,能够更好的体现方便,快捷的特点,有效的减少教务管理员的管理工作,更准确、快捷的管理数据。工作人员只需要掌握一些基本的电脑使用方面知识便可以顺利的使用该系统。系统一经投入运行,便能显示其独特性。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定系统的功能。系统必须充分考虑今后可能的扩充和改变。在这里我们主要分析了用户有什么样的具体要求和系统性能的要求。2.1.1 用户需求分析用户的需求分析包括三大模块:管理员需求,教师需求和学生需求。(一) 管理员需求:(a)管理员信息维护主要是对管理员信息的增、删、改、查。(b)教师信息维护 主要是对教师信息的增、删、改、查。(c)学生信息维护主要是对学生信息的增、删、改、查。(d)考生信息维护主要是对考生信息的增、删、改、查。(e)课程信息维护主要是对课程信息的增、删、改、查。(f)题目信息维护主要是对题目信息的增、删、改、查。(g)学生成绩维护 主要是对学生成绩增、删、改、查。 (二)教师需求:(a)修改个人资料主要是修改教师自己的个人信息。(b)题目信息维护主要是对自己任教科目的题目的增、删、改、查。(c)学生成绩维护主要是对自己学生成绩的增、删、改、查。(d)成绩查询分析主要是对自己学生成绩的查询分析,例如:及格率、优秀率、平均分等。(三)学生需求(a)修改个人资料主要是修改学生自己的个人信息。(b)个人成绩查询分析主要是对自己成绩的查询分析,例如:各科成绩,某科具体成绩名次等。(c)在线考试主要能在线考试,系统自动生成考题,自动交卷(如果时间到时还未交卷),自动阅卷,自动保存成绩。2.1.2 系统性能需求分析对系统数据的安全性、完整性要求:用户信息保密,只有对应工作人员可见(可查),可改。以下是对系统性能需求分析:(a)准确性和可靠性高(b)页面友好,功能齐全,且可以使用(c)系统便于维护和升级。(d)数据库访问效率高2.2 可行性分析可行性研究的主要任务是在系统初步调查的基础上,对系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。2.2.1 经济可行性分析目前很多学校仍采用传统的学生考试与成绩管理模式,这种模式有很大的不方便性,例如:考试时间、地点固定,教务管理人员信息、学生成绩维护繁琐不便,成绩查询单一且不便等。计算机与网络技术的飞速发展,从根本上改变了人类信息管理与交流的方式。因此,开发一款网络版的考试与成绩管理系统就变得十分必要了。为此想到推出基于Web平台的学生在线考试与成绩管理系统,通过该系统可以实现教务人员在线维护各种信息,教师可以查询分析学生的成绩,学生可以在线考试、查询分析个人成绩。由于系统主要是为了更加方便和准确的管理信息数据,所以人机交互界面的功能要非常完善,能够更好的体现方便,快捷的特点,有效的减少教务管理员的管理工作,更准确、快捷的管理数据。工作人员只需要掌握一些基本的电脑使用方面知识便可以顺利使用该系统。系统一经投入运行,便能显示其独特性。因此,开发一款网络版的考试与成绩管理系统在经济上是完全可行的。2.2.2 运行可行性分析 随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着Internet的发展,用户对于网络、WINDOWS等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。本系统为一个小型的学生管理系统,所耗费的资源非常小,学校的电脑无论是硬件还是软件都能满足条件,因此,本系统在运行上是可行的。2.2.3 技术可行性分析为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。此次开发使用Java作为开发语言,采用JSP+Servlet+JavaBean技术,Tomcat6.0作为Web服务器。本系统的开发利用MySQL作为本系统的数据库,他是一个支持多用户的新型数据库,适用于中小规模的数据量需求。校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用MyEclipse 作为系统开发的开发环境,它提供完善的指令语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化提高,非常有利于以后对新系统的扩展与修改。综上所述,本系统的设计与开发在技术上和硬件设备上的条件都满足,因此,在技术上是可行的。2.3 开发语言与工具介绍2.3.1 Java 语言简介Java是一种真正的面向对象的语言,即使是开发简单的程序,必须设计对象。Java的源代码在传递到客户端执行之前,必须经过编译,因而客户端上必须具有相应平台上的仿真器或解释器,它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。Java采用强类型变量检查,即所有变量在编译之前必须声明。Java是一种与HTML无关的格式,必须通过像HTML中引用外媒体那么进行装载,其代码以字节代码的形式保存在独立的文档中。Java采用静态联,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查2。Java语言是一种与平台无关的编程语言,它具有“一次编写,随处运行”的特点,所以,非常适合于分布式的网络编程。随着 Internet网络在我国的迅速普及,参与和从事网络编程的人员也在不断地增加,同时,也将有更多的网络开发者选用Java语言作为编程工具,而一些C和C+程序员也在逐步转向应用Java语言编写程序3。2.3.2 JSP简介JSP(Java Server Pages)是开发Web动态网站的有效工具,它可以无缝地运行在Unix, Linux和Windows操作平台上。4Java Server Page简称为JSP是由Sun公司在Java语言上开发出来的一种动态网页制作技术,它提供了一种建立动态网页的简单方法,并为开发人员提供了一个Server端框架,基于这个框架,开发人员可以综合使用 HTML,XML,JAVA语言以及其他脚本语言,灵活,快速地创建和维护动态网页,特别是目前的商业系统。作为JavaTM 技术的一部分,JSP能够快速的开发出基于所有Web服务器和应用服务器环境,独立于平台的应用程序,而且具有非常强的可伸缩性。同时,JSP把用户界面从系统内容中分离开来,使得设计人员能够在不改变底层动态内容的前提下改变祖国网页布局5。JSP跨平台的特性己包含了目前大部份网站服务器配置环境,再加上它的语法写作方式可媲美ASP般的易学易懂,而且在网络安全技术方面甚至已超越ASP技术。所以,相信很快的时间内极有可能取代现有网页编译技术,而成为商业网站的新标准。2.3.3 JavaBean 简介JavaBean是一个可以重复使用的软件组件。实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean。JavaBean是基于Java语言的,具有以下特点:(1)可以实现代码的重复利用。(2)易编写,易维护,易使用。(3)可以在任何安装了Java运行环境的平台上的使用,而不需要重新编译。2.3.4 SQL查询语言概述SQL最早的版本是由IBM开发的。该语言最初叫做Sequel,是20世纪70年代早期作为System R项目的一部分实现的。发展到现在,其名称已更改为SQL(结构化查询语言)。现在许多产品支持SQL语言,SQL已经清楚地确立了自己作为关系数据库的标准语言。1986,美国国家标准化组织(ANSI)和国际标准化组织(ISO)发布了SQL标准,称为SQL86。1989年,ANSI发布了SQL的扩充标准:SQL89。该标准的下一个版本是SQL 92标准,其次是SQL:1999标准,SQL:2003标准,SQL:2006标准,和最近的:SQL:2008标准。SQL语言有以下几个部分:数据定义语言(DDL):SQL DDL提供定义关系模式,删除关系以及修改关系模式的命令。数据操纵语言(DML):SQL DML包括基于关系代数和元组关系演算的查询语言,还包括在数据库中的插入、删除、修改元组的命令。完整性:SQL DDL包括定义保存在数据库中的数据必须满足的完整性的约束条件的命令。破坏完整性约束条件的更新将被禁止。视图定义:SQL DDL包括定义视图的命令。事务控制:SQL 提供定义事物的开始和结束的命令。 嵌入式SQL 和动态SQL:嵌入式SQL和动态SQL定义SQL语句如何嵌入到通用编程语言,如C、C+、Java。授权:SQL DDL中包括说明对关系和视图的访问权限的命令6。2.3.5 Struts(MVC 的一种开放源码实现)简介 Struts是使用 Servlet 和 JavaServer Pages 技术的一种 Model-View-Controller 实现。Struts 可帮助您控制 Web 项目中的变化并提高专业化水平。尽管您可能永远不会用 Struts 实现一个系统,但您可以将其中的一些思想用于您以后的 Servlet 和 JSP 网页的实现中7。小学生也可以在因特网上发布 HTML 网页。但是,小学生的网页和专业开发的网站有质的区别。网页设计人员(或者 HTML 开发人员)必须理解颜色、用户、生产流程、网页布局、浏览器兼容性、图像创建和 JavaScript 等等。设计漂亮的网站需要做大量的工作,大多数 Java 开发人员更注重创建优美的对象接口,而不是用户界面。JavaServer Pages (JSP) 技术为网页设计人员和 Java 开发人员提供了一种联系钮带。“模型-视图-控制器”(MVC) 就是用来帮助您控制变化的一种设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合。Struts 是一种 MVC 实现,它将 Servlet 2.2 和 JSP 1.1 标记(属于 J2EE 规范)用作实现的一部分。尽管您可能永远不会用 Struts 实现一个系统,但了解一下 Struts 或许使您能将其中的一些思想用于您以后的 Servlet 的 JSP 实现中8。 模型-视图-控制器 (MVC)JSP 标记只解决了部分问题。我们还得处理验证、流程控制和更新应用程序的状态等问题。这正是 MVC 发挥作用的地方。MVC 通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题:Model(模型): 模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。 View(视图): 视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。 Controller(控制器): 控制器对用户的输入做出反应。它创建并设置模型。 MVC Model 2 : Web 向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器的无状态连接。这种无状态行为使得模型很难将更改通知视图。在 Web 上,为了发现对应用程序状态的修改,浏览器必须重新查询服务器。另一个重大变化是实现视图所用的技术与实现模型或控制器的技术不同3。2.3.6 J2EE背景知识介绍组件框架:组件框架是一种中间件系统,它支持遵守一定标准的有不同组件构成的应用程序。应用组件被塞入这种确立它们运行环境和规定它们交互的框架中。这通常是通过容器,组件持有者来实现的。这种容器也提供通常需要的功能以实现命名,安全性,事务,和持久性!组件框架为组件的执行提供了一个集成的环境,因此显著的减少了在设计,实现,部署和维护应用程序时工作。现在工业上的组件框架标准以对象管理组的CORBA组件模型, SUN 公司的JAVA 2 Platform J企业版J2EE和微软公司的.NET标准,其中在企业里应用最为广泛的组件框架是2EEE。J2EE. J2EE是开发多层企业应用JAVA程序的综合性的标准。J2EE规范定义如下:(a) 组件编程模型。(b) 组件和主服务器的链接。(c) 服务器提供给组件的服务。(d) 各种各样的人物角色。(e) 兼容性检验装置和编译测试程序。在众多的服务列表中,消息通信,事务处理,命名机制和其它应用组件用到的服务是应用服务器必须提供的。用J2EE进行应用开发必须遵守经典的3层结构表现层,业务层和企业信息系统层。属于各层的J2EE组件在开发时遵守具体的J2EE标准。(一)表现层或者网络层这一层实际上又被分为客户端和服务器端。客户端包括浏览器,applets,Java应用程序等和负责和服务器端的表现层或者业务层进行交互。服务器端包括Servlet、jsp和静态网页内容。这些组件负责把业务数据传递给终端用户。数据本身通常从业务层获得有时也从企业信息系统层直接获得。表现层的服务器端通常通过Http协议来进行访问。(二)业务层或者EJB层这一层包含EJB,即企业应用的事务逻辑模型。这些组件提供了持久化机制和事务支持。EJB中的组件通过RMI被调用。在Java虚拟机调用或者异步的消息传递,取决与EJB组件的类型。EJB规范定义了很多种组件。它们在调用风格(同步和异步,本地和远程)与状态(完全状态,不可持久状态,可持久)方面不同。同步调用的EJB组件通过特定的工厂代理对象来表现自己。这种工厂代理对象通常被EJB部署者绑定在JNDI中。EJB对象允许或者本地EJB对象是特定EJB实例的代理。(三)企业信息系统或者数据层这一层指的就是企业信息系统,比如关系数据库,ERP系统,消息系统等。业务层和持久层在资源适配器的帮助下与该层进行通信。资源适配器在Java连结结构中被定义。J2EE编程模型一直被认为是分布式的编程模型,在该模型中应用组件在J2EE服务器上运行并且彼此可以相互交互。经过初始化说明和第一个服务实现后,该技术,更显著的说EJB技术,已经明显地从纯粹的分布式计算模型转向了本地交互。转变的背后有合理的性能有关的原因,然而分布式的特征现在还存在。J2EE规范已经经过了好几次修订,现在最稳定的版本是1.3,1.4版本正处于重审阶段。我们应该把注意力放在1.3版本上,而实际上是在学习后者。适用与商业的J2EE实现可以大量的从BEA系统,IBM,Oracle等赞助商得到。包括JBoss和Jonas在内的开源实现据称兼容性也不错。最近名单上有多出了新的Apache project Geronimo。2.3.7 Mysql 数据库简介Mysql是一个基于关系型数据库模型建立的数据库管理系统软件(DBMS)。它帮助用户方使地得到所需信息,并提供强大的数据处理工具。它可以帮助用户组织和共享数据库信息,以便于根据数据库信息做出有效的决策。另外,仅有这样个数据库管理系统软件(DBMS),则只能进行一些信息系统所需要的简单数据处理,且对操作者有较高的操作技能要求。因此,信息系统的开发者都是在某种数据库管理系统软件DBMS环境下编写相应的应川程序,以形成一个能够满足应用需求且操作尽可能简单的应用型信息系统,这被称之为二次开发。Mysql 还具有以下特点:1) 使信息更易于查找和使用Mysql继续为简便地查找信息提供易于使用的工具。2) 支持 Web 功能的信息共享Mysql 可以通过企业内部网络Internet 很简便地实现信息共享,而且它可以很容易地将数据库定位到浏览器中,它将桌面数据库的功能和网站的功能结合在一起。3) 用于信息管理的强大解决方案高级用户和开发人员可以创建那些将Mysql界面(客户端)的易用性和SQL服务器的可扩展性和可靠性结合在一起的解决方案。4) 改变了数据库窗口可在Mysql容纳并显示新的对象,增强了Mysql 数据库的易用性。5) 提供名称自动更正功能自动解决当用户重新命名数据库对象时出现的常见负面效应。例如,当用户重命名表中的字段时,将自动在诸如查询的相关对象中进行相应的更改。6) 具有子数据表功能子数据表在同一窗口中,提供了嵌套式的视图,这样就可以在同一窗口中专注于相关的数据并对其进行编辑。7) 用户只需简单地将Mysql对象(表、查询等)从数据库放到ODBC数据源中,即可从 Mysql中将数据导出到其他数据库中。8) 数据访问页功能该功能可使用户快捷方便地创建数掂 HTML页,并通过数据 HTML页,将数据库应用扩展到企业内部网络 Internet上。这将帮助用户比以往更快捷、高效的方式共享信息。9) 共享组件的集成Mysql利用新的 Web组件和位于浏览器中的 COM 控件,为用户提供了多种查看和分析数据的方式。10) 交互性Mysql支持OLE DB,使用户可以将Mysql 界面的易用性与诸如SQL Server2000的后端企业数据库的可升级性相结合9。2.3.8 JDBC 驱动程序简介从编程的角度出发,有两个主要的类负责建立与数据库的连接。第一个类DriverManager是在 JDBC API 中提供的为数不多的实际类。 DriverManager负责管理已注册驱动程序的集合,实质上就是提取使用驱动程序的细节,这样程序员就不必直接处理它们。第二个类是实际的 JDBC Driver类。JDBC驱动程序有四种类型。第一种驱动程序:它们都使用 JDBC-ODBC 桥,这是作为 JDK 的一个标准部分包括的。第一种驱动程序通过附加在JDBC-ODBC 桥的“开放式数据库连接性”(Open DataBase Connectivity(ODBC)驱动程序来区分。要连接到一个不同的数据源,您只需要使用 ODBC 管理员注册(或有效地绑定)一个不同的 ODBC 数据源到合适的数据源名称即可。第二种驱动程序也称为部分 Java 驱动程序,因为它们直接将 JDBC API 翻译成具体数据库的API。对于分布式应用程序,这种需求会产生额外的许可证问题,还可能带来可怕的潜在代码分布问题。第三种驱动程序是纯 Java 驱动程序,它将 JDBC API 转换成独立于数据库的协议。JDBC 驱动程序并没有直接和数据库进行通讯;它和一个中间件服务器通讯,然后这个中间件服务器和数据库进行通讯。这种额外的中间层次提供了灵活性:可以用相同的代码访问不同的数据库,因为中间件服务器隐藏了 Java 应用程序的细节。要转到不同的数据库,您只需在中间件服务器上改变参数。第四种驱动程序是纯 Java 驱动程序,它直接与数据库进行通讯。很多程序员认为这是最好的驱动程序,因为它通常提供了最佳的性能,并允许开发者利用特定数据库的功能。当然,这种紧密耦合会影响灵活性,特别是如果您需要改变应用程序中的底层数据库时。这种驱动程序通常用于 applet 和其它高度分布的应用程序10。2.3.9 TOMCAT 6.0Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中。是开发和调试JSP 程序的首选。2.3.10 Dreamweaver Dreamweaver是一款专业的 HTML 编辑器,用于对 Web 站点、Web 页和 Web 应用程序进行设计、编码和开发。Dreamweaver可提供在可视化编辑环境中工作, 利用 Dreamweaver中的可视化编辑功能,可以快速地创建页面而无需编写任何代码。同时,如果要用手工直接编码,Dreamweaver 还包括许多与编码相关的工具和功能。并且,借助Dreamweaver,还可以使用服务器语言(例如 ASP、ASP.NET、ColdFusion 标记语言 (CFML)、JSP 和 PHP)生成支持动态数据库的 Web 应用程序。2.4本章小结在这章里从各个方面上分析系统的需求,论证课题是否可行,确立在课题研究中将要进行的主要工作。当然也牵涉到了开发语言与工具选取的问题,根据工具使用的难易程度结合自己的技能水平,选择最佳方案。在后续的设计、开发、测试中将严格按照本章的分析结果进行。第三章 系统设计3.1系统概要设计系统决定采用Windows 操作系统平台,Tomcat 6.0为服务器,MySQL为数据库,以及面向对象简单易用,功能强大适用范围广的JSP技术。系统的结构体系建立在Web的客户/服务器(B/S)体系结构的基础上,根据用户的输入提供动态信息服务,从而实现交互式教务管理。采用模块化的设计方法,以及一般客户/服务器数据库的数据平台。本系统采用“视图逻辑处理数据库”三层结构体系进行设计和整个系统的开发,即:JSP技术 + Servlet + Mysql 数据库,具体如图3.1:视图数据库逻辑处理图3.1 MVC三层体系结构图a.视图视图是应用程序中用户界面相关的部分,是用户能够看到并与之交互的界面。b.逻辑处理逻辑处理层主要是根据用户提交的请求进行逻辑处理,并把处理结果返回给用户。c.数据库存储各种数据与信息,为前台应用提供支持。登录界面有三种角色可供选择:管理员、教师、学生。不同的角色具有不同的权限,能满足各自不同的需求。3.2功能模块设计系统面向三类用户,分别为管理员、教师、学生,不同的用户具有不同的权限,能满足各自不同的需求。详细的功能设计如下。3.2.1管理员模块设计管理员登陆系统时,在系统主界面中,管理员可以完成如下工作:(a)管理员信息维护主要是对管理员信息的增、删、改、查。(b)教师信息维护 主要是对教师信息的增、删、改、查。(c)学生信息维护主要是对学生信息的增、删、改、查。(d)考生信息维护主要是对考生信息的增、删、改、查。(e)课程信息维护主要是对课程信息的增、删、改、查。(f)题目信息维护主要是对题目信息的增、删、改、查。(g)学生成绩维护 主要是对学生成绩增、删、改、查。管 理 员管理员的整体功能模块设计图如图3.2所示。教师信息维护学生成绩维护 管理员信息维护题目信息维护课程信息维护学生信息维护考生信息维护图3.2管理员模块设计图3.2.2 教师模块设计教师登陆系统时,在系统主界面中,教师可以完成如下工作:(a)修改个人资料主要是修改教师自己的个人信息。(b)题目信息维护主要是对自己任教科目的题目的增、删、改、查。(c)学生成绩维护主要是对自己学生成绩的增、删、改、查。(d)成绩查询分析主要是对自己学生成绩查询分析,例如:及格率、优秀率、平均分等。教师的整体功能模块设计图如图3.3所示。教 师修改个人信息学生成绩查询分析学生成绩维护 题目信息维护图3.3教师模块设计图3.2.3 学生模块设计学生登陆系统时,在系统主界面中,学生可以完成如下工作:(a)修改个人资料主要是修改学生自己的个人信息。(b)个人成绩查询分析主要是对自己成绩的查询分析,例如:各科成绩,某科具体成绩名次等。(c)在线考试主要能在线考试,系统自动生成考题,自动交卷(如果时间到时还未交卷),自动阅卷,自动保存成绩。学生的整体功能模块设计图如图3.4所示。学 生修改个人信息在线考试 个人成绩查询图3.4学生模块设计图3.3 数据库设计用户通过浏览器向服务器发出操作请求然后系统判断请求的合法性后处理操作请求,将结果返回至客户端的浏览器上,这是本系统的总体处理流程思路。数据库总体流程图如图3.5所示。用户(浏览器)系统(WEB服务器)数据库请求操作请求操作处理结果返回结果图 3.5 数据库总体流程图3.3.1 ER图设计(1)管理员实体图如图3.6所示。管理员姓名id号密码图3.6 管理员实体图(2)教师实体图如图3.7所示。教师姓名id号密码图3.7教师实体图科目(3)学生实体图如图3.8所示。学生姓名id号密码图3.8学生实体图性别身份证号Eail电话班级(4)考生实体图如图3.9所示。考生准考证号学生id号考试密码图3.9考生实体图注册时间(5)课程套题实体图如图3.10所示。课程套题课程名课程id号图3.10课程套题实体图学分备注(6)套题题目实体图如图3.11所示。套题题目题目内容题目id号类型图3.11套题题目实体图所属课程号选项B选项C选项A选项D备注正确答案(7)学生成绩实体图如图3.12所示。学生成绩成绩id号学生id号图3.12学生成绩实体图授课教师id号多项分数单项分数总分备注3.3.2数据库表设计(1)管理员信息表,如表3-1所示。表3-1管理员信息表(2)教师信息表,如表3-2所示。表3-2教师信息表(3)学生信息表,如表3-3所示。表3-3学生信息表(4)考生信息表,如表3-4所示。表3-4考生信息表(5)课程套题信息表,如表3-5所示。表3-5课程套题信息表(6)套题题目信息表,如表3-6所示。表3-6套题题目信息表(7)学生成绩表,如表3-7所示。表3-7学生成绩表3.4 本章小结在整个系统中这一章是最重要的,在这里完成了系统的设计,相当于系统要做什么事,有了明确的规定。在“系统概要”的小节里就初步体现了系统如何设计的构思。而后通过紧接着的“功能模块设计”实现了系统的功能规划。然后在后面的“数据库设计”里面,对具体的实体在数据库中的表示进行了阐述,列出了数据库表格。在完成这一章的过程中当然也碰到了一些问题,例如:图表的画法就是难点之一,最终利用基本的office软件完成了操作。第四章 系统实现在上一章里,重点讨论了系统的设计,系统又是如何实现的呢,这就是这一章里面将重点讨论的问题,整个系统的实现是很复杂的,也是很烦琐的。现在重点讨论系统重难点模块的实现。讨论模块如下:管理员模块,教师模块,学生模块和异常处理模块的实现。4.1 管理员模块实现登录界面如图4.1所示,图4.1管理员登录界面登录界面提交给一个Servlet来处理,主要实现代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(UTF-8);String message=null; String id=null;id=request.getParameter(id);HttpSession session=request.getSession(true);session.setAttribute(id,String.valueOf(id);String password=null;password= request.getParameter(password);String kind =null;kind=request.getParameter(kind);String temp =getPassword(request,response,id,kind);if( id!=null&id!=&password.equals(temp)goo(request,response,kind);else message=用户名或密码有误!;doError(request,response,message); public void goo(HttpServletRequest req, HttpServletResponse res,String kind)throws ServletException,IOExceptionString id=null;id=req.getParameter(id);HttpSession session=req.getSession(true);session.setAttribute(LogId,String.valueOf(id);if(kind.equals(student) RequestDispatcher rd = getServletContext().getRequestDispatcher(/student.jsp);rd.forward(req, res); if(kind.equals(teacher) RequestDispatcher rd = getServletContext().getRequestDispatcher(/teacher.jsp); rd.forward(req, res); if(kind.equals(admin) RequestDispatcher rd = getServletContext().getRequestDispatcher(/admin.jsp); rd.forward(req, res); public String getPassword(HttpServletRequest req, HttpServletResponse res,String id,String kind) throws ServletException, IOException String pw=; String kindId = kind+_id; Connection conn = DB.getConn();String sql = select * from +kind+ where +kindId+ = +id+ ;Statement stmt = DB.getStatement(conn);ResultSet rs = DB.getResultSet(stmt, sql);try if(rs.next() ) pw= rs.getString(password); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();finallyDB.close(stmt);DB.close(conn); return pw; 登录成功后跳转到管理员登录首页,如图4.2所示。图4.2管理员登录首页在管理员登录首页中通过如下代码来实现管理员模块到各个子模块: 管理员信息维护 教师信息维护 学生信息维护 考生信息维护 课程套题维护 套题题目维护 学生成绩维护 各个子模块的实现情况如图4.3、4.4、4.5、4.6、4.7、4.8、4.9所示图4.3管理员信息维护页面图4.4教师信息维护页面图4.5学生信息维护页面图4.6考生信息维护页面图4.7课程套题信息维护页面图4.8套题题目信息维护页面图4.9学生成绩维护页面在各个子模块中,管理员可以完成相应信息的增、删、改、查。以学生信息维护为例,其实现代码如下(Servlet处理的):public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding

温馨提示

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

最新文档

评论

0/150

提交评论