- 2.22 MB
- 2022-04-22 13:41:09 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'运用Jsp+Servlet和Oracle开发河南财经政法大学在线考试系统毕业论文目录1引 言11.1课题的背景11.2课题的目的和意义11.3本文的内容安排22开发工具及相关技术32.1系统的B/S结构简述32.2开发环境及开发工具32.2.1Dreamweaver32.2.2Eclipse42.2.3Oracle数据库42.2.4Tomcat服务器42.3相关技术52.3.1CSS+DIV52.3.2JavaScript和jQuery52.3.3Servlet和JSP52.3.4MVC模式62.3.5JDBC72.4本章小结73系统分析83.1系统需求分析83.1.1系统功能的需求83.1.2系统性能的需求83.2系统可行性分析93.2.1经济可行性分析93.2.2技术可行性分析93.3系统流程分析93.3.1业务流程分析103.3.2数据流程分析103.4本章小结114系统设计124.1系统总体规划124.2数据库设计134.2.1概念结构设计13I
4.2.2逻辑结构设计154.3本章小结185系统实施195.1创建与数据库的连接195.2系统的登录页面205.3学生主页面225.3.1考试科目查询225.3.2进行考试225.3.3成绩查询265.4教师主页面275.4.1题库管理275.4.2试卷管理275.4.3考生成绩查询285.5管理员主页面295.5.1人员信息管理295.5.2考试科目管理295.6本章小结306系统测试316.1测试的目标与方法316.2测试用例316.2.1系统登录测试316.2.2学生模块测试326.2.3教师模块测试326.2.4管理员模块测试336.3本章小结337结束语34参考文献35致谢36I
1引 言1.1课题的背景从计算机网络的诞生至今天,计算机网络应用已进入人类社会的各个方面并发挥着越来越重要的作用,我们发现我们的生活、工作、学习等越来越离不开网络。在线考试系统是一款基于网络浏览器的适用于学校以及教育培训机构等的实用型系统,他一改传统的考试模式为我们的考试带来新的体验,是计算机网络应用的标准体现。众所周知,教育是治国之本,因此如何更好的做好教育工作是大家一直都很关注的问题。只有率先认识到网络技术在当今教育中的重要作用,用它解决教育中的问题,把它作为教育的基本工具,才能在全球教育竞争中立于不败之地。如今,越来越多的学校、教育培训机构等都将网络技术应用于教育,通过计算机网络实现在线教育或培训,网络教学便由此而生。目前我国网络教学系统的开发和使用还处于发展阶段,各项功能的实现还不够完善。网络教学包括很多环节,例如选课系统、教学系统、问答系统和考试系统等等。其中很重要的一个环节就是在线考试系统,同时它也是最难实现的环节。目前大多数学校和社会上的考试依然采用传统的考试模式,在此模式下,组织一次考试一般需要经过人工出题、复印试卷、考生考试、人工阅卷和成绩统计等五个环节。显然,教师和考务工作人员的工作量很大,效率也很低,并且难免会出现各种各样的错误,严重影响了教学的效率和质量,可以说传统的考试模式已经逐渐满足不了当今的考试需求。人们迫切需要一种自动化程度相当高的计算机系统来进行在线考试,并进行题库信息的管理。在此背景下,我们需要开发一款在线考试系统。1.2课题的目的和意义在线考试系统将使学校的考试管理工作更加规范化,自动化,简单化。一方面方便考生考试;另一方面减轻教师及考务人员的工作负担,提高工作效率。从而提高教学质量。35
基于网络技术的在线考试系统可借助校园局域网进行。将试题内容放在服务器上,考生通过帐号和密码进行登录参加考试,考试答案也存放在服务器上,这样考试的公平性、答案的安全性可以得到有效的保证。试题可以根据题库中的内容随机生成,可有效避免考试前的押题;同时每个人的考试题目都不会完全一样,这样可有效避免考试抄袭;而且可以采用大量标准格式化的试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排名等操作,便于对考试结果进行分析。可见,采用在线考试模式将是未来考试发展的趋势。因此,结合我校教学考试现状,我设计并开发了河南财经政法大学在线考试系统。1.3本文的内容安排在本论文中,首先论述了在线考试系统的研究背景及其意义;然后对要开发的河南财经政法大学在线考试系统进行了较为详细的分析(包括需求分析、流程分析、系统可行性分析等);对本系统所使用的开发语言、相关技术以及开发环境和开发工具进行了简单的介绍;对本系统进行了功能模块设计(包括考生考试模块、教师管理模块、管理员管理等);在对系统分析与设计的基础上,运用Jsp+Servlet和Oracle开发了河南财经政法大学在线考试系统;最后对已经开发的系统进行了测试。本论文的内容安排如下:第一章、引言,其中介绍了课题研究的背景,课题的目的和意义。第二章、系统开发工具及相关技术介绍,其中包括对B/S结构、CSS+DIV网页布局、JSP、Servlet、Oracle等的简单介绍。第三章、系统分析,其中包括需求分析、系统流程分析、可行性分析等。第四章、系统设计,其中包括功能设计、数据库设计等。第五章、系统实施,对系统的各个模块的实现做详细的介绍。第六章、系统测试,其中包括对测试的目的和方法、简单的测试用例等。第七章、结束语,对在写整篇论文过程中的感受和收获进行总结。35
2开发工具及相关技术河南财经政法大学在线考试系统是基于B/S模式设计的,它选择的前台开发语言为Jsp,后台数据库管理工具为Oracle10G,开发工具为Eclipse,其Web服务器为Tomcat6.0及以上版本。2.1系统的B/S结构简述B/S结构(Browser/Server,浏览器/服务器模式)是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。浏览器通过WebServer同数据库进行数据交互。B/S结构的优点:具有分布性特点,可以随时随地进行查询、浏览等业务处理;业务扩展简单方便,通过增加网页即可增加服务器功能;维护简单方便,只需要改变网页,即可实现所有用户的同步更新;开发简单,共享性强。2.2开发环境及开发工具本系统开发环境选择微软平台作为主导,一方面考虑目前微软的飞速发展,越来越多的企业在规划内部网络时,将微软平台作为首选方案;令一方面从技术角度来讲,微软平台上的应用无论是在开发上,还是在软件的部署上都是非常容易,而且性能优越。以下简单介绍本系统所使用的开发工具:2.2.1DreamweaverDreamweaver是美国MACROMEDIA公司开发(后被Adobe公司收购)的集网页制作和管理网站于一身的所见即所得网页编辑器。Dreamweaver可以用最快速的方式将Fireworks,FreeHand,或Photoshop等档案移至网页上。使用检色吸管工具选择荧幕上的颜色可设定最接近的网页安全色。对于选单,快捷键与格式控制,都只要一个简单步骤便可完成。Dreamweaver能与您喜爱的设计工具,如PlaybackFlash,Shockwave和外挂模组等搭配,不需离开Dreamweaver便可完成,整体运用流程自然顺畅。除此之外,只要单击便可使Dreamweaver自动开启Firework或Photoshop来进行编辑与设定图档的最佳化。本系统采用DreamweaverCS4版本,其特点是界面设计紧凑,使用方便。35
2.2.2EclipseEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,但Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。本系统采用的是Eclipse3.5版本,其特点是性能稳定。2.2.3Oracle数据库OracleDatabase,又名OracleRDBMS,或简称Oracle。是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。Oracle数据库具有数据的大量性、数据的保存的持久性、数据的共享性和数据的可靠性等特点。本系统采用的是Oracle10G数据库。Oracle10G数据库相对于以前版本关键提高有二:1降低管理开销,2提高性能。Oracle10G有对高可用性的增强、新的Flashback能力、支持回滚更新操作;对安全性的增强,便于管理大量的用户;BI方面的增强,包括改进的SQL能力、分析功能、OLAP、数据挖掘的能力等;对非关系型数据存储的能力得到了改进;XML的能力;对开发能力支持的加强,对生物信息学(Bioinformatics)的支持。2.2.4Tomcat服务器本系统运行环境为Tomcat6.0。Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet2.4和JSP2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。2.3相关技术35
2.3.1CSS+DIVCSS是层叠样式表(CascadingStyleSheets)的缩写,用于定义HTML元素的显示形式,是W3C推出的格式化网页内容的标准技术。CSS+DIV是网站标准设计中常用术语之一,是一种比较成熟的网页布局方法。可实现网页页面内容与表现相分离,即在不改变Html源代码的同时,能够根据CSS中对标签的的不同定义而显示出不同的页面效果。能够实现传统的表格(Table)布局定位方式所不能实现的效果。当然,本人在使用中并没有完全摒弃表格(Table),而是DIV与之相结合使用,使页面灵活、工整、多层次的显示。2.3.2JavaScript和jQueryJavaScript是一种能让你的网页更加生动活泼的程式语言,也是目前网页中设计中最容易学又最方便的语言。你可以利用JavaScript轻易的做出亲切的欢迎讯息、漂亮的数字钟、有广告效果的跑马灯及简易的选举,还可以显示浏览器停留的时间。让这些特殊效果提高网页的可观性。本系统中主要使用JavaScript的表单验证功能以及对时间的控制。jQuery是一个优秀的Javascript框架。它是轻量级的js库(压缩后只有21k),它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。jQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。在使用过程中本人发现jQuery与传统的JavaScript相比,优势之一在于JavaScript是单线程的,而jQuery可以实现多线程,即点击一个按钮可以同时触发多个事件,使用起来更加方便。2.3.3Servlet和JSPServlet是JavaServlet的简称,是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。Servlet是位于Web服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP是在Servlet技术基础上发展而来的,但在实际使用中功能又有很大的区别,JSP技术有点类似ASP技术,它是在传统的35
网页HTML文件中插入Java程序段(Scriptlet)和JSP标记(Tag),从而形成JSP文件(*.jsp)。另外用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP技术不是JavaServlet技术的全部,它只是JavaServlet技术的一个成功应用。JSP技术屏蔽了Servlet对象创建的过程,使得Web程序设计者只须关心JSP页面本身的结构、设计好各种标记。有效地分离页面的视图和数据处理等,不必再用println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由页面设计者进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。2.3.4MVC模式MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller)。MVC模式的目的就是实现Web系统的职能分工。Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。View层用于与用户的交互,通常用JSP来实现。Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。使用MVC设计模式,应用程序将被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。本系统将使用第一种常见的MVC设计模式Jsp+Servlet+JavaBean进行开发,即通过创建一些Servlet对象,配合JSP页面来完成整个Web系统。其数据传递过程如图2-1所示:图2-1MVC(Jsp+Servlet+JavaBean)设计模式原理图2.3.5JDBCJDBC(JavaDataBaseConnectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言35
编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JavaAPI编写数据库应用程序。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问Oracle数据库专门写一个程序,为访问SqlServer数据库又专门写一个程序,或为访问Mysql数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。2.4本章小结本章主要介绍了河南财经政法大学在线考试系统所用的开发环境、开发工具以及相关技术。对系统所运用的B/S结构进行了介绍,并结合本系统对将要使用的Eclipse、Oracle开发软件和JSP及MVC等相关技术进行了详细介绍。35
3系统分析系统分析对于河南财经政法大学在线考试系统的设计至关重要,在本章中对河南财经政法大学在线考试系统进行了需求分析、系统流程分析、可行性分析。3.1系统需求分析系统需求分析是为了深入描述系统的功能和性能,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。主要分为功能的需求和性能的需求。3.1.1系统功能的需求河南财经政法大学在线考试系统的设计目的是方便考生及管理人员,所以其整体要求清晰实用、界面亲和、操作简单、运行流畅。系统应该具备以下的基本功能:用户类别:登录系统的身份定为三种,一是管理员,二是教师,三是学生,只有被授权的用户才可以使用本系统。权限管理:系统需要经过有效的身份验证可以登录。用户的身份不同,使用的系统资源也不同。考生只可以参加在线考试;普通教师可以管理题库,控制考试、成绩查询、添加试题、阅卷等。管理员可添加、修改学生、教师、考试科目等信息,可以查询考生成绩。在线考试功能:考生输入帐号和密码登陆系统后,选择考试科目可进行考试,科目有考试时间设置,未到考试时间或考试已结束将不能参加考试。答题中,有倒计时的功能,考试结束时还没提交就自动交卷,系统将自动对客观题进行评分。如果有主观题,能将主观题答案返回至该科目教师页面。试卷管理:由管理员设置考试时间,教师设置题型并向题库中添加试题,试卷随机从题库中抽取试题组合而成。3.1.2系统性能的需求河南财经政法大学在线考试系统的性能要求在稳定的基础上快速反应,操作系统以WindowsXP或WIN7为标准,硬件配置以RAM:2.00GB为标准。基本信息的添加,修改部分反应时间应控制在3秒以内,查询部分应控制在5秒以内,生成试卷的信息量较大,处理的流程较多响应时间会较慢,添加、修改部分的响应时间不应该太长。35
3.2系统可行性分析可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。3.2.1经济可行性分析主要是对项目的经济效益进行评价,利用计算机来实现网上考试以成为适应当今教学管理的方式。开发一套能满足网上考试系统的软件是十分必要的,实现试卷管理和试卷生成自动化,在减少由于认为失误而早成损失的同时,也可以使教师减少工作量。本系统在经济上是可以接受的,并且本系统实施后可以显著提高考试效率,有助于学院完全实现网络化管理。所以本系统在经济上是可行的。3.2.2技术可行性分析技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。软件方面,网络化考试需要的各种软件环境都已具备,数据库方面我们选择的Oracle,能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。其灵活性、安全性和易用性为数据库编程提供了良好的条件。因此,系统的软件开发平台已成熟可行。服务器方面服务器端:由于在线考试是多人同时操作,对服务器的需求是必须考虑的问题。根据我校在校生人数,服务器要求能承受3000-5000人同时在线。300个并发操作响应时间不得超过5秒。由于单纯的Tomcat支持的并发量较小。因此在实际部署系统时服务器端可采用Apache+Tomcat*3的模式加大并发数。服务器端操作系统为Linux,硬件配置为8G内存,2.0GHz、8核CPU。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。3.3系统流程分析河南财经政法大学在线考试系统流程简单,主要是教师向题库中添加试题,管理员设置考试科目信息,学生登录系统选择科目进行考试。下面从业务流程和数据流程两方面对系统进行分析。35
3.3.1业务流程分析业务流程分析,是对系统业务功能的进一步细化,从而得到业务流程图即TFD(TransactionFlowDiagram),是一个反映系统业务处理过程的“流水帐本”。图3-1表示河南财经政法大学在线考试系统核心业务流程图。图3-1系统业务流程图3.3.2数据流程分析数据流程分析就是把数据在现行系统内部的流动情况抽象出来,舍去了具体组织机构、信息载体、处理工作等物理组成,单纯从数据流动过程来考察实际业务的数据处理模式。图3-2表示河南财经政法大学在线考试系统数据流程图。35
图3-2系统数据流程图3.4本章小结软件开发过程中系统分析是很重要的一部分,为了开发出真正满足用户需求的软件产品,本章对系统进行了详细的分析,其中包括对系统的需求分析、可行性分析以及流程分析,从而能够更全面的掌握整个系统的设计流程并且判断系统是否可行。35
4系统设计对河南财经政法大学在线考试系统进行详细的系统分析之后,需要对其进行功能模块和数据库的设计。在本章中,我将会对即将开发的河南财经政法大学在线考试系统进行详细设计。4.1系统总体规划河南财经政法大学在线考试系统按用户角色分为三大模块:管理员模块:实现教师信息,学生信息,考试科目信息的添加、修改、删除、查询等功能;教师模块:实现题库管理、试卷管理、学生成绩查询等;学生模块:包括查询考试科目、开始考试、个人成绩查询等功能。对于河南财经政法大学在线考试统进行整体功能分析之后,可以设计出该系统的功能模块总体框架如图4-1所示:图4-1系统总体规划图35
三种角色通过同一登录界面进入不同操作页面:其中管理员帐号和密码由系统后台添加。教师和学生帐号和密码由管理员添加,个人不能注册。1.管理员:(1)学生信息管理:管理每个学生的个人信息,包括学号、姓名、院系、专业、班级等。管理员可以对学生信息进行添加、修改、删除、查询等操作。并且可以查询所有考生的考试成绩。(2)教师信息管理:管理每个教师的个人信息,包括工号、院系、所教科目等。管理员可以对教师信息进行添加、修改、删除、查询等操作。(3)考试信息管理:管理考试安排,包括考试科目、考试日期、考试开始时间、考试结束时间等。管理员可以对考试科目进行添加、修改、删除、查询等操作。2.教师:(1)题库管理:题型包括选择题、填空题、问答题。教师可以对各种题型进行增加、修改、删除、查询。添加试题时可以设置试题难度。教师只能对所教科目的题库进行操作。(2)试卷管理:可以设置考试题型,包括各种题型的数目和每道题的分值。如果出问答题,则可查询到学生的答案,进行手工批改,并提交成绩至数据库。(3)成绩查询:教师可以查看可以查询所教科目的学生成绩。3.学生:(1)考试科目:可以显示全部考试科目,考生也可以根据关键字搜索想要考试的科目。科目有时间设置,未到考试时间或考试已结束将不能参加考试。(2)考试进行:从考试科目页面进入考试页面,考试页面按照教师所设置的考试题型以及题目的难度随机生成试卷并显示考试倒计时。(3)成绩查询:考生可以查询考试过的科目的成绩,包括各种题型的成绩以及总成绩。4.2数据库设计4.2.1概念结构设计概念结构设计的任务是在系统分析的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型。概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在最重要的信息的组织结构和处理模式上。概念数据模型,是结合将要开打的系统按照用户的观点来对数据和信息进行建模,利用实体关系图来实现.它描述系统中的各个实体以及相关实体之间的关系,是系统特性的静态描述.概念结构设计的方法一般是先画出组织的局部E-R图,然后将其合并,在此基础进行优化和美化。35
在考试系统中,共分10个实体:分别为管理员信息、教师信息、学生信息、科目信息、题库信息(包括选择题信息、填空题信息、问答题信息)、试卷信息、答案信息、成绩信息,它们之间相互都有联系。由于实体数量较多,不一一画出实体属性E-R图,仅分别列举说明:管理员信息(管理员帐号、管理员密码、管理员姓名)教师信息(教职工号、教师姓名、教师密码、所在院系、所教科目)学生信息(学生学号、学生密码、学生姓名、学生性别、所在院系、所在专业、所在班级)科目信息(科目号、科目名、所属院系、选择题数、填空题数、问答题数、考试日期、开始时间、结束时间)选择题信息(题目编号、题目名、选项A、选项B、选项C、选项D、正确答案、难度、科目号)填空题信息(题目编号、题目名、正确答案、难度、科目号)问答题信息(题目编号、题目名、参考答案、难度、科目号)考生试卷信息(学号、科目号、选择题编号、填空题编号、问答题编号)考生答案信息(学号、科目号、选择题答案、填空题答案、问答题答案)考生成绩信息(学号、科目号、选择题得分、填空题得分、问答题得分、总分)各个实体之间的关系如下:管理员与教师、学生、科目信息之间存在一个管理与被管理的关系,一个管理员可以管理多个教师、一个管理员可以管理多个学生、一个管理员可以管理多个考试科目。教师与科目之间存在教授与被教授的关系,一个教师可以教授多个科目;一个科目可以由多个教师来教授。教师与试卷之间有管理与被管理的关系,一个教师可以管理多个试卷。教师与题库之间的关系也是管理与被管理的,一个教师可以管理多个题库,一个题库可以被多个教师管理。科目与学生之间存在考试与被考试的关系,一个学生可以考试多个科目,一个科目可以由多个学生来考试;科目与试卷之间存在属于与被属于关系,一个科目可以属于多份试卷,一份试卷只能属于一个科目。试卷与学生时间存在作答与被作答的关系,一个考生一次只能作答一份试卷,一份试卷也只能被一个考生作答。题库与试卷之间存在抽取与被抽取的关系,一个题库可以抽取出多份试卷,一份试卷只能从一个题库中抽取。根据以上各个实体之间的关系,可以画出本系统的总体E-R图。图4-2表示在线考试系统总体E-R图:35
图4-2在线考试系统总体E-R图4.2.2逻辑结构设计数据库逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型(即逻辑结构),并对其进行优化。逻辑结构设计的主要任务是根据E-R图建立各种实体的数据库表。数据表是关于数据信息的集合,也就是对数据流中包含的所有元素的定义的集合。任何表最主要的用途都是供人查阅对不了解的条目的解释,数据表的作用也正是在系统分析和设计的过程中给人提供关于数据的描述信息。以下一一列出本系统所使用的各个数据库表:如表4-1所示,管理员信息表(tb_Admin)用于存储管理员信息。表4-1管理员信息表列名含义类别长度是否为空约束Adminid管理员帐号char6否主键Apassword密码varchar210否Aname姓名varchar220否35
如表4-2所示,教师信息表(tb_Teacher)用于存储教师信息。表4-2教师信息表列名含义类别长度是否为空约束Teacherid教职工号number6否主键Tpassword密码varchar210否Tname姓名varchar220否Depart院系varchar230否如表4-3所示,学生信息表(tb_User)用于存储学生信息。表4-3学生信息表列名含义类别长度是否为空约束Userid学号number11否主键Upassword密码varchar211否Uname姓名varchar220否Usex性别char2否Depart院系varchar250否Major专业varchar250否Classid班级号number6否State状态number2否如表4-4所示,选择题信息表(tb_Select)用于存储选择题信息。表4-4选择题信息表列名含义类别长度是否为空约束Selectid题目编号number10否主键Stitle题目名varchar21000否SelectA选项Avarchar21000否SelectB选项Bvarchar21000否SelectC选项Cvarchar21000否SelectD选项Dvarchar21000否Ranswer正确答案varchar24否Difficulty难度char4否Subjectid科目号number6否外键35
如表4-5所示,填空题信息表(tb_Blank)用于存储填空题信息。表4-5填空题信息表列名含义类别长度是否为空约束Blankid题目编号number10否主键Btitle题目名varchar21000否Ranswer正确答案varchar2100否Difficulty难度char4否Subjectid科目号number6否外键如表4-6所示,问答题信息表(tb_Question)用于存储问答题信息。表4-6问答题信息表列名含义类别长度是否为空约束Questionid题目编号number10否主键Qtitle题目名clob否Ranswer正确答案clob否Difficulty难度char4否Subjectid科目号number6否外键如表4-7所示,考试科目信息表(tb_Subject)用于存储考试科目信息。表4-7考试科目信息表列名含义类别长度是否为空约束Subjectid科目号number6否主键Sname科目名varchar250否Teacherid教职工号number6否主键,外键ExamDate考试日期date否ExamStart开始时间date否ExamEnd结束时间date否Snumbere易选择题数number3否Snumberh难选择题数number3否Bnumbere易填空题数number3否Bnumberh难填空题数number3否Qnumbere易问答题数number3否Qnumberh难问答题数number3否35
如表4-8所示,考生试卷信息表(tb_Exam)用于存储考生试卷信息。表4-8考生试卷信息表列名含义类别长度是否为空约束Userid学号number11否主键,外键Subjectid科目号number6否主键,外键AllSid选择题编号varchar21000否AllBid填空题编号varchar21000否AllQid问答题编号varchar21000否如表4-9所示,考生答案信息表(tb_Answer)用于存储考生答案信息。表4-9考生答案信息表列名含义类别长度是否为空约束Userid学号number11否主键,外键Subjectid科目号number6否主键,外键AllSans选择题答案varchar2300否AllBans填空题答案varchar2500否AllQans问答题答案clob否如表4-10所示,考生成绩信息表(tb_Score)用于存储考生成绩信息。表4-10考生成绩信息表列名含义类别长度是否为空约束Userid学号number11否主键,外键Subjectid科目号number6否主键,外键Sselect选择题得分number4否Sblack填空题得分number4否Squestion问答题得分number4否Stotal总分number4否4.3本章小结本章对河南财经政法大学排课系统进行了功能设计,将该系统分为管理员、教师和学生三个模块。同时对该系统进行了数据库设计,画出了各个实体之间的E-R图,共设计了10个数据库表。35
5系统实施经过一系列的准备,对于系统的分析、设计已经完成。以下开始对河南财经政法大学在线考试系统进行详细设计,即系统实施。5.1创建与数据库的连接本系统采用JDBC连接方式与Oracle建立连接,其步骤是首先加载数据库驱动并获得与数据库的连接,然后使用DriverManager建立连接。DriverManager类是JDBC的管理层,作用于用户和驱动程序之间,它跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接。下面是本系统与Oracle数据库建立连接的代码:publicclassConnectDB{privatefinalStringDRIVER="oracle.jdbc.driver.OracleDriver";privatefinalStringURL="jdbc:oracle:thin:@localhost:1521:orcl";privatefinalStringUSERNAME="scott";privatefinalStringPASSWORD="tiger";privateConnectionconnection=null;//构造函数中加载驱动publicConnectDB(){try{Class.forName(DRIVER);}catch(Exceptione){System.out.println("加载驱动失败!");}}//创建连接publicConnectioncreateConnection(){try{connection=DriverManager.getConnection(URL,USERNAME,PASSWORD);}catch(Exceptione){System.out.println("创建连接失败!");}returnconnection;}35
5.2系统的登录页面用户登录页面主要功能是系统根据用户选择的不同身份对用户输入的用户名和密码进行验证。当用户单击“登录”按钮时,首先是javascript脚本验证输入格式是否正确,不符合格式会给出提示。其次是后台验证,如果不正确,跳转到错误页面,并提示用户重新登录。如果正确,则根据用户不同身份进入相应页面使用系统。如果输入信息错误,可以单击“重置”按钮,重新输入信息;图5-1表示河南财经政法大学在线考试系统登录界面。图5-1河南财经政法大学在线考试系统登录页面下面是登录过程的主要代码:LoginServlet.java中主要代码publicclassLoginServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;publicLoginServlet(){super();}protectedvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}35
protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringid=request.getParameter("user");Stringpwd=request.getParameter("password");Stringrole=request.getParameter("radio");ConnLoginclg=newConnLogin();StringpwdFromDB=null;Stringsql="";if(role.equals("student")){sql="selectupasswordfromtb_userwhereuserid=?";}elseif(role.equals("teacher")){sql="selecttpasswordfromtb_teacherwhereteacherid=?";}elseif(role.equals("admin")){sql="selectapasswordfromtb_adminwhereadminid=?";}try{pwdFromDB=clg.getUserPassword(id,sql);}catch(Exceptione){e.printStackTrace();}if(pwd.equals(pwdFromDB)){if(role.equals("student")){RequestDispatcherrd=request.getRequestDispatcher("html/student/HomePage.jsp");rd.forward(request,response);}elseif(role.equals("teacher")){RequestDispatcherrd=request.getRequestDispatcher("html/teacher/TeacherManager.jsp");rd.forward(request,response);}elseif(role.equals("admin")){RequestDispatcherrd=request.getRequestDispatcher("html/admin/AdminManager.jsp");35
rd.forward(request,response);}else{response.sendRedirect("Error.jsp");}}}5.3学生主页面学生在河南财经政法大学在线考试系统登录页面输入自己的用户名和密码并点选学生按钮,进入学生主页面。学生主页面默认显示一些考试须知等信息。通过主页面菜单可进入查询考试科目、开始考试、查询考试成绩等各个功能页面。5.3.1考试科目查询通过点击考生主页面上方菜单中的“在线考试”,即可菜单下方出现各科考试的时间等详细信息。系统默认显示全部考试科目信息,学生也可通过输入关键字查询考试科目。图5-2表示学生操作页面的考试科目查询页面。图5-2考试科目查询页面5.3.2进行考试35
考生通过点击开始考试按钮可以进入到相应的考试科目页面,考试页面显示考生姓名和学号,考试科目,考试时长,试卷总分等信息。考试页面是整个系统的精华部分,页面信息量大。因此对此页面的编写耗时最长。图5-3表示Java程序设计的试卷页面。图5-3考生考试页面考试页面主要由两部分组成,一是试题部分,位于页面中间;二是导航部分(如图5-3中所示)位于页面右上方固定位置。在答题过程中如果考生某题已作答则答案区域和该题的导航数字区域将会由白色变为灰色;如果考生对某题目有疑问,不敢肯定答案,则可以点击答案选项右边的“问号”按钮,此时该题答案区域和导航数字区域将会变为红色;考生可以点击导航区域的数字定位到相应题目的位置;在导航区域下方显示考试倒计时,如果不想看导航,则可以点击导航左上角按钮隐藏导航。当考试剩余5分钟时系统会弹出温馨提示框(如图5-4所示)题型考生及时检查没有做完的题目,准备提交试卷。图5-4温馨提示框当考试时间到的时候系统会弹出考试时间到的提示框(如图5-5所示),此时系统已自动将考生以作答的试题答案保存并提交。35
图5-5考试时间到提示框下面是考试页面试题生成的主要代码:Exam.jsp页面选择题生成主要代码<%listselect=(List)session.getAttribute("list");for(inti=0;i
A、<%=listselect.get(i).getSelecta()%>
B、<%=listselect.get(i).getSelectb()%>
C、<%=listselect.get(i).getSelectc()%>
D、<%=listselect.get(i).getSelectd()%>