基于JAVA的在线考试系统的设计与实现论文-正文

更新时间:2024-01-14 11:42:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

邵阳学院毕业设计(论文)

目 录

摘要 ................................................................................................................. Ⅰ

ABSTRACT ................................................................................................... Ⅱ

第1章 绪论 ..................................................................................................... 1 1.1课题研究的背景、目的及意义 ........................................................... 1 1.2课题的主要研究任务 ........................................................................... 2 1.3相关技术论述 ....................................................................................... 3 1.4章节安排 ............................................................................................... 6 第2章 系统分析 ............................................................................................. 7 2.1系统可行性研究 ................................................................................... 7 2.2 方案的设计与比较 .............................................................................. 8 2.3系统需求分析 ....................................................................................... 9 2.4数据库需求分析 ................................................................................. 12 2.5 系统目标 ............................................................................................ 12 第3章 系统设计 ........................................................................................... 13 3.1 模式的选择 ........................................................................................ 13 3.2系统总体方案设计 ............................................................................. 13 3.3系统结构图 ......................................................................................... 14 3.4 数据库设计 ........................................................................................ 15 第4章 系统的详细设计与实现 ................................................................... 21 4.1 前台系统设计实现 ............................................................................ 21 4.2 后台系统设计实现 ............................................................................ 31 第5章 系统测试 ......................................................................................... 45 5.1系统安全性 ......................................................................................... 45 5.2系统测试 ............................................................................................. 46 第6章 总结 ................................................................................................. 47 参考文献 ......................................................................................................... 49 致谢 ................................................................................................................. 50 附 录 ............................................................................................................. 51

邵阳学院毕业设计(论文)

摘 要

当今,因信息科技的发展,越来越多的人能够使用计算机。在国内外,许多学校和工作单位已经网上在线考试的方式来进行测试,达到考核的目的,正因如果,许多方面需要用到它的功能,使在线考试这样一种模式迅速发展。

我是使用了Java web技术对本次课题在线考试系统进行开发设计的。用MySQL对系统的数据来进行储存管理。考生可以使用系统来进行测试,系统会对考生的试卷进行自动批改并统计分数,管理员在本系统中能够对考生的信息进行管理,可以在系统里增加试卷名字,可以在库里对所有的题目进行修改,添加等;系统有前台和后台,考生在前台可以:登录系统,在线考试,考生查询成绩,考生的密码修改等;管理员在后台可以:管理员登录,管理考生信息,考生成绩查询,管理试卷信息,题目管理等;

关键词:在线考试系统;Java web系统;管理系统

I

邵阳学院毕业设计(论文)

ABSTRACT

Nowadays, the number of colleges and universities are increasing, the scale is getting larger and larger, all kinds of students need to manage information is also growing exponentially. network, and remote and intelligent trend. and schools can be constructed into a first-class information management, education and teaching platform from both sides of hardware and software. Therefore, the networking practice came into being.

The subject has designed and implemented student self-online-practice system, by using the Internet and

MySQL database technology, adopting

DREAMWEAVER as the developing tool, and based on B/S mode. This system can offer students practice conveniently, and can let students understand their own exercise situation in real time in order to test their own learning effect, find deficiency, targeted review, and make learning efficiency greatly enhanced. The system has practice inputting, modifying, querying, exchange experience and other important functions, which facilitate the students and teachers to heartily study and interactions at different times and in different places,and it is one kind of essential supplement to the conventional educational model.

Keywords: online examination system, JavaWeb systems, management systems

II

邵阳学院毕业设计(论文)

第1章 绪论

当今,因信息科技的发展,越来越多的人能够使用计算机。在国内外,许多学校和工作单位已经网上在线考试的方式来进行测试,达到考核的目的,正因如果,许多方面需要用到它的功能,使在线考试这样一种模式迅速发展。

在教育事业单位中,也必不可少的需要用到它。如果有一个功能很多的这样一个系统,可以让学样管理者和相关的部门的人变得更加轻松,他们的工作将会变得更简单方便。但是,传统的人工考试管理方式早已经深入人心,人工考试的方式存在着各种各样的缺点,比如:非常低的效率,安全性不够好,大量的工作量,人员的浪费,长时间下来,资源的滥用。而与网络在线考试方式一对比,就能突出在线考试方式的优势。评卷自动方便,成绩集中自动统计,错题明了,很好的利用了时间和空间资源,让使用者在随时随地的使用它来进行测试,这大大的提高了效率,并且是绝对的公正、客观、和安全的。让在线考试成为计算机应用的一部分,使用者通使用它而改变考试的方试,减人力资源的浪费。

并且一个在线考试系统对于现代人来说都能适用,步入信息时代的人们或多或少都会简单使用计算机,在线考试系统使用简单,对于各个领域的人来说都能够正常使用,所以它能够被人们所接纳并且使用。特别是对于大多数高校,老师使用这样一个系统来检测学生,减少了传统人工方式的管理考试和阅卷,在量节约了老师的时间,即达到了测试的目的也提高了效率。

因为计算机的飞速发展,人们已经认识到并亲身体验了它各种强大的功能,它已经深入到人们工作、生活中,并充当着重要的角色。

1.1课题研究的背景、目的及意义

有许多学者进行过大量的理论实践研究,提出一种适应当代,满足当代测试需求的理论,纸质化和传统考试和计算机网上在线考试这样两种考试方式对于考试的人来说没有特别大的差别。直到1960年,采用CAT对课间考试的效果应该会更好,这被一些学者所肯定。

随着时代的变化,国外慢慢兴起了网络教学这样一种教育方式,在当时被许多国外高校所接受并成功使用。在国外,当时便有许多成功使用网上教育的成功案例

而与许多西方国家相比,国内的网上教育系统发展的相对缓慢许多。在中国,直到1995年,中国的互联网才开始了展。但网络教育在我国还是发展迅速,不会因起步晚而弱后别国,许多一线大学早已经在网络上成功架设了自己的网络测评系统。也有许多专门研究网络教育课程的公司,它们与各高校合作,共同开发学校自己的网

1

邵阳学院毕业设计(论文)

络教育系统。并且,有一些知名高校已经开发出硕士研究生的网上教育平台。

因时代的飞速发展,计算机技术的成熟,网络已经普及到各地,这样网络教育的发展才有了础,并且因为人们所需要,它也被人们所接受使用,使其存在很大的发展潜力,而随着使用数量的增加,人们不但满足于当时的功能,需求变得更多,有了市场需求,随之而来的各种开发它的公司和相关部门渐渐兴起,让有关在线教育的行来变得越来越主流,有了这些的支持,它的功能变的越越来适应人们。

现今,国内的许多高校和各类的其它部门也都成功架构起了远程教育、在线测试。利用计算机来工作已经变得相当普遍,但远程测试的开发仍处在不成熟的阶段,而随着人们的需求的增加,这项技术将会发展的越来越好,功能也会变的更加成熟和完善。基于JAVA的在线考试系统就是应这样需求而成功的运用起来的实例。让考试变成无纸化,改变传统的纸质化考试方式,优化了各种繁琐的缺点,变得越来越完善。通过这样一个系统,节约了人力资源,节省了费用,同时,在高校的官网中,与其它的一些系统相结合,创建出各高校特色的管理系统。

这样一个在线考试系统可以为学校节省大量的资源,不需要使用传统的纸打印试卷。这样很好的节约了资源,使用起来也很方便;并且运用系统自动阅卷,可以大量减少人工阅卷的时间,简单便捷的操作,节省了人力物力。为学校节约了开支;使用本系统可以让理才很有效率的对考试信息进行管理。

1.2课题的主要研究任务

本次课题:框架上采用Struts2+ Hibernate,后台数据库使用MySQL 2000数据库,再结合JSP技术来构建运行版面,运用JAVA技术实现各类功能。

本选题研究内容如下:

a)对在线考试系统进行整体分析设计,其中包括了系统结构分析和模块分析,其主要内容是考生登录选择试卷进行考试,和后台管理员对试卷试题的制作。基于这样的需求,我们构建B/S架构,让其实现多模块的应用系统。

b)实现多模块应用系统,其主要功能包括如下几点:

前台登录:考生通过从管理员(老师)那边获取正确的准考证号和密码,然后输入正确的准考证号和密码成功登录系统;

在线考试功能:考生输入正确准号证号和密码成功登陆系统后,跳转进入选择试卷页面,选择好要考试的试卷名称然后跳转入试卷页面,可进行在线考试。选择自主答案,完毕后,提交,或考试时间已经为零系统自动提交,系统将自动评分,跳转出分数页面。考试记录将被保存到数据库。

查询成绩功能:本次登录的考生可对自己所有考试成绩及成绩分布进行查询。

2

邵阳学院毕业设计(论文)

修改密码功能:本次登录的考生可修改自己的登录密码。 后台登录:管理员(老师)输入账号密码登录系统。

考生信息管理:老师可新增学生用户,自动生成准考证号,对所有考生的信息进行查询,同时对考生信息进行修改、添加或删除操作。

考生成绩查询:查看所有考生的考试成绩,并且根据查询条件可以精确查询某个考生的考试记录及成绩。 ?

试卷管理功能:管理员(老师)可对所有试卷名称进行查询,并可对其进行添加、修改、删除试卷等功能。

题目管理功能:管理员(老师)可以查询系统试卷中的题目,并可以添加、修改、删除题目。?

客户端:Windows XP IE7及其以上版本

服务器端:Web服务器:Tomcat6及其以上版本开发环境: 数据库:采用MySQL5.1和SQLyog。

1.3相关技术论述

1.3.1 JSP技术概述

创建JSP页面来实现功能就是运用HTML网页编程原理再加上JAVA小程序

代码。在使用JAVA技术编写网页程序时,需要使用到网页的设计和编写,而JAVA中的JSP的使用很好的解决了这个问题,它使用和HTML网页相似的编程技术,在JSP文件中编写创建自己所需要的网页结构,这样一个技术的使用方便了JAVA程序的开发,我们不必要繁琐的再去使用另外的技术去设计动态网页,在一个JAVA项目中就能够简单实现,对于系统的开发提供了相当大的便利。此外,JSP单独拿出来作为一项技术集合,它不仅有JAVA的许多优点,而且自身也有很多功能性强大的组件,比如说JAVA Bean,支持安键的创建,方便了网页的设计。 1.3.2 框架技术概述

(1)Struts是应用比较广泛的一种表现层框架

Struts是一个作为开发基于其它许多模型和应用架构的开源框架,是成功构建Web网页应用的一项重要的技术。Struts普编应用于JAVA程序应用的开发,它的

功能对开发提供了很大的便利,这样的好处,使得如今的JAVA应用开发都会使用

Struts开发框架来进行应用开发。

3

邵阳学院毕业设计(论文)

(2)Hibernate通过持久层的框架将数据库存储从服务层中分离出来

Hibernate技术是数据库层开发应用的使用,现今,它在JAVA开发应用中被广

泛使用,JAVA开发中使用Hibernate技术,我们可以直接在JAVA项目上对数据库表进行映射,而不必返回到数据库中去进行操作,这样有利于关系数据和对象之前的关联,所有实体的属性关系都可以通过JAVA代码来实现,并且所有对像之前的关联关系都可以通过JAVA代码编程来实现,而运用了Hibernate技术创建了数据表之后,一样可以到数据库中去进行SQL语句的输入,可以修改一些表信息,也可以通过SQL语句进行数据添加,不会对程序有影响而达到预期的功能。这样一来,我们就不要像传统的数据库应用程序那样的JDBC访问把实体对象一一输入结果,这样节省了程序设计者大量的时间。所以,就使得开发应用变得更加方便, 1.3.3 脚本语言的简介

(1)HTML语言

HTML是网页设计的核心技术,许多网页编写都需要使用到它或应用到它的编码规则,它的标记与规则有很大的适应性,对其它的一些网页设计技术也很适用。

HTML文件和其他的文件不同,因为HTML文件中有它自己的标记。如下所

示:

title

……这都是一起出现的,作为一种编程的规则来使用。所有的

文本都必须放在和<\\body>之间。

(2)JavaScript[3]语言

JavaScript就是脚本语言运行在其它对像中,或者添加事件监听时运用到它,

它具有非常良好的安全性,使用它能够连接HTML文本、JSP和JAVA程序,与之在Web中一起组成网页程序中的基本脚本,用与Web中客户端的开发,它是能过使用HTML的标准语言来达到开发应用程序中的功能。我们在使用HTML进行开的时候,有时HTML的功能并不能满足我们的要求,存在各种各样的缺陷,或者使用HTML开发某个功能时相当的麻烦,这样使用JavaScript语言就很好的弥补了这样的问题。

4

邵阳学院毕业设计(论文)

而我们在进行JAVA开发和使用HTML过种中使用到它,是因为它具有如下几个基本特点:

A)首先是作为一种基本的脚本程序编程语言:JavaScript在实瑞过程 中是采用一小段一小段的小程序段来实现的,同样的作为脚本语言,它可以作为解释性的误言来使用。使用它进行程序开发,使整个过程变得相对更简易。在使用它的时候,其它编程语言使用时都要先编译再运行才能达到功能,但它不一样,在运行过程中它是一步一步进行解释的,就是程序运行到那一步,它便编译到那一步。使用HTML时运用到时能达到非常好的效果,这样使得编程者更加方便的操作。

B)基本对象语言:在进行面向对象编程时也可以用到JavaScript,所以它还是一种基本的对象语言。所以,这程序中,它是可以自己创建对象的并运行它。

C)简单性:JavaScript,它也是一种JAVA语言,并且还是一种控制流上的设计。对于学习JAVA的人来说,这样一个具有简单性特点的语言是很容易被接受和学习的,在学习JAVA的过程中可以把它当作过渡性的知识来学习,这样学习的效率便提高了。其次,它的数据类型也没有使用像C、C+那样的复杂。

D)安全性:在使用JavaScript了编写的程序中存在很多的限制权限,它不允许对本地硬盘的访问,并且,程序运行时所产生的数据不会保存到服务器上,在网络上也存在限制,不会修改或删除一些重要的网络文件。只能在浏览器中进行一些信息的浏览,网页的转变。这样一来,对用户保持了一个良好的安全性环境。

E)动态性:一般使用JavaScript来进行开发,都是一些和网页相关的应用。它可以实现许多网页上的动态功能,比如说在网页上进行一些用户的登录。

F)跨平台性:网页开发都是在浏览器上运行实现的,与本地环境关,所以,当你使用JavaScript了开发了一个网页应用,只要用能够支持它运行的浏览器,它就能正常的运行,这样使得它的运行环境变得相当方便。

JavaScript:在当代的JAVA应用开发中被广泛的使用,正应存在这些良好的特性。

5

邵阳学院毕业设计(论文)

1.4章节安排

本论文的总体结构安排如下:

第1章简要论述了一下为什么设计这个在线考试系统,对设计本系统所需要用到的工具和技术进行了简单介绍。

第2章描述了在线考试系统的可行性分析和需求分析。

第3章主要是进行系统总体方案设计及后台数据库的设计,对系统各功能模块进行了详细的分析与设计,并且阐述了相关的数据表及其字段属性等信息,并简单介绍了前后台的连接方法,实现了通过用户公共界面对后台数据库的访问。

第4章对本系统的详细设计与达到的效果。 第5章针对本系统的测试和测试结果。 第6章对所做的工作做了总结和展望。

6

邵阳学院毕业设计(论文)

第2章 系统分析

当今,不管是学校还是社会部门中都是使用传统的纸质试卷来进行测试来达到考核的目的的。采用纸质试卷测试,第一需要进行人工的拟定题目、排版,然后到印刷试卷;第二就是组织考试,需要组织考生,花费时间进行考试,老师监考;第三是试卷的批改,老师花费大量的时间进行批改与统计分数,再到分数据的录入,数据的分析与试卷考题的分析。这样一大片流程下来耗费的人力和物力是巨大的,而随着考生人数的增加和考试类型的增加,老师的任务量变的越来越大,耗费的资源成倍增长。并且,进行这样的工作是非常乏味,在过程中也容易出各种错误,相信学生都经历过这要的情况,老师经常改错试卷:改题错误,统计分数上的错误,录入分数上的错误;或者在试卷出题上存在错误,这样使考试过程变的不严谨。这样结果就是说明以前传统的纸质考试的方式越来越不能适应现在的考试形式。所以需要一个能够适应现在的考试模式的方式就应运而生:在线考试系统。通过开发一个在线考试系统来进行测试,老师只要在系统里编写试题,录入正确答案,然后学生在网上进行考试。系统能够提交试卷,并且能够自动计分。这样一来,老师的工作量大大的减少了,也会提高工作的效率。目前,许多的高校都存在用在线考试来进行学生的测试。

2.1系统可行性研究

科技的发展,计算机已经变得普遍,学生和普通的职业者或多或少都会使用计算机进行简单操作,在世界各地大学与相关部门中都会有网络远程教育的现象,通过计算机,利用一些远程软件来进行知识的传播和工作的交流,这样使得在线考试这样一种测试方式的发展空间变得越来越大,让其的普通化变成可能。

以下分别对本系统的技术可行性、经济可行性和操作可行性进行研究。 (1)技术可行性

在技术上,我们要考虑计算机中的硬件能不能达到运行的要求,运行它的软件能不能达到用户的期望。而现在,我们都知道现在的计算机技术早以发展成熟,各种的管理信息系统,各类的数据处理系统都很完善,计算机开发行业早已经成为热门,对于开发这样的一个在线考试系统是完全没有问题的。在网络传输上,各种网络技术也很成熟,所以在开发在线考试系统的技术上是完全达到了要求。 (2)系统的经济可行性:

在经济可行性的分析上我们只需要考虑使用这样一个在线考试系统的管理者们

7

邵阳学院毕业设计(论文)

能不能承担这样一个发费。这样的考试统一般都是用在学校和相关的部门,经济的要求完本达得到,而且,有能力的高校和部门可能自书开发这样的系统,而对于使用它的用户完全是免费开放性的,他们完全不用考虑花费的问题。所以使用这样一个系统不存在经济的因难。 (3)操作可行性:

对于把这样的系统当做毕业设计的学生来说,学校给学生有充足的时间去设计完成这个系统。相关的资料在网上都能找得到,整个系统流程相当清晰,作为一个计算机专业的毕业生而言完本没有问题的,而遇到有不懂的问题也是可以与老师和同学交流讨论的。

2.2 方案的设计与比较

2.2.1 C/S和B/S的比较

当今,在网络应用中软件运行的模式主要有Client/Server模式和Browser/Server模式这两种。两种模式都存在各自的缺点和优点,对于C/S,使用它人开发者都会觉得它在维护和升级上是非常麻烦的。而且使用了C/S模式进行开发的话,之前开发者还要同时进行开发服务器端和客户端。这样对开发者来说加重了工作量;B/S是之后发展起来的一种新技术,在前者的基础上进行优化和创新,B/S的客户端直接就是用浏览器来代替,服务器上也不用开发者自己去开发,直接使用Web Server、其中Server又可以与数据库等一些系统连接,这样就使得B/S模式可以适用于更大更多样性的应用开发。现在的许多企业都是使用B/S模式进行开发来务,因为它的维护和升级更简便。 2.2.2 系统模式的设计

本系统在用户上设计了两种不同的用户登录,一种是普通(考生)用户,一种是管理员(老师)用户。权限都不一样;

普通用户为考生,考生输入下确的准考证号和密码可以登录在线考试页面进行考试、查询成绩、修改密码等操作。管理员用户为老师,老师有管理员账号和密码,登录后台页面,可以进行考生信息管理操作添加(注册)考生用户,自动生成准考证号。删除考生用户信息,查询考生所有考试信息,对所有考生的所有考试成绩进行查询,对所有考生的考试信息及具体得分情况进行查询,对试卷进行增、删、改、查等操作,对题目信息进行管理,对题目和答案进行增、删、改、查等操作。

8

邵阳学院毕业设计(论文)

2.2.3系统设计的技术选择

处于安全性,功能可扩展性。我们采用java ee编程技术,面页上使用JSP。 数据库使用开源的Mysql; 服务器采用Tomcat; 2.2.4系统的运行环境

(1).系统:Windows XP及其以上版本 (2).Web服务器:Tomcat6及其以上版本 (3).数据库服务器:Mysql5

(4).浏览器:IE7,8,9、火狐、Chrome

2.3系统需求分析

本系统作为一个在线的考试系统,是后台管理员(老师)设计试卷题目让前台用户(学生)进行考试这样一个运态交流的过程。系统需要达到管理员(老师)能管理考生考试试卷题目,管理学生信息的需求,达到用户(学生)能进行考试并查询得到考试成绩和需求。

系统中包括管理员(老师)和普通用户(学生)这两种用户;前台普通用户主要是在线考试,考生考前会从老师那获得准考证号与密码,考生系统登录页面,输入正确的准考证号和密码成功登录系统跳转系统主页面,选择在线考试功能,进入选择试卷页面,选择要考试的试卷类型,系统将自动从题库里生成试卷,考试过程中有计时功能,用户答题完成,选择提交试卷或者时间截止自动提交试卷,系统将会对应正确答案自动计算考试分数,用户可以成绩查询选项里查询成绩分布,还可以点击修改密码功能对登录密码进行修改。后台管理员用户主要是老师进行考生信息管理:查询考生信息,注册考生号,删除考生信息,对所有考生的所有考试成绩进行查询,试卷管理:对试卷信息进行增、删、改、查等操作,题目管理:对试卷题目和答案进行增、删、改、查等操作。 2.3.1 系统结构 主要功能有:

普通用户:在线考试,成绩查询,修改密码;

系统管理员:考生信息管理,考生成绩查询,试卷管理,题目管理;

9

邵阳学院毕业设计(论文)

2.3.2 系统业务流程图 普通用户

普通用户 在成线绩修考查改试询密 码 图2.1普通用户业务图

普通用户 登录 在成修线绩改考查密试询码

图2.2用户登录业务图

10

登录失败

邵阳学院毕业设计(论文)

管理员

系统管理员 考生信息管理考试成绩查询试卷管理题目管理 图2.3管理员用户业务图

系统管理员 登录失败 登录 考生信息管理考生成绩查询试卷管理题目管理 图2.4管理员业务登录图

11

邵阳学院毕业设计(论文)

2.4数据库需求分析

根据上面业务流程图所涉及到的内容,数据库要设计的表有: 管理员表:编号,姓名,用户名,密码; 学生表:编号,学号,姓名,密码,专业,性别; 考试表:编号,加入日期,试卷名称;

题目表:编号,题目答案,加入日期,选项A,选项B,选项C,选项D,题目, 题目类型,所属试卷;

考试表:编号,考试日期,多选题得分,单选题得分,总得分,试卷,学生;

2.5 系统目标

本选题系统的设计主要将实现以下目标: (1).人性化设计:系统界面友好,操作简单;

(2).前台实现学生登录,在线考试,成绩查询,修改密码等功能;

(3).后台实现管理员登录,试卷管理,题目管理,学生信息管理,考生成绩查询等功能;

前台考生能通过这个系统进行在线登录,在线考试,成绩查询,后台老师能查看学生成绩,进行试卷,题目管理,注册考生用户。

12

邵阳学院毕业设计(论文)

第3章 系统设计

3.1 模式的选择

当今,在网络应用中软件运行的模式主要有Client/Server模式和Browser/Server模式这两种。两种模式都存在各自的缺点和优点,对于C/S,使用它人开发者都会觉得它在维护和升级上是非常麻烦的。而且使用了C/S模式进行开发的话,之前开发者还要同时进行开发服务器端和客户端。这样对开发者来说加重了工作量;B/S是之后发展起来的一种新技术,在前者的基础上进行优化和创新,B/S的客户端直接就是用浏览器来代替,服务器上也不用开发者自己去开发,直接使用Web Server、其中

Server又可以与数据库等一些系统连接,这样就使得B/S模式可以适用于更大更多

样性的应用开发。现在的许多企业都是使用B/S模式进行开发来务,因为它的维护和升级更简便,系统业务也都是在浏览器页面上进行,使用方便。

所以本系统在模式的选择上是选择B/S模试,客服端直接与浏览器相连接,使用tomcat中的server与MySQL数据库来做开发服服器。

3.2系统总体方案设计

3.2.1处理流程 1,学生

(1).打开系统,进入学生登录界面。

(2).输入正确的准考证号和密码通过验证后,进入在线考试系统主界面。 (3).用户操作,执行相应的功能:在线考试,成绩查询,修改密码。 (4).退出系统。

2,管理员

(1).打开系统,进入系统登录界面,

(2).输入正确的账号和密码通过验证后,进入系统管理主界面

(3).用户操作,执行相应的功能:考生信息管理,考试成绩查询,试卷管理,题目管理,

(4).退出系统。

13

邵阳学院毕业设计(论文)

3.2.2 系统的数据流图

系统前台 在线考试系统 学生 系统管理员 后台管理 图3.1数据流图

3.3系统结构图

在线考试系统 学生 管理员 现在考试 成绩查询 修改密码 学生管理 成绩查询 试卷管理 题目管理

图3.2系统结构图

14

邵阳学院毕业设计(论文)

3.4 数据库设计

3.4.1 逻辑结构设计

管理员表:编号,姓名,用户名,密码;主键为管理员编号;

学生表:编号(准考证号),学号,姓名,密码,专业,性别;主键为准考证号; 试卷表:编号,加入日期,试卷名称;主键为考试编号;

题目表:编号,题目答案,加入日期,选项A,选项B,选项C,选项D,题目,题目类型,所属试卷;主键为题目编号,外键为试卷编号;

考试表:编号,考试日期,多选题得分,单选题得分,总得分,试卷,学生;主键为考试编号,外键为学生编号,试卷编号; 1,学生和考试是一对多关系; 2,试卷和题目是一对多关系; 2,试卷和考试是一对多关系; (1).系统管理员信息E-R图

姓名 用户名 管理员编号 系统管理员 密码

图3.3管理员E-R图

(2). 学生信息E-R图

姓名 学号 密码 专业 准考证号 学生实体 性别 图3.4学生E-R图

15

邵阳学院毕业设计(论文)

(3). 试卷信息E-R图

图3.5试卷E-R图

试卷实体 试卷编号 试卷名称 加入日期 (4). 题目信息E-R图

答案 题目编号 加入日期 选项A 选项B 所属试卷 题目实体 选项C 题目类型 题目 选项D

图3.6题目信息E-R图

(5). 考试信息E-R图

考试日期 编号 考试信息实体 单选题得分 多选题得分 考生 试卷 总得分

图3.7考试信息E-R图

16

邵阳学院毕业设计(论文)

(6)实体之间的关系图

图3.8实体关系图

17

邵阳学院毕业设计(论文)

3.4.2 数据库表的设计 (1). 管理员信息

表3.1管理员信息表

字段名 id Username Password name 数据类型 Int varchar varchar Varchar 长度 11 20 20 20 是否主键 是 描述 自动编号 用户名 密码 用户姓名

(2). 学生信息

表3.2学生表

字段名 id cardNo name password prefession sex 数据类型 varchar varchar varchar varchar varchar varchar 长度 40 50 20 20 20 5 是否主键 是 描述 准考证号 学号 学生姓名 密码 专业 性别

(3).试卷信息

表3.3试卷表

字段名 id joinDate paperName

18

数据类型 Int datetime varchar 长度 11 20 是否主键 是 描述 自动编号 加入日期 试卷名称 邵阳学院毕业设计(论文)

(4). 题目信息

表3.4题目表 字段名 id answer joinTime optionA optionB optionC optionD subject type paperId

数据类型 Int Varchar datetime varchar varchar varchar varchar varchar varchar int 长度 11 255 200 200 200 200 200 200 11 是否主键 是 描述 自动编号 答案 假如日期 选项A 选项B 选项C 选项D 题目 题目类型 外键 (5).考试信息

表3.5考试表

字段名 id examDate moreScore score singleScore paperId studentId

19

数据类型 Int datetime varchar int int int varchar 长度 11 11 20 11 11 11 40 是否主键 是 描述 自动编号 考试日期 多选题得分 总得分 单选题得分 外键 外键 邵阳学院毕业设计(论文)

3.4.3 数据库连接设计

在数据库连接设计上,我是使用JDBC-ODBC桥数据驱动程序直接与数据访问接口相连,直接用JAVA语言来访问数据库。直接运用了Hibernate框架

\

\

name=\

name=\

name=\

name=\

Hibernate使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。

我们只需在hibernate.cfg.xml中配置一些语句就能连接好数据库。

20

邵阳学院毕业设计(论文)

第4章 系统的详细设计与实现

4.1 前台系统设计实现

4.1.1 登录界面实现 效果图:

图4.1登录界面图

相关说明:

学生进入系统登录界面:考生打开浏览器输入Http://localhost:8080/Rexam,进入系统登录界面(考前老师会把考生的准考证号和密码下发给考生)。考生用户输入正确准考证号,和正确的登录密码,如果有证考证号或密码没有输,则会提示相应的错误。准考证号和密码全部输入正确则页面跳转进入系统主界面;否则提示错误信息:准考证号错误,密码错误,准考证或密码错误; 关键代码实现:

在StudentDao文件创建登录事件

使用Session session=HibernateUtil.getSessionFactory().getCurrentSession();开始事件;使用Query query=session.createQuery(\Student as s where

s.id=:id and s.password=:password\;来对输入的准考证号和密码与数据库里的正

确的准考证号和密码相对应,后台数据库里存在这样的账号和密码,则准考证号和密码正确,将成功登录系统主界面,如果后台数据库不存在这样的账号和密码则不能成功登录,将会提示错误;用session.getTransaction().commit();来结束事件。

21

邵阳学院毕业设计(论文)

4.1.2 系统主界面 效果图:

图4.2主界面图

相关说明:

用户(考生)输入正确的准考证号,密码,点击登录,后台验证成功,则进入系统主界面,主要包括四大功能,在线考试,成绩管理,修改密码,退出系统;界面显示“欢迎使用”,右上角会显示登录考生的性名,底端有版权说明等。

关键代码实现: 主要为JSP页面的设计。 公共页面head.jsp

<%@ page language=\contentType=\charset=utf-8\pageEncoding=\

style=\

url('${pageContext.request.contextPath}/image/banner.jpg');height:90px;width:1000px;float:right;\>${currentUser.name }

22

邵阳学院毕业设计(论文)

公共页面menu.jsp

<%@ page language=\contentType=\charset=utf-8\pageEncoding=\

<%@ taglib uri=\

    考生信息管理

    成绩查询

    href=\试卷管理

    题目管理

    href=\d=${currentUser.id}\成绩查询

    href=\修

    改密码

    23

    邵阳学院毕业设计(论文)

    4.1.3 在线考试功能实现 效果图:

    点击菜单栏的在线考试,显示:

    图4.3选择试卷界面图

    登录考生在系统主界面点击“在线考试”选项,页面跳转进入在线考试界面,这里会提示让学生选择考试的试卷,有“请选择考试试卷”这样的显示,试卷的类型是由管理员(老师)设置添加的;主页面还是首页显示的那个主要功能。

    24

    邵阳学院毕业设计(论文)

    选择好试卷,点击确定,显示:

    图4.4考试试卷图

    进入考试试卷界面,这里会显示考试的时间,计时,剩余时间,系统自动生成算选题和多选题,是由后台编程设置好的单选和多选题的数量,选择自己需要考试的试卷单击确定按钮,页面跳转进入试卷页面,会显示自动生成的试卷题目,单选和多选题是从数据库题库随机选择的,每次进入同一张试卷类型生成的试卷题目都是不同的;学生可进行答题,在认为正确的选项上点击,多选题可重复点击多个选项;答题完成后,点击左下角“交卷”,系统提交试卷;计时设置,时间倒计为0之后,系统会自动提交试卷;

    25

    邵阳学院毕业设计(论文)

    学生答完题目,提交试卷,显示:

    图4.5成绩界面图

    点击提交试卷,页面跳转到成绩页面,系统自动阅卷,根据自己编写的计算分数代码,与数据库正确答案相比较,计算出学生的成绩,并显示最终得分;本系统设置为单选答对得20分,答错不得分,多选答对得30分,答错不得分一共三道单选题,2道多选题,总共100分。 关键代码实现: 查询所有试卷;

    Query query=session.createQuery(\List paperList=(List)query.list(); session.getTransaction().commit(); return paperList; }

    StringBuffer hql=new StringBuffer(\if(StringUtil.isNotEmpty(s_question.getSubject())){

    hql.append(\

    query=session.createQuery(hql.toString().replaceFirst(\

    Query

    获取题目

    \ if(pageBean!=null){

    query.setFirstResult(pageBean.getStart()); query.setMaxResults(pageBean.getPageSize());} }

    26

    邵阳学院毕业设计(论文)

    随机获取试题;

    private List getRandowQuestion(List questionList,int num){

    List resultList=new ArrayList(); Random random=new Random(); if(num>0){

    for(int i=1;i<=num;i++){

    int n=random.nextInt(questionList.size()); Question q=questionList.get(n); if(resultList.contains(q)){

    i--;

    resultList.add(q); } } } }else{

    return resultList;

    if(keyStr.split(\单选题目

    key=keyStr.split(\value=values[0];

    singleScore+=this.calScore(key, value, \key=keyStr.split(\for(String s:values){

    value+=s+\

    value=value.substring(0, value.length()-1); moreScore+=this.calScore(key, value, \

    计算考试得分;

    }else{//多选

    totalScore=singleScore+moreScore; exam.setSingleScore(singleScore); exam.setMoreScore(moreScore); exam.setScore(totalScore); exam.setExamDate(new Date()); examDao.saveExam(exam); mainPage=\

    27

    邵阳学院毕业设计(论文)

    计算每道题的得分: private

    int calScore(String questionId,String userAnswer,String

    type)throws Exception{

    Question question=questionDao.getQuestion(questionId); if(userAnswer.equals(question.getAnswer())){

    if(\

    return 20; }else{return 30;}

    }else{return 0;} }

    4.1.4 成绩查询功能 效果图: 成绩查询:

    图4.6成绩查询信息图

    相关说明:

    考生点击成绩查询,页面跳转进入到成绩查询界面,能够查看到考生自己考试的所有成绩信息,包括每次的试卷名称,考试日期,单选题得分,多选题得分,总分信息;这样详细给出了登录账号考试的所有信息,这样显示出清晰明了的成绩列表,考生能够清楚的查看到自己在何时考了何种类型的试卷以及自己单选题和多选题的具全得分还有总得分。

    28

    邵阳学院毕业设计(论文)

    关键代码实现: 成绩查询:

    StringBuffer hql=new StringBuffer(\

    if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStuden

    hql.append(\}

    and

    t().getId())){

    exam.student.id='\

    if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStuden

    hql.append(\

    and

    exam.student.name

    like

    t().getName())){

    '%\

    Query

    query=session.createQuery(hql.toString().replaceFirst(\

    4.1.5 修改密码功能 效果图: 修改密码功能:

    图4.7修改密码图

    29

    邵阳学院毕业设计(论文)

    说明:

    考生点击修改密码,页面跳转进入到密码修改界面,系统将显示修改密码页面,考生如果要修改密码,用户名显示为准考证号,会有原密码填写行,新密码填写行,以及确认新密码行,填写无误后,点击修改密码按钮,以完成密码修改功能,每次有空或者填写错误,页面正上角都会有提示:请输入原密码、请输入新密码、请输入确认新密码等。

    关键代码实现:

    public void saveStudent(Student student)throws Exception{ }

    Session

    session.beginTransaction(); session.merge(student);

    session.getTransaction().commit();

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    4.1.6 退出系统功能实现 效果图:

    图4.8退出系统界面图

    30

    邵阳学院毕业设计(论文)

    说明:

    考生测试完,所以的目地都已经达到了,点击“退出系统”,界面上会显示“您确定要退出系统吗?”,如果点击“确定”后台会清空用户的登录数据,之后页面跳转进入到登录页面,不需要退出,点“取消”,不会退出系统。 关键代码实现:

    public String logout()throws Exception{

    request.getSession().invalidate(); return\

    4.2 后台系统设计实现

    4.2.1 管理员登录功能

    管理员在浏览器地址栏输入:http://localhost:8080/Exam/login2.jsp

    则进入后台管理登录页面,如图:

    图4.9管理员登录界面图

    说明:

    管理员(老师)输入正确的用户名和密码,点击“登录”按钮,页面跳转,成功进入系统后台主界面;账号或密码错误,刚会给出相应的提示 管理员账号是由后台数据库人员给定账号和密码,

    31

    邵阳学院毕业设计(论文)

    4.2.2 考生信息管理

    点击“学生信息管理”按钮,显示:

    图4.10考生信息管理图

    说明:

    老师点击“学生信息管理”页面跳转进入学生信息管理页面,这里包括考生信息查询,可以使用准考证,姓名进行模糊查询,学生信息设置了分页显示,以免学生信息过多页面需要下划。操作栏有“修改”,“删除”按钮,右上角有“添加考生信息”按钮;

    点击“添加学生信息”按钮,显示:

    32

    邵阳学院毕业设计(论文)

    图4.11添加学生信息图

    说明:

    添加学生信息页面,老师可以填写学生信息,其中有姓名填写,性别选择,身份证填写,专业填写,输入完成,然后点击保存,学生信息就可以添加成功;如果填写的信息不完整或错误,则会给出相应的提示信息。这里的添加学生信息就相当于管理员为考生注册账号,添加成功后,添加的学生信息会保存到后台数据库。 点击“修改学生信息”按钮,进入修改学生信息界面,显示:

    图4.12修改学生信息图

    说明:修改学生信息页面,管理员(老师)可以修改考生的各类信息,其中有姓名的修改,身份证,性别,专业以及密码,修改完毕,可以点击保存,让数据保存到数据库;

    点击“删除”按钮,显示:

    4.13学生信息删除显示图

    33

    邵阳学院毕业设计(论文)

    说明:

    管理员(老师)点击“删除”按钮,页面会提示确定要删除该记录吗,假如用户选择“确定”,则系统会删除这条数据,否则不会;这里会有一个学生信息的判断,判断学生是否有进行过考试,删除后,删除的考生的学生信息,考试信息都会被删除,数据库里的数据信息也都会被删除。 关键代码实现: 分页获取所有学生信息;

    StringBuffer hql=new StringBuffer(\if(StringUtil.isNotEmpty(s_student.getId())){ }

    if(StringUtil.isNotEmpty(s_student.getName())){ } Query

    query=session.createQuery(hql.toString().replaceFirst(\hql.append(\hql.append(\

    \

    if(pageBean!=null){

    query.setFirstResult(pageBean.getStart());

    query.setMaxResults(pageBean.getPageSize()); } }

    根据条件获取学生记录数:

    public int studentCount(Student s_student)throws Exception{

    34

    Session

    session.beginTransaction();

    StringBuffer sql=new StringBuffer(\if(StringUtil.isNotEmpty(s_student.getId())){ }

    if(StringUtil.isNotEmpty(s_student.getName())){ }

    sql.append(\sql.append(\

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    邵阳学院毕业设计(论文)

    添加或者修改学生信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction(); session.merge(student);

    session.getTransaction().commit();}

    删除学生信息:

    public void studentDelete(Student student)throws Exception{

    Session

    session.beginTransaction(); session.delete(student);

    session.getTransaction().commit();}

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    通过id获取学生信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction();

    Student student=(Student)session.get(Student.class, id); session.getTransaction().commit(); return student;}

    4.2.3 考生成绩查询

    点击“成绩查询”按钮,显示:

    4.14考生成绩列表图

    35

    邵阳学院毕业设计(论文)

    说明:管理员(老师)点击考生成绩查询,进入到成绩查询页面,页面会显示所有考生的考试信息,包括每次的试卷名称,考试日期,单选题得分,多选题得分,总分信息;这样详细给出了考生考试的所有信息。其中可以输入精确的准考证号查询某个考生的考试信息,也可以通过性名来查询。成绩查询页面,有准考证号,姓名查询,结果列表分页显示; 关键代码实现:

    根据条件分页查询考试信息:

    StringBuffer hql=new StringBuffer(\

    if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStuden

    t().getId())){

    hql.append(\

    }if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStude

    and

    exam.student.name

    like

    nt().getName())){hql.append(\ }

    '%\

    Queryquery=session.createQuery(hql.toString().replaceFirst(\

    \

    if(pageBean!=null){ }}

    query.setFirstResult(pageBean.getStart()); query.setMaxResults(pageBean.getPageSize());

    根据条件查询考试信息记录数:

    public int examCount(Exam s_exam)throws Exception{

    Session

    session.beginTransaction();

    StringBuffer sql=new StringBuffer(\count(*) from t_exam

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    t1,t_student t2 where t1.studentId=t2.id \

    if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStuden }

    36

    t().getId())){sql.append(\

    邵阳学院毕业设计(论文)

    if(s_exam.getStudent()!=null&&StringUtil.isNotEmpty(s_exam.getStuden

    t().getName())){

    sql.append(\ }

    Query query=session.createSQLQuery(sql.toString()); int count=((BigInteger)query.uniqueResult()).intValue(); session.getTransaction().commit(); return count; }

    4.2.4 试卷管理

    点击菜单栏中的“试卷管理”,显示:

    图4.15试卷管理图

    说明:

    在试卷管理页面,会显示所有的试卷信息,试卷名称,试卷添加日期。在右上角,有“添加试卷按钮”,下面是试卷列表,操作栏有“修改”,“删除”按钮;

    37

    邵阳学院毕业设计(论文)

    关键代码实现:

    根据条件分页查询试题信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction();

    StringBuffer hql=new StringBuffer(\if(StringUtil.isNotEmpty(s_question.getSubject())){ } Query

    query=session.createQuery(hql.toString().replaceFirst(\hql.append(\

    \

    if(pageBean!=null){ }

    query.setFirstResult(pageBean.getStart()); query.setMaxResults(pageBean.getPageSize());

    根据条件查询试题记录数:

    public int questionCount(Question s_question)throws Exception{

    43

    }

    Session

    session.beginTransaction();

    StringBuffer sql=new StringBuffer(\if(StringUtil.isNotEmpty(s_question.getSubject())){ } Query

    int count=((BigInteger)query.uniqueResult()).intValue(); session.getTransaction().commit(); return count;

    sql.append(\

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    query=session.createSQLQuery(sql.toString().replaceFirst(\

    邵阳学院毕业设计(论文)

    添加或者修改试题信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction(); session.merge(question);

    session.getTransaction().commit();

    删除试题信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction(); session.delete(question);

    session.getTransaction().commit();

    根据试题id获取试题信息:

    session=HibernateUtil.getSessionFactory().getCurrentSession();

    session.beginTransaction(); Question

    question=(Question)session.get(Question.class,

    Integer.parseInt(questionId));

    session.getTransaction().commit(); return question;

    4.2.6 退出系统

    点击“退出系统”按钮,显示:

    图4.24管理员退出系统图

    说明:

    考生测试完,所以的目地都已经达到了,点击“退出系统”。

    44

    邵阳学院毕业设计(论文)

    第5章 系统测试

    5.1系统安全性

    本在本系统里使用了JSP的Session对象对系统程序进行保护,防止用户非法进入后台管理或者进行越权操作。如果操作人员没有注册或登录就直接打开后台管理,系统将会调用login2.sp文件里的保护机制提醒用户注册或登录。如果你进行越权操作,系统同样会提出警告。主要代码如下:

    public String login()throws Exception{ }

    5.2系统测试

    5.2.1本地测试

    本系统是在B/S模试下开发运行的,因此最后的工作就是将开发完成的系统放在网络上进行测试。第一步就是本地测试。在测试的计算机上安装IIS,将要测试的文件拷贝到C盘相关目录下,重新启动IIS,在局域网内的计算机只要在浏览器里输入服务器计算机的标识或者IP地址,即可访问本系统。

    5.2.2远程测试

    首先需要将系统上传到Internet中,在Internet服务器中配置好相关设置,进行实际运行测试。所使用的空间必须是能够支持JSP的服务器。选择适当的域名,在任何可以连接互联网的浏览器中输入该域名,即可访问本系统。

    46

    邵阳学院毕业设计(论文)

    第6章 总结

    利用计算机考试软件进行测验在现在的高校中是非常普遍的,在我自己的学校我也有过用这样的软件系统考试的经历,刚开始接触的时候觉的这个是很神奇的东西,也曾经思考过怎么一个神奇的东西是怎么创造的。怀着好奇,利用这次的毕业设计大胆了进行了尝试,而要实现这样一个系统运用到了很多我们专业所学的专业知识。我自己对JAVA专业知识的学习并没有学的很好,会选这样一个课题来做,第一是本身对这样的系统抱有好奇,第二是想利用毕业设计这样给自身一个压力,希望自己在完成课题的这段时间好好学习一下JAVA,还有就是认为这是大学中的最后的项目机会,想挑战一下自己。因本人学识有限,系统的许多功能都末能满足实践,比如:本系统只是进行选择题的测试而没有理论性的简答题和计算题,前端学生的注册,前端学生的资料修改等等,所以这不能算是一个成功的系统。但是也有一些好的地方,这是我第一次常试做一个JAVA的项目系统,在过程中攻克了许多的难关,分页的设置,jsp界面的跳转设置,Datepicker的使用等等,这些都是我以前所不懂和不熟悉的方面,而通过本次系统,我从中学习到了这些,这算是一个成功的点吧。

    在完成系统过程当中也遇到过各种样的的问题,刚开始我的系统是打算使用

    Myeclipse工具和sqlserver数据库来完成的,可是因为安装sqlserver数据库系统

    过程中出了问题,导致我的数据库一直不能正常连接,工作一度停止在那里,后来通过与指导老师成老师的反映,决定改用了MySQL数据库系统来完成,之后的编程工作还算顺利,过程中遇到的难题都过通查找相关资料或咨询同学而解决。在我完成程序的一半时,突然间遇到了一个大间题。我所使用配置环境的JDK是JDK1.8版本以上,而这个版本中有的包资料欠缺,导致我之前编写的程序都没用了,当时一直没有耐心再去重新编写,可是毕业时间临近,我又不得不去完成,积极性受打击,后来还是在朋友的提醒重新配置好环境继续去完成。

    完成这个系统我一直是处于边学边做的过程,这是一人努力的过程,最后是成功达到了自己预期的效,这是重要的一点,但更重要的是让我又一次经历了开发项目的一个过程。在我们要完成一项目时,首先是对项目的整体需求进行分析,然后就是分析它的各种可行性,技术可行性,操作可行性,经济可行性。如果分析它是可以满足的,那么接下来就是分析用户的各要求,把其有逻辑划分模块,这是就整体设计。再对每个模块进行细节划分和细节分析;然后就是思考每个模块的俱体实现过程,该怎么用算法将它实现出来,该用什么语言来实现,如果需要用到数据库,我们就还要进

    47

    本文来源:https://www.bwwdw.com/article/2kmo.html

Top