在线测试系统课程设计.doc_第1页
在线测试系统课程设计.doc_第2页
在线测试系统课程设计.doc_第3页
在线测试系统课程设计.doc_第4页
在线测试系统课程设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

青岛理工大学琴岛学院设 计 报 告课题名称: 在线测试系统 学 院: 计算机工程系 专业班级: 计科(专升本)11-21 学 号: xxxxxxxxxxx 学 生: xxxxxx 同组成员: xxxxxxxxxxxx 指导教师: 刘福润 青岛理工大学琴岛学院教务处 2012年 6月 27日学 生xxxx指导教师刘福润课题名称在线测试系统设计时间2012.6.18-29设计地点动漫大厦2-212设计目的网站编程技术是一门实践能力要求高、与实际联系非常紧密、面向应用的工程实践性课程;课程设计是本课程教学计划中综合性较强的实践教学环节,通过项目开发过程、常见问题处理,不仅有利于提高学生在实践中提升解决问题的能力;也能够有效地帮助学生全面地掌握课堂教学内容,培养学生的实践和实际动手能力,对于提高学生全面素质具有很重要的意义。一、课程设计概述:1、背景介绍:以往的教学大都是通过其中考试和期末考试检验学生的学习效果,而学生平时没有机会自我检验,也就没有办法知道自己对知识点的掌握是否全面,理解是否正确。在线测试系统是为学生提供一个自我测试的平台,让学生可以主动地对所学过的知识进行在线测试以检验自己的学习效果,不受时间和地点的限制,通过随机抽题强化同学对各个知识点的全面掌握。2、目的与任务:本系统为高校所开发。立足于高校的实际,着眼于未来发展,建成符合标准化协议、通用性较强。实用的系统,以提高学生信息的现代化发展,系统的建成无疑会为广大学生提供极大的帮助。该系统主要实现是供学生进行自测试,学生可以自行注册用户,系统后选择科目进行在线测试。系统一共包含5个用例,如登录、注册、修改密码、退出、在线测试。在开发过程中,需要掌握并巩固java语言编程基础,servlet技术,html基础以及javascript基础知识,会用不同的连接方式与不同的数据库连接,以后会根据不同的项目及要求选择不同的数据库。该项目完成后将有助于学生对学过的知识进行在线测试以检验自己的学习效果,强化学生对各个知识点的全面掌握。项目完成后提交的内容包括:每人一份的课程设计报告、一份源程序、一份数据库及一本实习日志。3、项目开发环境:操作系统:windows xp sp3 及以上开发工具:myeclipse 8.5web应用服务器:tomcat 6.0数据库服务器:oracle 11g采用技术:jsp+javabean+servlet (mvc)网络环境:经测试,该系统可运行于局域网、因特网。4、开发团队组织结构项目组负责人:周亮项目成员:徐崇礼、魏文威分工:徐崇礼负责公共组件及登陆注册的设计、魏文威负责密码修改、退出、在线测试的设计、周亮负责数据库等的设计。5、参考资料1 jsp开发技术/杨俊生,唐琳编著. 北京清华大学出版社,2011.12孙卫琴.tomcat与java web开发技术详解.北京:电子工业出版社,2004.二、系统需求分析1、功能需求如下图3-1所示为本系统的用例图。在线测试注册登录修改密码退出学生图3-1系统用例图系统功能具体描述如下:(1)登录:学生访问系统首页,输入学号和密码然后提交登录请求,系统通过数据库验证学号和密码是否正确,如果难失败,返回首页并提示错误信息;如果验证成功,则显示系统主页面,这时学生可选择在线测试或修改密码等功能。(2)注册:学生单击首页上的注册链接进入注册页面,输入学号、密码、重复密码、姓名、班级、邮箱和联系电话,然后提交注册请求,系统验证输入信息项格式是否正确、验证学号是否已经注册过、验证密码和重复密码是否一致。如果验证失败返回注册页面并提示相应的错误信息;如果验证成功保存注册信息并跳转到系统首页。(3)修改密码:学生在系统主页中单击密码修改链接进入修改密码页面,输入旧密码新密码、重复新密码后提交修改密码请求,系统首先验证旧密码是否正确,之后验证新密码和重复新密码是否一致。如果验证失败,返回修改密码页面并提示相应的错误信息;如果难成功保存新密码并显示成功修改信息。(4)退出:学生在系统主页中单击退出链接,系统销毁会话对象,并跳转页面到系统首页。(5)在线测试:学生在系统主页中单击在线测试链接,系统首先显示考试科目选择页面,学生选择科目后,系统自动从题库中随机抽取试题然后显示试题页面,学生根据题目内容作答,答题后提交,系统对答案进行判断,然后返回试题页,答对的题目标记对号,答错的题目后提示正确答案,学生可继续答题,也可以重新选题。2、性能需求硬件条件:cpu:p4 2.5ghz 内存:1g 硬盘:80g 操作系统:windows xp系统浏览器:ie6.0 安全软件:金山毒霸三、系统设计1、系统总体结构结合mvc模式,系统分为4层,各层说明如下:(1)视图层:由jsp技术实现,使用el表达式和jstl标准标记库。(2)控制层:由servlet实现,每个页面的访问和表单提交都对应一个单独的servlet。(3)业务层:由普通的javabean实现,控制层组件通过访问业务层组件的业务方法实现业务功能。(4)持久层:由普通的java类实现,模型层对象通过调用持久化层组件实现数据库访问。系统结构如下图3-2所示。视图层控制层业务层持久化层jspservlet通过javabean实现现java类实现实现方式 图3-2系统架构图2、系统模块结构创建一个javaweb项目,项目名称为exam,增加jstl标记库。根据架构设计对项目目录结构进行设置,主要目录结构说明如下表3-3所示。主要目录结构表examweb页存放网页文件css存放样式文件images存放页面中使用的图像文件web-inf存放web配置文件源包business存放业务层组件common存放公共组件control存放控制层组件dao存放数据库访问层组件库增加jstl标记库表3-3目录结构主要目录结构图:如下图3-4所示 图3-4主要目录结构图本系统包括五个功能组件:注册的功能组件:组件描述register.jsp注册页面index.jsp系统主页,包含系统的简要介绍和登录窗口register.java 注册控制器,实现dopost方法处理注册请求student.java学生模型类,实现表单数据格式验证方法和注册方法studentdao.java学生信息的数据库访问类,实现根据学号获取学生信息方法和保存注册的方法注册的功能组件图3-5-1:注册控制器(register)register.jspindex.jsp业务组件(student)数据库访问组件(studentdao)注册请求student图3-5-1登录的功能组件:组件描述main.jsp系统主页,提供信息修改、密码修改、在线测试和退出链接index.jsp系统首页,包含系统的简要介绍和登录窗口login.java 登录控制器,实现dopost方法处理注册请求student,java学生模型类,实现表单数据格式验证方法和注册方法studentdao.java学生信息的数据库访问类,实现根据学号获取学生信息方法和保存注册方法登陆的功能组件图3-5-2:登录控制器(login)index.jspmain.jsp业务组件(student)数据库访问组件(studentdao)登录请求student图3-5-2密码修改的功能组件:组件描述passwordmodify.jsp密码修改页面success.jsp修改成功提示页面passwordmodify.java修改密码控制器,实现dopost方法进行密码修改student,java学生模型类,实现表单数据格式验证方法和注册方法studentdao.java学生信息的数据库访问类,实现根据学号获取学生信息方法和保存注册的方法密码修改的功能组件图3-5-3:修改密码控制器(pm)passwordmodify.jsp.jspindex.jsp业务组件(student)数据库访问组件(studentdao)密码修改请求请求student图3-5-3在线测试的功能组件:组件描述chooseexamtype.jsp测试科目选择页面paper.jsp测试试卷startexam.java选择控制器endexam试卷评阅在线测试组件图3-5-4:chooseexamtype.jsp.jsppaper.jsp选题控制器(startexam)答卷评阅(endexam)在线测试图3-5-4退出的功能组件:组件描述logout.java退出控制器退出功能组件图3-5-5:注销控制器(logout)index.jsp退出请求请求图3-5-53、数据库设计系统中涉及实体信息包括学生信息、考试科目信息,另外还有试题类型(单选题、复选题或判断题)。具体表结构描述如下表3-3表3-6所示。学生信息表student如下表3-3所示字段类型是否为空长度说明idint否主键stunovarchar2否20学号namevarchar2否20姓名pwdvarchar2否20密码classvarchar2否30班级emailvarchar2是50邮箱phonevarchar2否12联系电话表3-3学生信息表考试科目信息examtype如下表3-4所示字段类型是否为空长度说明idint否主键titlevarchar2否50科目名称abbrvarchar2否10科目缩写 表3-4考试科目信息表试题类型信息questiontype如下表3-5所示字段类型是否为空长度说明idint否主键titlevarchar2否50试题类型表3-5试题类型信息表试题信息question如下表3-6所示字段类型是否为空长度说明idint否主键examtypeidint否考试科目,外键titlevarchar2否255试题描述qtypeint否试题类型,外键scoreint否试题分数qoptionvarchar2是100试题选项answervarchar2否20试题答案表3-6试题信息表四、本人所完成的主要工作本人在完成该系统功能中主要做了以下工作:1. 小组讨论确定选题;2. 完成系统主界面布局,图片处理等;整体布局如图4-1所示:图4-1 主界面3. 修改密码、退出;密码修改功能实现组件如下:passwordmodify.jsp 密码修改页面success.jsp 修改成功提示页面passwordmodify.java 修改密码控制器,实现dopost方法进行密码修改student.java 学生模型类,增加相关3个属性:oldpwd,newpwd,newpwd2, 2个方法:实现表单数据格式验证方法validatepasswordmodify和登录方法:passwordmodifystudentdao.java 用户信息的数据库访问类,增加修改基本信息方法updatestudent步骤描述如下:(1) 用户在系统主页单击修改密码链接;(2) 回复密码修改页面给用户;(3) 用户输入原密码、新密码和重复新密码,提交修改请求;(4) passwordmodify组件读表单数据,生成student对象,并调用student对象的validatepasswordmodify方法和passwordmodify方法;(5) passwordmodify对象调用studentdao对象的updatestudent方法;(6) studentdao返回更新密码信息结果;(7) student 对象返回修改结果;(8) passwordmodify根据修改结果进行页面转发,如果成功将最新的用户信息存储在session范围,转发请求给success.jsp,如果失败转发请求给passwordmodify.jsp;(9) 回复修改成功信息提示给用户。 passwordmodify.jsp页面的关键代码如下: /form表单修改密码 /表格布局旧密码 /密码框$requestscope.student.errorsoldpwd新密码长度46位,字母或数字$requestscope.student.errorsnewpwd重复新密码$requestscope.student.errorsnewpwd2 /提交运行后截图如图4-2所示:图4-2 修改密码passwordmodify.java修改密码,关键代码如下:/接收用户填入的信息,并进行数据库public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception /dopost方法 student loginstudent=(student)request.getsession().getattribute(student); string oldpwd=request.getparameter(oldpwd); /参数传递 string newpwd=request.getparameter(newpwd); string newpwd2=request.getparameter(newpwd2); student student=new student(); /实例化student student.setid(loginstudent.getid(); ./对接收的数据进行赋值(传递) student.setnewpwd2(newpwd2); /调用student类的validatepasswordmodify()和passwordmodify()两个业务方法 if(!student.validatepasswordmodify() | !student.passwordmodify() request.setattribute(student,student); /转向passwordmodify.jsp页面 request.getrequestdispatcher(/passwordmodify.jsp).forward(request,response); else request.getsession().setattribute(student,student); request.getrequestdispatcher(/success.jsp).forward(request,response); 退出功能实现组件如下:logout.java 退出控制器步骤描述如下:(1) 用户在系统主页单击退出链接,请求提交给logout组件;(2) logout组件销毁用户session,然后将请求转给index.jsp;(3) 回复系统首页给用户。4. 在线测试部分代码;在线测试实现组件如下:chooseexamtype.jsp 测试科目选择页面paper.jsp 测试试卷startexamine.java 选题控制器endexamine.java 试卷评阅 步骤描述如下:(1) 用户在系统主页单击在线测试链接;(2) 系统回复测试科目选择页面;(3) 用户选择测试科目,单击开始按钮,请求提交给startexam组件(4) startexam组件从题库中随机抽取20道题,然后将抽取到的试题存储在session范围,转发请求给测试页面paper.jsp;(5) 系统回复测试页面给用户;(6) 用户答题,提交给endexam组件;(7) endexam组件对试卷的每道题进行评阅,然后转发请求给测试页面paper.jsp;(8) 回复测试页面给用户,答对的题显示“”,答错的题给出正确答案。chooseexamtype.jsp关键代码如下: /form表单请选择考试课目: $element.title /选择试题科目列表 /提交 运行后截图如图4-3所示:图4-3 试题科目选择 paper.jsp在线测试页面,关键代码: $element.qid$element.title($element.qtype) 正确答案是 $element.answer /判断题型 $option.label  $option.label  $option.label  $option.label     运行后截图如图4-4所示:图4-4 在线测试答题 endexamine.java 对用户答卷进行评阅,关键代码如下:public void dopost(httpservletrequest request, httpservletresponse response)throws servletexception, ioexception request.setcharacterencoding(gbk);string finish=request.getparameter(finish);if(finish.equals( 交 卷 )arraylist list=(arraylist)request.getsession().getattribute(paper);int right=0; int score=0;for(int i=0;ilist.size();i+)question question=(question)list.get(i);if(question.getqtype().equals(单选题)/试题评阅,调用question的setqanswer方法question.setqanswer(request.getparameter(question.getqname();else if(question.getqtype().equals(复选题)question.setqanswers(request.getparametervalues(question.getqname();if(question.getanswer().equals(question.getqanswer()right+;score+=question.getscore();request.getrequestdispatcher(/paper.jsp).forward(request,response);else if(finish.equals( 重新开始 )response.sendredirect(startexamine.action);交卷评阅运行如图4-5所示:图4-5 交卷评阅web.xml配置相关代码如下: startexamine control.startexamine endexamine control.endexamine passwordmodify control.passwordmodify logout control.logout logout /logout.action startexamine /startexamine.action endexamine /endexamine.action passwordmodify /passwordmodify.action 五、工作总结通过利用jsp技术开发javaweb项目的过程,包括需求描述、架构描述、数据库设计、页面设计开发环境的准备、公共组件的功能实现以及系统功能实现。系统实现采用了mvc模式,jsp负责页面显示、servlet负责控制、javabean负责模型数据和模型方法实现。通过做这么一个课程设计项目,遇到了许多的问

温馨提示

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

评论

0/150

提交评论