




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业设计题目基于J2EE技术的俱轻松 在线考试系统的设计与实现 姓名 学号 院 系 专业信息与计算科学 指导教师 2016 年 12 月 教务处制本科生毕业设计声明本人郑重声明:所呈交的毕业设计,是本人在指导教师指导下,进行研究工作所取得的成果.除文中已经注明引用的内容外,本设计的研究成果不包含任何他人创作的,已公开发表或没有公开发表的作品内容.对本设计所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明.本设计创作声明的法律责任由本人承担. 作者签名: 年 月 日 本人声明:该毕业设计是本人指导学生完成的研究成果,已经审阅过毕业设计的全部内容,保证题目,关键词,摘要部分中英文内容的一致性和准确性,并通过一定检测手段保证毕业设计未发现违背学术道德诚信的不端行为. 指导教师签名: 年 月 日内容摘要:由于传统的考试方式效率低下,教师工作量大,设计一个在线考试系统越来越有必要.本文通过Java及Struts2框架实现在线考试系统的功能实现.本文所述的在线考试系统包括试题库管理,考生及教师信息管理,在线制作试卷,控制学生考试时长的设置,试卷状态修改等功能.本论文主要介绍了对JAVA在线考试系统的分析、设计和开发的全部过程.关键词:Java 在线考试 Struts2 框架全套设计加扣3012250582 Abstract:Because the traditional examination method and low efficiency, the heavy workload of teachers, it is necessary to design an online examination system more and more. Through Java and Struts2 framework to realize the function of online examination system. The online examination system described in this paper, including test library management, students and teachers information management, online production of the papers, control the students exams long set, test state modify functions. This paper mainly introduces the whole process of analysis, design and development of JAVA online examination system. Key words:Java Online Examination struts2 frame目 录1.绪 论11.1选题的背景和意义11.2本设计的主要内容与结构11.3系统开发环境11.4系统开发的思想与技术12.系统分析12.1 需求分析12.2数据流程图23.系统总体设计23.1 总体功能模块23.2管理员功能模块33.3 教师管理功能模块53.4 学生管理功能模块54.系统详细设计与实现64.1设计思想概述64.2数据库设计64.3部分功能模块的设计与实现105.系统测试165.1开发期测试165.2功能测试176.结论20参考文献22附录23致谢271绪 论1.1选题的背景和意义 当前学校的传统考试方式主要是老师出题目,用打印的方式给学校教务处,然后让教务处通过申请之后,通过打印出来的试卷让学生进行考试,这种考试方法主要有几个不便之处:教师在检查试卷题目,分析试卷组成以及阅卷上浪费了大量时间.为了适应时代的发展去设计了这个系统的初步工作.也可以说是一个初步的探索,希望它能够在各个考试中发挥出高效便捷的作用,把老师从繁重的工作中解脱出来.学生也可以根据自己的情况自行进行测试,方便快捷.1.2本设计的主要内容与结构本设计论述系统开发平台以及相关技术包括Jsp技术1,MVC模式,SSH框架2,Jquery框架技术,Ajax技术3.第二章是系统分析,分别画出了顶层数据流程图及其他功能模块的数据流程图.第三章是系统功能设计,分别描述了总体功能模块,管理员功能模块,教师功能模块和学生功能模块.第四章论述了系统详细设计与实现,系统模块结构设计,数据库设计中的数据库E-R图,数据库关系模型,数据库表结构.第五章是系统的运行和测试.1.3 系统开发环境本设计所用到的开发工具为Eclipse MySQL.1.4系统开发的思想与技术JSP技术与MVC模式 Jquery技术 Ajax技术.2系统分析2.1 需求分析通过调查分析,在线考试系统主要包括教师,管理员,学生.其中管理员主要负责教师,学生以及管理员用户操作,以及科目,试题的操作.教师主要根据进行阅卷,查看学生试题,以及学生测试成绩的操作.学生主要是考试,学生可以查看自己成绩,同时可以修改个人信息.在考试系统的设计和实现过程中,为了使系统便于管理和保障系统的安全性,管理员在添加用户信息时,将用户的登录密码默认设置为该用户登录的账号,因此用户登录后,可以先修改自己的登录密码,以保证个人账户的安全性4.2.2数据流程图顶层数据流程图说明了系统与其外部环境中各实体之间的信息交流.如图1所示:管理员在线考试系统学生参加考试给出试卷修改成绩教师查看成绩查看试卷修改个人信息查看个人信息提交试卷提交阅卷修改个人信息查看个人信息查看成绩添加修改删除用户添加修改删除试题查看用户查看试题添加修改删除试卷查看试卷添加修改删除科目图1 顶层数据流程图3系统总体设计3.1 总体功能模块在线考试系统主要有三种用户:管理员,教师,学生.总体功能图2所示:在线考试系统 教师管理员学生用户管理科目管理试题库管理试卷管理个人信息管理阅卷管理学生试卷修改个人信息管理个人信息查询个人信息查询历史考卷查询参加考试图2 总体结构图系统主要包括了五个子模块:分别为在线测试,题库管理,试卷管理,阅卷管理,用户信息管理.3.2管理员功能模块管理员主要有科目和题库管理,试卷管理,用户管理,成绩管理和个人信息管理五个模块.管理员的功能图如3所示:管理员个人信息管理成绩管理试卷管理试题库管理科目管理用户管理图3 管理员的功能3.2.1用户信息管理子模块用户信息管理模块:管理员可以添加用户以及对用户信息进行修改和删除等功能.用户管理功能图如4所示:管理员学生用户管理教师用户管理管理员用户管理修改密码添加用户删除用户修改用户添加用户删除用户修改用户图4 用户管理的功能3.2.2科目和题库管理子模块科目管理的功能主要用于管理科目的信息.科目管理功能图如图5所示:科目管理成绩管理查询科目添加科目删除科目图5 科目管理的功能题库管理模块:管理员登陆该系统可以对题库进行管理.试题管理功能图如图6所示:试题管理查看相应科目试题填空题问答题判断题选择题删除修改添加图6 试题管理的功能3.2.3试卷管理子模块试卷管理模块:试卷管理的功能主要是组卷,对已经有的试卷可以进行状态设置.基本功能图如图7所示:试卷管理停用删除创建使用题目管理修改修改分值删除添加图7 试卷管理的功能3.2.4其他管理子模块成绩管理主要用于用户查看成绩和已考考卷的信息.如图8所示:成绩管理查看试卷查询成绩图8 成绩管理的功能个人信息管理主要用于用户修改个人的基本信息.如图9所示:个人信息管理个人信息修改图9 个人信息管理的功能3.3 教师管理功能模块教师主要有阅卷管理,查看学生考卷,修改个人信息这三项功能.教师总体功能图如图10所示:教师个人信息管理成绩查询阅卷管理图10 教师管理的功能图3.3.1阅卷管理子模块阅卷管理模块:系统自动批阅选择题和判断题,填空题和问答题由老师评分.具体功能图如图11所示:阅卷管理查看试卷进行评分图11 改卷管理的功能图3.4 学生管理功能模块学生的功能主要有参加考试,查询成绩,个人信息管理这三项主要功能.学生总体功能图如图12所示:学生个人信息管理查看试卷进行评分图12 学生管理的功能图4系统详细设计与实现4.1设计思想概述在线考试系统充分利用了Brower/Server结构的特点,实现了将考试系统移植到Internet的功能,该系统的优势在于极大的简化了老师出题的工作和学生考试的试题,做到了出题的多样性5.由于本考试系统对数据收集的实时性要求并不高,并且数据的流通量也不是很多,因此采用Browser/Server结构来进行设计是可行的.图13是本系统的网络应用原理示意图.考生浏览器服务器Internet统后台数据库图13 考试系统原理示意图4.2数据库设计4.2.1概念模型设计概念模型设计的典型方法是用E-R图方法,本在线考试系统E-R图如下:学生教师试题管理员管理管理管理阅卷图14整体关系E-R图nNn11114.2.2数据库逻辑模型课程信息表(课程编号,课程名称)用户信息表:(用户编号,姓名,用户名,管理员号,密码,添加时间,用户类型,状态)题库信息表(试题编号,题目,A,B,C,D,答案,创建时间,题型,知识点,正确,错误,课程编号,用户编号)试卷信息表(试卷编号,创建时间,试卷名,考试时间,使用状态,总分,课程编号,用户编号,学院编号)考试阅卷信息表(考试阅卷编号,成绩,成绩2,测试时间,考试编号,阅卷状态,试卷编号,用户编号)考试试题记录表(试题记录编号,测试时间,得分,考试编号,我的答案,题目使用编号,试题编号,用户编号)考试题目使用信息表(题目使用编号,分值,试卷编号,试题编号,用户编号)4.2.3数据库表结构表1 用户信息表:字段类型长度说明idbigint20主键 自动增长usernamevarchar255用户名passwordvarchar255用户密码truenamevarchar255真实姓名createtimedatetime/添加时间roleint11角色userlockInt11状态表2 课程信息表:字段类型长度说明Idbigint20主键 自动增长kechengmingvarchar255课程名Kechenglockint11状态表3 试卷信息表:字段类型长度说明idbigint20主键 自动增长createtimedatetime/添加时间juanmingvarchar255试卷名kaoshishijianint11考试时间shifoushiyongvarchar255使用状态zongfendouble/总分kechengidbigint20课程编号shijuanlockInt11状态useridbigint20外键 用户编号表4 考试阅卷信息表:字段类型长度说明idbigint20主键 自动增长createtimedatetime/添加时间 chengjivarchar255成绩 chengji2Double/成绩2 kaoshibianhaovarchar255考试编号zhuangtaivarchar255阅卷状态shijuanidbigint20外键 试卷编号 useridbigint20外键 用户编号表5 考试试题记录表:字段类型长度说明idbigint20主键 自动增长createtimedatetime/测试时间 defenDouble/得分 kaoshibianhaovarchar255考试编号wodedaanvarchar255我的答案 shijuanitemidbigint20题目使用编号 shitiidbigint20外键 试题编号useridbigint20外键 用户编号dianpingvarchar255点评shifougeifenvarchar255是否给分表6 考试题目使用信息表:字段类型长度说明idbigint20主键 自动增长 fenzhiDouble/分值 shitiidbigint20外键 试题编号 shijuanidbigint20外键 试卷编号 useridbigint20外键 用户编号 shijuanitemlockint11状态表7 考试题目信息表:字段类型长度说明idbigint20主键 自动增长avarchar255A bvarchar255Bcvarchar255Cdvarchar255Dcreatetimedatetime/创建时间shitilockint11状态daanvarchar255答案 leixing varchar255题型 zhishidianvarchar255知识点 wentivarchar255题目 kechengidbigint20外键 课程编号 useridbigint20外键 用户编号4.3部分功能模块的设计与实现4.3.1用户信息管理子模块用户信息管理子模块:首先要登录系统身份的不同可以登录相应的界面.从数据库中判断用户名是否合法,用户密码,用户类型是否正确,若都正确,用户是管理员则进入管理员端,用户是教师则进入教师端,用户是学生则进入学生端,如果用户名或密码错误则提示错误,要求重新登录6.用户管理模块需要登录页面,管理员首页,用户管理界面.如下图所示:图15 登录页面图16 管理员首页4.3.2题库管理子模块功能设计题库管理子模块:管理员登陆该系统以后可以对在线考试系统的试题题库进行管理.如下图所示:图17 科目信息4.3.3试卷管理子模块功能设计试卷管理子模块:管理员管理可以对试卷进行管理,主要是有试卷的创建,修改,删除,还可以对创建的试卷进行状态设置.如下图所示:图18 试卷信息界面4.2.4阅卷管理子模块阅卷管理子模块:该功能是教师的主要功能,考生考完试,提交试卷后,相关信息储存于数据库中,一部分题目系统已经给出了相应的评分,教师进行阅卷管理,根据显示的所有学生的考试信息,选择相应的考生进行阅卷评分,并提交得分.如下图所示:图19 考生试卷信息界面4.2.5考试管理子模块考试管理子模块:学生登录成功,进入系统进行测试.选择自己要考的试卷名,系统将从试卷信息表中读取试卷信息,学生开始进行考试该模块是学生的主要功能.如下图20、图21所示:图20 选择科目界面图21 开始考试界面5系统测试5.1开发期测试Junit测试(模块测试)8是程序开发者编写的一小段代码,主要功能是用于检查被测代码的一个很具体的功能是否正确.将JUnit4单元测试包引入这个项目:在该项目上点右键,点buil path,再点add libraries7,如下图所示:图22 添加JUnit4测试环境然后新建一个test包,再建一个test类.右击test类,点Run As,再点JUnit Test,开始测试.如下图所示:图23 开始测试如果运行成功,会出现如下图所示:图24 测试结果5.2功能测试5.2.1测试策略测试范围验证数据精确度,数据类型,业务功能等相关方面的正确性测试目标核实所有功能均已正常实现,即验证学生,教师,管理员是否可以顺利使用需求列表里的功能达成特定目标,系统是否可以完成相应的后台操作.技 术采用黑盒测试方法工具与方法手工测试开始标准开发阶段对应的功能完成并且测试用例设计完成完成标准95%测试用例通过并且最高级缺陷全部解决测试重点与优先级用户登录,试题库管理,阅卷管理等功能需考虑的特殊事项无图25 测试策略5.2.2测试用例测试登录,如下图26所示:用例ID号MicroMOe-TC-login-01用例名称用户登录测试方法MANUAL测试目的验证登录用户名和密码,并进入相应权限的主页面前提条件登录功能已实现特殊要求无测试过程测试步骤与数据输入描述结果序号测试操作描述输入数据1进入在线考试系统的首页无系统登录首页2输入用户名,密码信息输入的用户名和密码不正确提示:用户名和密码不正确,请重新输入!只输入用户名提示:请输入密码!输入正确的学生用户名和密码系统进入学生首页输入正确的教师用户名和密码系统进入教师首页输入正确的管理员用户名和密码系统进入管理员首页图26 登录测试试题库管理测试,如下图所示:用例ID号MicroMOe-TC-shiti-02用例名称试题库管理测试方法MANUAL测试目的管理员能对试题进行相应的管理操作前提条件试题管理功能已实现特殊要求无测试过程测试步骤与数据输入描述结果序号测试操作描述输入数据1进入在线考试系统的管理员首页管理员账号和密码管理员首页2点击试题库管理无显示科目名称3点击英语后面的试题库管理无显示英语试题4什么都不选择,点删除无提示:请选择信息!5选择一个选择题,点修改选择题无提示:请输入信息!加红点的,都输入信息操作成功!图27 试题库管理测试阅卷管理测试,如下图所示:用例ID号MicroMOe-TC-kaoshilu-03用例名称阅卷测试方法MANUAL测试目的教师能查看考生考卷,并相应的给予评分前提条件已经有考生考过试和阅卷功能已实现特殊要求无测试过程测试步骤与数据输入描述结果序号测试操作描述输入数据1进入在线考试系统的教师首页教师账号和密码教师首页2点击阅卷管理无显示考生考试信息3点击小王后面的阅卷无显示小王的答卷信息4什么都不选择,点评分无提示:请选择信息!5选择一个试题题,点评分无提示:请输入信息!输入得分,点评不输入提示:必填字段!输入得分和点评操作成功!图28 阅卷管理测试5.2.3测试结果通过对部分系统各功能(如:登录)的测试,得出以下结论:此系统能够满足考试阅卷的基本需要,符合当初设计的要求.测试用例有一定的限制性,因为测试环境和实际运行的环境也存在着差异,所以并不能完全地,准确地测试出系统存在的所有问题,还需要在后期的使用和维护过程中,对系统暴露出来的问题进行及时的纠正和更新,确保系统能够正常的运行.6结论 通过此次设计网上考试系统,使我接触到许多基于java语言的WEB网络开发方面的知识,包括HTML语言,CSS级联样式表,用户端开发语言JavaScript,MVC分层体系结构,支持MVC架构的Struts2框架,开源服务器Tomcat以及,MySQL数据库,服务器端开发语言JSP等,这些语言(或技术)扩展了我的知识面,也使我在制作的过程中对它们的特点,应用方向等有了基本的了解.通过本次亲自动手设计系统,我更加深刻的了解系统开发的全过程,从中我熟练掌握了B/S结构Web应用软件设计的思想及其开发的全过程.首先要进行系统的需求分析,分析系统要达到什么功能,系统要划分为几个模块来设计,系统的具体功能应当如何去实现;分析完之后,考虑其涉及到的计算机专业知识.毕业设计开始阶段,由于我们没有软件架构的设计经验,所以在项目的业务流程和软件的开发规范上犯了很的错误.遇到的问题:1.JSP中文乱码问题的解决对于JSP中文乱码问题的处理,常用的方法有两种:一种方法是在JSP页面上设置页面的contentType属性.例如:另一种方法是输出中文信息时使用ISO 8859-1编码.2.Java.lang.NullPointerException异常一般是对一个为NULL值的变量进行操作引起的.为了避免这种异常,最好在对变量操作之前检查看它是否为NULL值.3SQL语句换行书写时未加适当的空格而导致的错误.我们先看一段代码,String test=aaa;String sql=select * from test+ where test1=+a+ and test2=bbb;上面所示的代码在执行时将转换成这样的SQL语句:Select *from testwhere test1=aaa and test2=bbb从输出的SQL语句可以看出test和where之间,以及aaa和and之间都缺空格,这样是不能从数据库中取出数据的.正确的写法如下:String test=aaa;String sql=select * from test+ where test1=+a+ and test2=bbb;参考文献 1张孝祥,张红梅编著.JavaScript 网页开发体验式学习教程M.北京:清华大学出版社,2004:66. 2张桂元,贾燕枫.Struts开发入门与项目实践M.北京:人民邮电出版社,2005:99-110. 3林信良.Spring2.0技术手册M.北京:电子工业出版社,2007:5-9. 4刘腾红,孙细明.信息系统分析与设计M.北京:科学出版社,2003:66-74. 5王保罗.Java面向对象程序设计M.北京:清华大学出版社,2003:22-25. 6张桂珠,刘丽,陈爱国.Java面向对象程序设计(第2版)M.北京:北京邮电大学出版社,2007:43-57. 7毕广吉.Java程序设计实例教程M.北京:冶金工业出版社,2007:27-38. 8Bruce Eckel.Thinking in Java 4 M.American:Prentice Hall PTR,2014:32-33. 附录部分实现代码验证登录的部分代码如下:public String login() throws IOException HttpServletRequest request = ServletActionContext.getRequest();String username = request.getParameter(username);String password = request.getParameter(password);User user = userDao.selectBean( where username = + username+ and password= + password + and userlock=0);if (user != null) HttpSession session = request.getSession();session.setAttribute(user, user);this.setUrl(index);return redirect; else HttpServletResponse response = ServletActionContext.getResponse();response.setCharacterEncoding(gbk);response.getWriter().print(alert(用户名或者密码错误);window.location.href=index;);return null;修改试题的部分代码:public String shitiupdate() HttpServletRequest request = ServletActionContext.getRequest();Shiti bean = shitiDao.selectBean( where id= + request.getParameter(id);request.setAttribute(bean, bean);request.setAttribute(kemu, kechengDao.selectBean( where kechenglock=0 and id= +request.getParameter(kechengid);this.setUrl(/WEB-INF/manage/shiti/shitiupdate.jsp);return SUCCESS;管理员密码修改的部分代码,如下:public String userupdate() HttpServletRequest request = ServletActionContext.getRequest();User bean = userDao.selectBean( where id= + request.getParameter(id);request.setAttribute(bean, bean);this.setUrl(/WEB-INF/manage/user/userupdate.jsp);return SUCCESS;创建试卷的代码,如下:public String shijuanadd() HttpServletRequest request = ServletActionContext.getRequest();request.setAttribute(list, kechengDao.selectBeanList(0, 9999, where kechenglock=0 );this.setUrl(/WEB-INF/manage/shijuan/shijuanadd.jsp);return SUCCESS;提交阅卷结果的部分代码如下:public void kaoshijiluupdate2() throws IOException HttpServletRequest request = ServletActionContext.getRequest();String kaishiid = request.getParameter(kaoshiid);Kaoshi kaoshi = kaoshiDao.selectBean( where id= +kaishiid);String defen = request.getParameter(defen);String dianping = request.getParameter(dianping);Kaoshijil
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《缝沙包》(教案)-2023-2024学年四年级下册劳动人民版
- 23《月光曲》( 教学设计)-2024-2025学年统编版语文六年级上册
- 人教版七年级音乐下册(简谱)第1单元《春游》说课稿
- 2025年中考物理试题分类汇编(全国)科普阅读文、开放性试题(第1期)解析版
- Listening and Talking教学设计-2025-2026学年高中英语人教版2019必修第三册-人教版2019
- 2025年中考生物试题分类汇编:科学与探究(第2期)解析版
- 2025年四级中式烹调师考试试卷【附答案】
- 2025-2026年北京高考英语综合模拟强化练习2【含详细答案】
- 小班上册语文题目及答案
- 常德初一期中考试试卷及答案
- 医疗器械网络销售质量管理规范宣贯培训课件2025年
- DB33∕T 1152-2018 建筑工程建筑面积计算和竣工综合测量技术规程
- 医疗废物处置规范
- 广州市增城区卫生健康局下属事业单位招聘工作人员真题2024
- 高一数学开学第一课(高教版2023修订版)-【开学第一课】2025年春季中职开学指南之爱上数学课
- 人教PEP版(2024)三年级下册英语Unit 6 Numbers in life单元整体教学设计(共6课时)
- 未佩戴安全帽事故案例
- 2025年多级离心消防泵项目节能评估报告(节能专)
- 电力安全工作规程习题集(线路部分)
- 高危妊娠识别与管理课件
- 爱玛电动车买卖合同协议书范文
评论
0/150
提交评论