1、基于JavaWeb的在线考试系统的设计与实现教材在线考试题 目: Java Web应用开发 在线模拟考试系统的设计与实现 学 院: 软件工程与服务外包学院 专 业: 软件技术 学生姓名: XXX 班级/学号 软工XXXXXXXXX 指导老师/督导老师: XXX 摘 要随着网络技术的发展,远程教育和网上考试成为网络应用的一个重要方面。近几年,在线考试特别是基于Web 的在线考试系统受到越来越多的人青睐。本次项目实训的题目是在线模拟考试系统的设计与实现,系统采用浏览器/服务器模式开发,包括登录注册、在线考试、试卷设置、试题管理、分数的统计以及成绩查询等功能。系统运行在Windows 操作系统上,以
2、Tomcat作为Web服务器,使用SSH+JSP技术和MySQL 数据库实现。关键词:在线考试;浏览器/服务器;JSP;MySQL;JDBC;第一章 项目概述1.1 开发背景随着我国计算机技术和通讯技术的发展,互联网的普及程度已经很广泛了,但是,现在的教育教学检验方式,还是停留在过去的纸质考试层面在,而传统的教育教学检验方式中,要进行一次考试,至少需要经过教师出题、学生考试、教师阅卷等几步,这是一个繁杂的过程,需要大量人力、物力与时间的投入,同时也让教师的工作量越来越大;现在远程教育类学校的增多,虽然利用了网络拉近了教师与学生的距离,但学生的分布过广,导致了不易统一集中安排考试,考生成本的增加
3、等诸多难题的出现,给校方和学生带来了很多的不便,因此,传统的考试方式已经不能适应现在新兴的教育教学方式的考试需要了。可以解决这些诸多难题的一种方式,就是利用Internet无国界的特点,在互联网上在线考试。在线考试系统可以减轻教师的工作负担、提高工作效率,也减少了因考试而消耗不必要的人力和物力。在线考试的题目由计算机从题库中随机抽取,提高了考试的质量,考试的评判由计算机自动完成,这样使考试更趋于公证、客观。随着社会的发展和我国互联网的普及,我们的生活中的已经有很多方面都运用到了网络,比如网上购物,网上交友等,甚至现在很多人看新闻都是通过网络阅读的,在阅读新闻这个事件上,已经不仅仅局限于纸质化的
4、报纸上了;而要把考试趋于无纸化的模式,需要在线模拟考试系统来完成,这个也是现在高等教育发展的一个需求。在国内,试题库系统理论与技术的研究在最近几年取得了很大的进步。我国许多企业和高校都投入量大量的人力物力到各门课程的试题库中,并取得了一定的成就。现在的生活中已经有越来越多的等级考试运用了在线考试系统,比如会计的电算化考试、计算机等级考试、银行资格证考试等,这些已经充分说明,在线考试系统是今后我们的考试生涯中的一个发展趋势。1.2 开发意义考试是教育中一个非常重要的环节,但在以前的很长时间里,全球所有的国家都是以笔试的方式来检查焦距教学成果的,随着网络的发展,互联网已经普及的非常广泛,随着这些周
5、围环境的改变,人们开始去寻找新的方式来去达到更客观,更方便快捷的去达到考试的目的。近些年来,在国外,已经投入使用的考试系统有著名的TOEFL,GRE网上考试系统,还有微软、思科等大公司的国际认证考试等,这些考试系统在全球范围内有众多的使用者。网络化考试系统对节约考试成本,实现远距离的同步考试,提高考试效率,确保考试结果的公平、公正、科学、及时等具有重要的意义,不仅可以动态地管理考试信息,而且还提高了教学的灵活性,相信随着技术的不断发展和网络覆盖面的不断扩大,在不断完善该考试系统的同时也会在更大的范围上应用。1.3开发工具本系统是基于Tomcat为服务器,SSH+JSP+MySQL数据库技术实现
6、的一个简单的在线考试系统. 1.3.1动态网页开发技术JSP(Java Server Page) JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件中插入Java程序段和JSP标记,从而形成JSP文件。 用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。 JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的
7、资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。 JSP与Java servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。 JSP页面由HTML代码和嵌入其中的Java代码所组成。Java servlet 是JSP的技术基础,而且大型的Web应用程序的开
8、发需要Java servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 1JSP技术的强势 (1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是现而易见的。 (3)强大的可伸缩性。从只有一个小的Jar文件就可以运行servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到
9、无数台服务器,Java显示了一个巨大的生命力。 (4)多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 2 JSP技术的弱势 (1) 与ASP一样,Java的一些优势正是它致命的问题所在。正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。 (2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。从另一方面,它还需要硬盘空间来储存一系列的.java文件和.class文件,以及对应的版本
10、文件。1.3.2 数据库MySQL MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司,在2008年1月16号被Sun 公司收购。MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。如雅虎、阿尔卡特朗讯、Google公司、诺基亚公司、XX等公司就采用了MySQL数据库。MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户可以直接从网上
11、下载.MySQL数据库主要有以下特点:1、可移植性使用C和C+编写,并使用了多种编译器进行测试,保证源代码的可移植性。2、可扩展性和灵活性MySQL可以支持UNIX、Linux和SUN OS以及Windows等多种操作系统平台。在一个操作系统中实现的应用可以很方便地移植到其他操作系统。MySQL作为开源性质的 数据库服务器,可以为那些想要增加独特需求的用户提供完全定制的功能。3、强大的数据保护功能MySQL有一个非常灵活且安全的权限和密码系统。为确保只有获授权用户才能进入该数据库服务器,所有的密码传输均采用加密形式,同时也提供了 SSH和SSI。支持,以实现安全和可靠的连接。MySQL强大的数
12、据加密和解密功能,可以保证敏感数据不受XX的访问。4、支持大型的数据库虽然对于用PHP编写的网页来说,只要能够存放数百条以上的记录数据就是够了,但MySQL可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,MySQL可以针对不同的应用进行相应的修改。5、超强的稳定性MySQL拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用而不必担心其稳定性。线程是轻量级的进程,它可以灵活地为用户提供服务,而不占用过多的系统资源。用多线程和C语言实现的MySQL能很容易地充分利用CPU。6、强大的查询功能MySQL支持查询的select和where语句的全部运算符和函数,并且可以在同
13、一查询中混用来自不同数据库的表,从而使得查询变得快捷、方便。1.3.3 Tomcat介绍Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是Apache 软件基金会的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些学校及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。T
14、omcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单
15、独运行的。 自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, 这样Tomcat就诞生了。 Tomcat是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的servlet和jsp容器,因此其越来越受到软件公司和开发人员的喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次, Tomcat也是完全免费的软件,任
16、何人都可以从互联网上自由地下载。第二章 系统分析2.1 现状分析传统的考试方式是教师提前命题、印刷试卷、组织学生考试、学生在统一时间和地点考试、收卷后教师阅卷、成绩统计。如图2.1组织学生考试印刷试卷教师提前命题 成绩统计教师阅卷学生统一考试 图2.1 传统考试模式这种模式存在有较多的问题:命题:由于是同意的时间进行考试,所以考生的试卷都是一样的,这样对教师命题带来的很大的麻烦,即:试题太难或者太容易,都达不到考试的目的。如果是大型的考试,比如英语四级考试,还要担心试题是否被泄漏的等问题(现在已经有类似问题的出现,才会有现在说的花卷)。印刷试卷:组织考试,印刷试卷费工费时,成本高,而且对于纸张
17、资源也是一种浪费,而且印刷的时候,也会担心试题被泄漏的问题。组织学生考试:监考人资源的浪费,和教师资源的匮乏,如何调配也是一个难题,如果是全国统一考试,还要涉及不同区域同时考试的问题。学生统一考试:由于是同一时间,同一地点,同一张试题,考生作弊问题便会出现,而且是非常难解决的问题,再加上每个监考员监考的严格程度不同,这些人为因素难控制,使考试难公平,公正。教师阅卷:教师阅卷比较容易出错,会造成人为的不公正性。成绩统计:当成绩录入时,数字的混乱会导致录入者输入错误或者看错。2.2 可行性分析可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发
18、从技术、经济、管理的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。该系统的可行性分析包括以下几个方面的内容。2.2.1经济可行性在线考试必然会在今后的教学管理上成为主要的考试形式。开发一套能满足一般考试的需要,并实现试卷生成、评判自动化的在线考试系统。在减少由于人为原因导致试卷阅卷的不公正的同时,也可以让教师的工作量得以减少,有更多的时间去备课教学。本系统如果用在一些辅助教育类的网站上,那经济效果是很明显的;如果是用在学校的教学管理上,会得以发挥其潜在的经济效益,比如印刷试卷的费用等。因此,本系统在经济上是可行
19、的。2.2.2 技术可行性技术上的可行性分析主要分析技术条件是否能顺利完成开发工作,硬、软件能否满足开发者的需要等。硬件方面,硬件的更新速度之快,可靠性越来越高,目前一般的硬件平台均能满足次系统的需要。软件方面,编程的软件以及Web服务器等均已具备,并且环境变量已经搭好,数据库用MySQL存储大量的数据,MySQL开源化,目前已经很成熟,在灵活、安全和易用方面均能提供良好的支持。因此,系统的软件开发平台已经成熟可行。2.3 设计目标在线考试系统的总体目标:1. 本系统提供给管理员类用户、教师类用户及学生类用户使用。不同的用户类型所能完成的功能不同。管理员类用户可以对于已经注册的考生及系统中已经
20、存在的教师进行删除操作,对于未注册过的考生及系统中未存在的教师进行添加操作;教师类用户可以创建试题、删除试题、修改试题,也可进行试题维护、修改密码以及对成绩的统计;学生类用户主要是参与考试,完成试卷,查询成绩。2. 考试数据的存放和处理过程必须保密,需要一定的安全性保障若考生需要查卷,经审核方可以。3. 题目的选择具有稳定性、随机性。稳定性就是每张试卷总体的难易程度要近似一样,保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。4. 适时的试题题库更新,试题题型包括判断题、选择题类型。试题库的更新由管理员类用户完成。学生类用户不允许对试题进行更新。5. 实现现代考试网络化。2.4 功
21、能要求系统具备的基本功能:1.用户登录及注册对用户进行识别、验证;没有注册的用户跳转到用户注册页面;2.考试模块考生选择自己想要参加的考试类别,并进行考试,考试完成以后可以获得当考试成绩。3.历史成绩模块-考生可以看到自己以前参加的考试成绩。以对自己的进步状况进行一次把握。4.试题维护模块-教师选择试题的类别,然后针对该试题分类中的所有试题进行维护,可以添加新题目,也可以对现在有的题目进行修改或者删除处理。5.试卷设置模块-教师对题库中的题目按照一定分类标准存放,包括分类的添加、修改和删除操作等。6.历史成绩管理模块-教师可以看到模式体分类的整体考试情况,考试成绩分布情况,可以判断出题库中的题
22、目难以水平,并可以在以后的维护中做出适当调整。7.考生管理-系统管理员可以对已经注册的考生进行删除操作,对于未注册的考生进行增加操作。8.教师管理-系统管理员可以对系统已经存在的教师进行删除操作,对于未在系统中存在的教师进行增加操作。9.修改密码模块-教师和考生可以在已经登录成功的页面点击修改密码,可以修改本人登录此考试系统的登录密码。除了实现上述功能以外,在线考试系统还应该具有简洁、易用的界面,安全性要高,稳定性要强。根据以上的需求分析,画出本系统的Use Case图,如图2.2所示:管理员 教师管理考试考生管理考试登 录教师注 册试题维护考试考生在线考试考试试卷设置考试历史成绩绩历史成绩管
23、理修改密码图2.2 在线考试系统的Use Case图2.5 系统开发环境配置1. 操作系统:Windows xp 2. 内存:4G3. CPU:2.00GHZ4. Java平台:JDK 5.05. Web服务器:Tomcat6.06. 数据库服务器:MySQL7. 开发平台: MyEclipse6.0第三章 系统设计3.1数据库设计在对网上考试系统数据库部分进行设计的过程中,通过对系统功能进行需求分析得到系统的基本信息表,详细设计过程如下介绍。3.1.1 数据库需求分析需求分析是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否
24、合理和实用。对于本系统而言,系统的角色分为管理员、教师、学生,这需要3个表,而考生考试,需要一个存放题库的表,考试的类别不同,也需要一个存放类别的表,考生考试完毕后,需要一个存放考试成绩的表。综合以上分析,要实现上面的所有功能模块,数据库共要设计六个表,它们分别是:试卷类别表、用户表、用户成绩表、教师表、管理员表、题库表。3.1.2 数据库表设计用户信息表,用来存放考生信息,如表3-1所示:表3-1用户信息表字段名类型长度是否为主键可否为空说明user_idint11是否用户的idusernamevarchar20否否登录用户名passwordvarchar20否否用户登录密码realname
25、varchar20否否用户真实姓名教师信息表,存放教师信息,如表3-2所示:表3-2教师信息表字段名类型长度是否为主键可否为空说明teacher_idint11是否教师的idteachernamevarchar20否否教师登录名passwordvarchar20否否教师登录密码realnamevarchar20否否教师真实姓名管理员信息表,存放管理员信息,如表3-3所示:表3-3管理员信息表字段名 类型长度是否为主键可否为空说明adusernamevarchar20是否管理员登录名passwordvarchar20否否管理员登录密码realnamevarchar20否否管理员真实姓名题库信息表
26、,存放考试题目以及答案等信息,如表3-4所示:表3-4题库信息表字段名 类型长度是否为主键可否为空说明question_idint10是否试题编号category_idint10否否试题分类编号subjectvarchar300否否题目choice_avarchar100否否选项Achoice_bvarchar100否否选项Bchoice_cvarchar100否否选项Cchoice_dvarchar100否否选项Danswerchar10否否正确答案成绩表,存放考生考试时间以及成绩等信息,如表3-5所示表3-5成绩表字段名 类型长度是否为主键可否为空说明record_idint10是否考试记
27、录编号usernamevarchar20否否考试用户名category_idchar10否否试题分类编号test_timechar14否否考试时间test_resultint11否否考试成绩试卷类别表,存放试卷类别信息,包括试卷分类名称、试卷题目等,如表3-6所示表3-6试卷类别表字段名 类型长度是否为主键可否为空说明category_idint11是否试题分类编号category_namevarchar20否否试题分类名称question_numberint10否否试题数目3.1.3数据库逻辑结构设计1 关系图本系统各表之间的关系如下图3-1示: 图3-1关系图2完整性设计完整性要求用于描述
28、各种信息之间的制约关系以及关联关系,各个数据项的取值范围以及各个数据项是否可以取值。根据实际需要,采取一定的手段来满足用户的完整性需求。域完整性约束要求属性值必须在域中。实体完整性约束要求主键必须唯一且不能为空。如用户信息表中的用户名设置为主键,并且要求唯一且不能为空。3.2系统结构设计网上考试系统是一个典型的数据库应用程序,主要有管理员、教师和学生三大模块组成,各模块功能如下:管理员模块:该模块包含2个功能,一个为考生管理,系统管理员可以对已经注册的考生进行删除操作,对于未注册的考生进行增加操作;另一个为教师管理,系统管理员可以对教师进行增加、删除操作。教师模块:该模块包含4个功能,分别为试
29、卷设置、试题维护、历史成绩、修改密码。教师成功登录该系统后,能够进行修改个人信息,添加、修改、删除试题、试卷类别操作,也可对考生的成绩进行统计。学生模块:该模块包含3个功能,分别为开始考试、历史成绩、修改密码。学生成功登录该系统后,能够进行考试、查询成绩、修改密码。系统功能结构如图3-2所示: 系统功能教师模块管理员模块学生模块开始考试修改密码图3-2系统功能结构图3.3用户界面设计页面上部采用一个Logo图片和适当的标识,表明当前的系统名称。接下来是帮助连接和退出系统的连接。然后下部页面的主题分为左右两部分,左边是导航模块部分,其中放置迁移到不同功能模块的链接按钮,右边是页面的主要操作区域,
30、不同页面的不同显示主要在此体现。学生角色的模版页面如图3-3所示:在线考试系统Logo图片。 帮助 退出登录欢迎您!XXX开始考试历史成绩修改密码图3-3 学生角色模版每个模块都包含多个页面,再次挑选几个比较低型或者重要的页面进行详细描述。其他的页面结构比较类似或者比较简单,不一一详述。学生开始考试的时候,首先需要选择试卷类型,或者也可以叫做试题分类。在此页面中采用下拉列表框的形式进行,如图3-4所示:在线考试系统Logo图片。 帮助 退出登录欢迎您!XXX请选择试题的分类:确定会计基础 开始考试历史成绩修改密码图3-4 试题分类选择页面草图选择试题分类以后,即是学生答题页面。答题页面的主体应该是试题和试题的选项。考虑到本系统需要在题目结束以后立即
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1