jsp基于SSH的在线考试系统.docx
- 文档编号:3507943
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:10
- 大小:190.21KB
jsp基于SSH的在线考试系统.docx
《jsp基于SSH的在线考试系统.docx》由会员分享,可在线阅读,更多相关《jsp基于SSH的在线考试系统.docx(10页珍藏版)》请在冰豆网上搜索。
jsp基于SSH的在线考试系统
2007级学生毕业设计
题目:
在线考试系统
姓名:
xxx
专业:
软件技术
班级:
软件技术
指导教师:
xxx
2010年04月18日
设计说明书
论文摘要
随着网络技术逐渐渗入社会生活各个层面,传统的考试方式必将面临着变革,而web在线考试则是一个很重要的方向。
基于Web技术的在线考试系统的试卷可以根据题库中的内容即时生成,可避免考试前的压题;而且可以采用大量标准化试题,从而使用计算机判卷,大大提高阅卷效率;还可以直接把成绩送到数据库中,进行统计、排序等操作。
所以现在较好的考试方法为在线考试,试题内容放在服务器上,考生通过姓名、准考证号码和口令进行登录,考试答案也存放在服务器中,这样考试的公平性、答案的安全性可以得到有效的保证。
因此,采用Web在线考试方式将是以后考试发展的趋势。
所以,我的毕业设计题目就是:
在线考试系统。
可以让莘莘学子们用计算机就能考试答题,让考试变得轻松与简单。
关键词:
考试,在线,在线考试系统,数据库
Abstract
Asthenetworktechnologyandgraduallyinfiltratedintoalllevelsofsociallife,thetraditionaltestmethodisboundtofaceachange,whilethewebonlineexamisaveryimportantdirection.Web-basedOnlineExaminationSystemofpapersbasedonthecontentsoftheitembankreal-timegeneration,canavoidthepressurebeforetakingthetestquestions;andalargenumberofstandardizedexaminationquestionscanbeusedtogradersusingcomputershasgreatlyenhancedMarkingefficiency;alsobesentdirectlytoresultsintothedatabase,statistics,sortingandotheroperations.Sonowabettertestingmethodsforonlineexaminations,examinationquestionsonthecontentsoftheserver,candidateshavepassedthename,ticketnumberandpasswordtologin,theexaminationanswersarealsostoredintheserver,sothatthefairnessoftheexamination,theanswercanbethesafetyofareeffectivelyguaranteed.Therefore,theuseofWeb-linetestmethodwillbethedevelopmenttrendofthefutureexaminations.So,Igraduatedfromadesignthatis:
onlineexaminationsystem.Studentscantesttheircomputerwillbeabletoanswer,sothatmadeiteasyandsimpletests.
Keywords:
examination,Online,OnlineExaminationSystem,database
需求分析
一选题的背景
目前是计算机技术与网络技术飞速发展的时代,传统的教育模式和考试模式受到了严重的挑战。
组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。
显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
随着计算机应用的迅猛发展,网络应用不断扩大,人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观。
二现行系统描述
在线考试是现阶段研究开发的一个热点。
给考生、评卷人和出题者带来巨大的便利,同时也使考试成为真正意义上的平等、公开。
它可以杜绝试题泄露、评卷不公、考生作弊。
考生可以在规定的期间内选择最佳状态时期参加考试,系统会为每一个考生同样的试卷,同时当场给出成绩。
在线考试系统的实现技术有多种,可以采用传统的客户机/服务器型的MIS型架构,即试题内容放在远程的服务器上,在考试机上安装考试应用程序和数据库客户机配置,因此每次考试时要对机器进行安装、配置,考务工作比较烦琐,而且考试程序放在客户机上,安全性也受到一定影响,因此本文讨论的网络考试系统采用Web技术实现。
Web技术超越了传统的"客户机/服务器"两层结构,采用了三层体系结构:
用户界面层/服务层/数据库层,因此Web结构有着更好的安全性,在用户机上不需要安装任何应用程序,应用程序可以安装在事务层所在的计算机上,试题存放在数据库服务器上,当然,事务层和数据库可以是同一台机器(如果条件允许,还是应该把这两层分开在不同的计算机上),本文所讨论的在线考试系统是基于JSP技术实现的。
三系统分析
(一)功能需求
该系统和普通的基于WEB的考试系统是有所不同的。
它要求系统能自动生成测试试卷、能到点自动提交并评分、能断点续考、能根据某次考试分析各知识点的失分情况等功能。
同时也要求系统能作为一个通用的用于各类课程测试、考试和练习的系统。
在系统的安全性、智能性、并发性、实用性、易操作性等诸多方面均有着较高的要求。
(二)可行性分析
概述
用户:
教育单位
拟建系统名称:
学校在线考试系统
系统目标
为了适应新形势的发展,我进行了这一系统的初步设计工作,也可以说是做一个初步的探索,希望它能够在各类考试中发挥高效、便捷的作用,把老师从繁重的工作中解脱出来!
四系统流程图
本系统是以一个会员身份登陆,用户可以修改自己的信息,可以查看新闻,可以提交留言评论。
相关的系统流程图,如图:
管理员登陆模块流程图
教师登陆模块流程图
学生登陆模块流程图
第二章本人所负责的模块详细介绍
一.试题管理模块
(一)模块描述
试题管理模块的功能有:
试题单个添加,试题excel导入,试题分页查询,试题修改,试题删除以及试题批量删除。
试题分页查询页面如下图2.1
图2.1题库列表
1.当点击左导航时查询出所有的试题分页显示,如图2.1;按题目查询是模糊查询,若文本框中什么都不写是查询的是所有试题;若所在页码是首页时,上一页和首页的按钮是不可用的,相反,若所在页码是尾页是首页和上一页的按钮是不可用的。
2.在线考试系统使用了hibernate框架,所以分页使用的hibernate分页,其中字段题目、科目、知识点分别来自不同的三个表,用hql语句做链表查询,在此我用的是左外连接语句。
3.点击新增按钮,进入新增界面,如下图2.2
图2.2试题添加
4.科目和知识点的下拉列表是一个二级联动,页面打开时初始化出来,题目是不可以重复的,当题目文本框失焦时,用ajax与服务器进行交互,查询出该题目是否已经存在,若存在就在右侧提示“该题目已存在”。
添加成功则跳到列表页面,失败则跳到中间页提示“添加失败”
5.点击导入按钮,跳到导入界面如下图2.3
图2.3试题导入
6.科目和知识点的下拉列表是一个二级联动,页面打开时初始化出来,若以上任何一个框是null都会提示不能导入。
7.点击修改按钮,进入修改界面如图2.4
图2.4试题修改
8.打开页面时初始化出所点试题的所有信息,并填充页面。
点击修改,完成以后跳到列表页面
9.点击右侧删除链接,弹出提示框如图2.5
图2.5确认删除提示框
10.点确定后删除并返回列表页面,点取消则什么都不做。
11.勾选全选复选框,则本页所有试题全部被选中,在点击批量删除链接则会删除所选并跳到列表页面,若没有试题被选中则提示“请选择您要删除的试题!
”。
(二)模块总结
1.该模块用到了试题的excel导入,要求若excel已经导入过是不可以重复导入的,从excel表中读出数据后,先去数据库里查询该试题是否已经存在(根据试题标题查询)若已经存在,则不在执行插入,如果不存在则插入数据库,这样就避免了相同的试题多次导入的弊端。
2.该模块中用到的二级联动,其实是当页面初始化时查询出所有的科目和知识点放在页面上,科目先填充进去,当科目选择发生变化时,用javascript实现知识点的联动。
只所以不用ajax,本人认为若每次选择一个科目都要去跟数据库交互查询出该科目下的知识点,势必加大服务器的负担。
二.学生在线考试模块
(一)模块描述
在线考试模块主要功能有:
1.当这次考试时间未到时,可以登录但不能点击“开始考试按钮”。
2.时间到了以后点击“开始考试”按钮进入考试列出试卷所有试题并标识选项个数。
3.学生可以在题目后的文本框中填入答案,每填一个试题或改一个试题都采用ajax与数据库进行一次交互,修改temp表中的试题答案。
4.若学生还未交卷,而突然断电或其他情况导致页面关闭,则用户重新登录进入考试,还可以继续答卷,以前的答案还会填充回来。
5.答题完毕以后点击“交卷”按钮可立即计算出该学生的成绩弹出对话框提示,点击确定退出页面进入登录页面,用户提交试卷以后再登录系统时点击这次考试的“开始考试按钮”会提示“试卷已经提交!
”。
6.若试卷已经提交,若时间已到,则会自动交卷。
7.若学生断电以后来不及登录到试卷页面时间就到了的话,系统将会执行服务器端自动交卷。
8.考试页面如下图2.6
图2.6在线考试页面
(二)模块总结
1.点击开始考试时,要做很多。
首先判断是否在考试时间以内,若在考试时间以内再判断该学生在在这次考试中是否有成绩(即是否是第一次点击开始考试),若没有成绩,则向数据库中的成绩表中插入一条记录(成绩是-1)同时向临时表中添加和题数相等条数的记录;若有成绩则判断是否已经提交,若没有提交则读出临时表中该学生成绩后跳转到考试页面进行填充(即断电续考)。
2.在线考试模块中,要实现断电续考功能就必须在数据库中添加一张临时表,将学生的每次答题都记录下来,而要实现这样的功能势必要用到ajax,在此,服务器的压力要大一些是必然的,为了减轻服务器的压力,在答题页面,f5和右键功能全部被屏蔽。
Ajax作为一种新型编程模式,避免了页面的整体刷新,让学生在没有任何刷新感觉的情况下完成与数据库交互的功能从而实现了断电续考。
3.在线考试系统的页面自动提交功能,为了实现这一功能,在用户点击开始考试时就拿出服务器端系统时间和数据库中的开始考试时间和考试用时做对比计算出离交卷还有多少毫秒,在页面上拿到这个毫秒数用javascript中的settimeout()倒计时,时间到了以后执行提交。
4.在线考试系统的服务器端自动提交,为了实现这一功能,在学生点击开始考试时,就为这个学生开启一个作业调度,将考试结束时间传入调度里,调度把这个时间转换成它要求的表达式格式,当时间到了的时候就自动从temp表中自动读出该学生这次考试中所有试题的对错情况并计算得分插入到score表中。
第三章项目总结
一.遇到的问题
(一)ssh遇到的问题
1.在线考试系统用的是ssh稳定框架整合,为了保证用hibernate操作数据库不出错,所有的数据库表不是用mysql企业管理器或查询分析器来完成的,而是用hibernate的pojo类和hbm.xml文件导入的,然而,配置这些关联映射却很麻烦,往往考虑不到而配置成单向关联,在开发过程中又发现双向关联都用到了,因此开发过程中数据库一直在修改。
2.使用ssh必然用到了hql查询,虽然学习过hibernate高级查询,而用hibernate联合4,5张表进行查询时就不知道该用hibernate的那种方式进行查询了,一开始觉得hibernate远没有jdbc直接连数据库简单,后来随着使用hql越来越多发现也不是这样,hibernate查询非常灵活,它的对象导航图就可以很简单的链表查询,hql连接语句也很好用。
即使如此,hibernate始终都存在一个大的bug,hibernate的本地sql查询支持任何长度的字符串查询,然而当mysql中的字段变成text类型时,hibernate一定会报一个“type=-1“的错误,这是我们组在导入试题时发现试题名称和选项太短而把数据库改成text类型是发现的。
所以本人建议所有使用hibernate的开发者,即使使用在数据库中建立视图,程序查询视图的方式来查询所要结果也要尽可能的避免使用本地sql方式。
(二)调用任务调度的问题
1.mysql数据库是不支持任务调度的,所以只有使用java程序来解决了。
Java的任务调度是可以在某个特定时间执行相应操作,而每次考试结束时间不是特定的,所以只有拿到考试结束时间以参数的形式传到调度里才能实现服务器端自动提交。
为此写了一个方法将字符串时间转换成了任务调度所使用的时间表达式格式。
在学生点击开始时new一个任务调度,然而当多个同学同时参加考试时JobDetail和CronTrigger的第一个参数如果重复就会出错,所以我用以下方法
publicStringgetrandom(){
Stringuuid=UUID.randomUUID().toString();
System.out.println("---uuid"+uuid);
returnuuid;
}
来得到一个随机字符串再加上年月日时分秒来做这两个参数就可以保证不会出错了。
二.项目感想
1.通过这次做在线考试系统,学到了不少的新知识:
POI操作excel和word,jfreechart绘制柱状图或饼状图,ssh稳定框架整合,ajax实现断电续考等。
2.整个项目从需求分析到功能实现全部由小组成员四人合力完成,大家共同商讨难点对策,共同解决技术问题,让我感受到团队的力量
3.由于计算机都可以上互联网,遇到问题时,网络也给了我很大的支持,自己解决问题的能力也有所提升。
4.这次的在线考试系统让我们体验到开发一个现实中的项目不是自己凭空想象出来的,它是根据用户的需求来开发的,无论自己做的多么好,如果不是用户所需要都不是一个好的项目
5.ssh虽然是现在java大型应用开发应用最多的,但还是要考虑自己的项目需不需要用到ssh稳定框架整合,毕竟用到的框架越多,整个项目的运行速度就越慢,做一个项目不是单独的为了学习某项技术,重要的是如何运用这些技术,在何时运用效果最好。
6.所有的问题,java都有办法解决,只要肯动脑筋。
致谢
大学三年的学习生活即将结束,毕业论文就成了对我们这三年来学习成果的检验和总结,同时也是对我们能力的一种测试。
首先我要特别感谢专业课的所有老师们,是他们在我学习专业课的过程中无私的教授给我许多专业知识和技能,使我能够在论文写作的过程中顺利解决难题和疑问。
我明白老师们最大的心愿就是让自己的学生能够有能力在未来的社会中有所成就,为国家贡献自己的最大力量。
在今后的日子里,我一定会牢记老师的教诲,努力做一个对社会有用的人。
至此,在论文完成之际,向计算机专业的全体老师们献上我最真挚的祝福和谢意。
同时,我也要感谢三年来所有赐予我知识和帮助的老师们,是你们共同帮助我成长,促使我进步,真心的祝福各位老师身体健康工作顺利!
谢谢你们!
最后请允许我再说一声:
“老师,您辛苦了!
”
参考文献
[1].王国辉.JSP数据库系统开发案例精选.北京:
人民邮电出版社,2007:
10-15
[2].孙卫琴.Tomcat与JavaWeb开发技术详解.北京:
电子工业出版社,2006
[3].张黎伟.JSP从入门到精通.上海:
科学普及出版社,2007
[4].龚元明.计算机软件工程基础.北京:
中国致公出版社,1997
[5].申吉红.JSP课程设计案例.北京:
清华大学出版社,2006
[6].张海藩.软件工程.北京:
人民邮电出版社,2006
[7].java从入门到精通.北京:
清华大学出版社,2008-9-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- jsp 基于 SSH 在线 考试 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)