毕业设计(论文)-基于Javaweb技术的驾校在线考试系统的设计与实现.doc_第1页
毕业设计(论文)-基于Javaweb技术的驾校在线考试系统的设计与实现.doc_第2页
毕业设计(论文)-基于Javaweb技术的驾校在线考试系统的设计与实现.doc_第3页
毕业设计(论文)-基于Javaweb技术的驾校在线考试系统的设计与实现.doc_第4页
毕业设计(论文)-基于Javaweb技术的驾校在线考试系统的设计与实现.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业设计题目基于Javaweb技术的驾校 在线考试系统的设计与实现 姓名 学号 院 系 数 学 系 专业 信息与计算科学指导教师 2016 年 12月 教务处制本科生毕业设计声明本人郑重声明:所呈交的毕业设计,是本人在指导教师指导下,进行研究工作所取得的成果.除文中已经注明引用的内容外,本设计的研究成果不包含任何他人创作的、已公开发表或没有公开发表的作品内容.对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明.本设计创作声明的法律责任由本人承担. 作者签名: 年 月 日 本人声明:该毕业设计是本人指导学生完成的研究成果,已经审阅过毕业设计的全部内容,保证题目、关键词、摘要部分中英文内容的一致性和准确性,并通过一定检测手段保证毕业设计未发现违背学术道德诚信的不端行为. 指导教师签名: 年 月 日 内容摘要:本设计是以Myeclipse为主要开发工具,采用JSP的技术架构前台页面,用MySql 数据库为后台做支持,开发了一个驾校考试系统,本系统具有操作简洁,界面精美,灵活性好,系统安全稳定等特点,而且还大大降低了人力、物力的投入,避免了人为因素的干扰,便于实现考试的公平,公正. 关键词: JSP JavaWeb MySql数据库 Abstract:This system is based on Myeclipse, uses JSP technology to set up front page, with MySql database support for the background, design a driving test system. This system has simple operation, elegant interface, good flexibility and the characteristics of system security and stability, greatly reduce the manpower, material resources, can avoid the interference of man-made factors, to realize the test fairness, justice. Keywords:JSP JavaWeb MySql database全套设计加扣3012250582 目 录1引言12开发环境语言相关技术介绍12.1软件工程介绍12.2开发环境及工具12.3 MySql数据库12.4体系结构23总体设计与需求技术分析33.1系统用例43.2功能需求描述53.3数据流程图54驾校考试系统的详细设计54.1设计目标64.2系统测试与评价分析65系统测试66结论6参考文献 7附录 10致谢 131 引言 当今社会驾驶技能已成为人们工作生活的基本技能.群众反映学车难,约考难,希望学车更加经济自主,考证更加规范公正,有的还希望进一步简化手续,提高效率,还有的呼吁大力提升我国驾驶人交通安全意识和法治文明意识.因此,开发这样的驾校考试系统成为了很有必要的事情.本设计所介绍的便是一个驾校考试系统的设计开发过程,以方便实现驾校对考试信息管理的系统化,规范化以及自动化,从而达到提高驾校考试管理效率的目的.本设计是以Myeclipse为主要开发工具,采用JSP的技术架构前台页面,用MySql数据库为后台做支持,设计了一个驾校考试系统,本系统具有操作简洁,界面精美,灵活性好,系统安全稳定等特点,而且还大大降低了人力、物力的投入,避免了了人为因素的干扰,便于实现考试的公平,公正,所以已经得到广泛的应用.2 开发环境、语言和相关技术介绍2.1 软件工程介绍 软件工程是用科学知识和技术原理来定义、开发、维护软件的一门学科.它涉及计算机科学、工程科学、管理科学、数学等领域,计算机科学着重于原理和理论,而软件工程着重于如何建造一个软件系统.软件工程在软件开发过程中占有不可动摇的重要地位. 小区物业管理系统虽然只是一个比较小的项目,但是为了做的更规范,也尽量按照软件工程的指导来做,事实上,不管一个多小的工程,都是离不开软件工程的指导思想的.2.2 开发环境及工具 JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准.JSP技术有点类似ASP技术,它是在传统的网页HTML文件)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件JSP技术的强势: (1)一次编写,到处运行.在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改. (2)系统的多平台支持.基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署, 在任意环境中扩展.相比ASP/PHP的局限性是显而易见的. (3)强大的可伸缩性.从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力1.2.3 MySql数据库 因为本系统是一个局域网的应用,对数据库需求不高,所以只需要简单的MySql数据库就能满足,另外MySql使用方便快捷,大大的节约了开发时间,还拓展了应用空间,能更好的应用的项目上.例如,XML数据库与Web Service的后台支持,.NET继承扩大的开发空间,Service Broker等,所以使开发的应用与后台能完美配合.2.4 体系结构2.4.1 系统体系机构的一般阐述MIS系统平台结构模式大体上分为4种:主机终端模式、文件服务器模式、客户机/服务器模式(Clint/Server,简称C/S)、web浏览器/服务器模式(Browser/Server,简称B/S).现代企业级平台结构模式应主要考虑C/S模式和B/S模式 C/S模式与B/S模式的比较分析C/S系统又被称作分布式计算系统,它的含义是程序的数据处理并不像通常在基于小型机或基于主机的计算机系统(终端方式)中那样在单个的计算机上发生,而是把程序的不同部分在多台计算机上同时运行.例如: (1)具有成熟的设计开发方法和工具.经过多年的研究和积累,基于Client/Server模式的系统设计开发方法已被用户所熟悉和掌握. (2)交互性强,界面友好.各个Client机上运行的应用程序是针对待定的用户和任务设计,同时具有在线帮助和出错提示等辅助功能.这些优势是Browse/Server模式所不具备的. (3)数据通信量小,安全性高.Client/Server模式中前后台传递的仅仅是查询请求SQL语言或查询结果,而不象Browse/Server模式中在前台的Browse和后台Server之间传递程序或主页模块:Client/Server模式一般采用基于局域网点对点式的结构和安全性较好的网络协议,而Browse/Server是一种开放式的结构,面向众多的用户,其防火墙技术并不能完全屏蔽网络黑客和内部人员对系统的恶意侵袭.这样实现了客户端不直接和数据库服务器发生关系,保证了数据安全性.对Browse/Server模式而言,其主要特点为:(1)开放性好,Intranet/Intenet完全兼容.(2)扩展性好,根据发展需要,可对系统随时进行扩展,降低了系统的开发和维护的开销.(3)B/S模式的优势首先它简化了客户端.它无需象C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件.这样不但可以节省客户机的硬盘空间与内存,而且使安装过程更加简便、网络结构更加灵活.然后B/S特别适用于网上信息发布,使得传统的MIS的功能有所扩展.这是C/S所无法实现的.而这种新增的网上信息发布功能恰是现代企业所需的.这使得企业的大部分书面文件可以被电子文件取代,从而提高了企业的工作效率,使企业行政手续简化,节省人力物力3.最后B/S相对于C/S的先进性,B/S逐渐成为一种流行的MIS系统平台.各软件公司纷纷推出自己的Internet方案,基于Web的财务系统、基于Web的ERP.一些企业已经领先一步开始使用它,并且收到了一定的成效.2.4.4开发方法整体选择 要根据现实情况和用户的实际需要,然后采用在Windows xp下使用JSP+SQL开发,采用B/S结构,使用JDBC连接数据库.这样的好处是:(1)使用JSP+SQL灵活方便,可扩充性、可移植性较好.(2)JDBC与SQL都是微软开发,兼容性好,而且存取效率高,较成熟,是大部分数据库应用系统都采的方式.(3)采用 B/S结构是能充分发挥客户端的处理能力,大部分工作可以在客户端处理后再上传给服务器.对应的优点就是客户端响应速度快.JDBC是Microsoft主要数据存储技术,JDBC主要让应用程序或WEB应用程序存取各种不同的数据源.JDBC封装了OLE-DB复杂的接口,以最简单的COM接口存储数据,大大方便了程序员的数据存取的工作4.3 系统分析与总体设计 3.1 系统用例 驾校考试系统分为系统管理员和用户两类用户角色.整个系统的用例功能包括系统管理员部分的主要功能包括修改登录密码、用户信息管理、试题信息管理、成绩信息管理、试题类别信息以及修改信息等,用户部分的功能包括在线注册登录、在线考试以及在线查询成绩等这几个功能模块,如图1、2所示为本系统的用例图. 管理员成绩修改修改信息用户管理试卷管理成绩管理图1系统管理员用例图 用户 资料管理成绩查询在线考试图2用户用例图3.2 功能需求描述 本系统定位驾校考试和管理员对试题、试卷的维护工作,具体来说系统的总体功能模块包括以下几个面: (1)用户注册与登录 用户可在线注册并登录该系统. (2)驾校考试 用户注册并登录后即可进行驾校考试,可以选择考试的试卷,考试完毕后可查看自己的成绩排名. (3)用户信息维护 管理员可对所有注册的用户的信息等一系列操作进行管理和删除. (4)试题管理 管理员可以对考试试题进行修改,增添和删除. (5)用户成绩管理 管理员可以查看和删除用户的考试结果信息. (6)成绩查询 考生使用准考证号登录查询个人考试分数. (7)试卷管理 试题管理管理员可以对考试试题进行修改,增添和删除. (8)退出系统 退出当前模块返回上级菜单.3.3数据流程图绘制数据流程图的基本要求:系统的顶层可以用来表示整个系统的功能结构.较高抽象级别上的复杂转换是可以精化为一系列的相互关联的数据流和子转换.只要数据分析活动的逐渐深入.数据流程图(DFD)数据流图描述系统的逻辑模型,完全不需考虑如何具体地实现,只需考虑系统必须完成的基本逻辑功能.经过分析详细分析后,驾校考试系统的数据流程图可确定如下图3所示:确认提交 提交请求确认信息提交试卷 信息分离提交指令 已答试卷 答题信息保存答案在线答题 答题控制答案时间修改信息 显示提示框 修改 提示信息图3数据流程图4 驾校考试系统的详细设计 建立一个基于Web(网站)的驾校考试系统,目标是让任何操作员都可以在任何电脑上打开系统对题库进行管理,抛弃了传统的Windows窗体空间上管理的缺陷.用户界面精美、操作简单,每一步的操作都是经过细心的设计,将繁杂的统计运算过程隐蔽在简单的操作之下,系统的设计能大大地减少使用前的培训、实施和使用中的维护时间.经过合理而超前的网络设计及软、硬件的优化选择,百分百保证系统的可靠性与容错性.系统以客户要求为目标,以方便客户为原则,处处为使用者考虑. 4.2数据库表设计4.2.1 数据库E-R图设计E-R方法:是“实体-联系方法”(Entity-Relationship Approach)的简称.它是描述现实世界概念结构模型的有效方法.构成E-R图的基本要素是实体型、属性和联系,其表示方法为:实体型(Entity):具有相同属性的实体具有相同的特征和性质,用实体名及其属性名集合来抽象和刻画同类实体;在E-R图中用矩形表示,矩形框内写明实体名;比如用户张三丰、用户李寻欢都是实体.如果是弱实体的话,在矩形外面再套实线矩形5. 作E-R图的步骤:(1)确定所有的实体集合(2)选择实体集应包含的属性(3)确定实体集之间的联系 本系统主要数据库表实体图,如图4:User IDClassesuserName Userlnfo userPwd CreateTime UserMail图4用户表实体 (1)管理员实体 管理员信息包括管理员编号、管理员登录名称、管理员登陆密码属性.管理员不能在网站上注册,只能直接在数据库里直接添加,其E-R图如图5所示. 密码 编号管理员名称 管理员图5 管理员的E-R图 (2)用户实体 用户信息包括自动生成的用户编号,登录账号,登录密码,真实信息,所在城市,联系地址,证件号码,等信息.用户的E-R如图6所示.登录密码登录账号联系地址真实信息 用户证件号码所在城市图6 用户的E-R图5 系统测试与评价分析5.1 系统测试 黑盒测试也称功能测试,他是通过测试来检测每一个功能是否都正常使用.在测试地程序把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部结构特性的情况下,在程序接口进行测试,它是指检查程序功能能否按照需求规格说明书的规定正常使用,程序是否能适当地介入输入数据而产生正确的输出信息.黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试. 驾校考试系统采用黑盒法进行测试.黑盒法又称功能测试或数据驱动测试,他完全不管程序内部的结构和处理,把程序看成一个黑盒子,只按程序需求说明书规定的功能和性能测试程序能否正常使用,是否能接受输入数据,产生正确的输出信息. 驾校考试是这个系统的核心模块,所以必须选择该模块来测试,首先要求用一个用户的账号登录,登录系统后选择任意一个试卷进行答题,答完后按提交,这时系统会把数据交给后台然后处理结果,我们从处理结果的信息中可以看出,本次提交是否成功. 系统已成功处理了用户提交的请求了,由此看来本模块是没有问题的.5.2 测试环境与测试条件 测试环境是在Windows7系统下,WEB服务器采用Tomcat6.0版本,开发语言采用JSP,JAVA语言,数据库应用的是MYSQL,开发工具采用MyEclipse8.6,客户端浏览器要求在IE6.0及以上版本. 测试条件是程序环境配置好的,正常在运行MyEclipse和MYSQL数据库正常运行的条件下测试的.5.3测试结果表1 用户参见考试测试用例及结果原形描述用户参加考试用例目的检测考试功能完善性前提条件用户已登录参与人员用户用户名输入操作步骤期望结果实测结果状态Aaaaaa密码123 点击参加在线考试正常答题结束提交试卷.成功提交成功表2 管理员测试用例及结果原形描述管理员增添用例目的检测考试功能完善性前提条件管理员已登录参与人员管理员用户名输入操作步骤期望结果实测结果状态Admin密码123 点击管理员管理正常修改管理员信息成功修改成功6 结论 此次毕业设计基本完成了一个基于JavaWeb的考试系统.由于时间仓促,一些技术所限,该系统才在一些不足之处,有待进一步改进和完善.例如系统只完成了用户的注册,而没有个身份证件进行连接.系统简答题判分是通过人工阅卷的,而没有完全实现系统的灵活性,智能型.系统只实现试卷的自动组卷,而没有实现系统自动组卷和人工组卷相结合的多功能组卷方式.希望以后继续完善这个系统使这个系统的实用性更强.参考文献 1Baron,王小东.高性能MySqlM.北京:电子工业出版社,2010:6-16. 2马建红.JSP应用与开发技术M.北京:清华大学出版社,2014:6-19.3张孝祥.深入Java Web开发内幕核心基础M.北京:电子工业出版社,2006:87-113. 4王春玲.数据库原理及应用教程M.上海:电子工业出版社,2013:12-22. 5郝玉龙.J2EE编程M.北京:清华大学出版社,2010:101-125. 附录各模块功能实现 登录模块实现如果用户要使用为注册用户提供的功能,那么在使用之前必须登录.用户只需要输入用户名和密码就可以了.若用户输入的以上两项与数据库中保存的相符,则表明用户登录成功,可以开放全部前台子系统;如果不符,则登录失败.页面效果截图4-1 图4-1 用户登录主要代码:public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm)form;ILogService ser = BOFactory.getLogService();Loginlog log = new Loginlog();log.setIp(request.getRemoteAddr();log.setLogtime(new Date();log.setUsername(loginForm.getUsername();HttpSession session = request.getSession();ser.studentlogin(loginForm.getUsername(),loginForm.getPassword(); request.setAttribute(message,登陆失败);forward = mapping.findForward(index);else log.setSuccess(1);forward = mapping.findForward(teacher);else request.setAttribute(message,登陆失败);forward = mapping.findForward(index);ser.addlog(log); catch (RuntimeException e) e.printStackTrace();request.setAttribute(message,登陆失败);forward = mapping.findForward(index);return forward; 用户登陆后界面 此模块是添加新的用户,填写用户和管理员的基本信息,包括姓名,性别,住址,联系电话等,设定个人的原始密码,并添加到用户的用户表中.用户登陆后,进入界面如下图4-3:图 4-2 * MyEclipse Struts * Creation date: * * XDoclet definition: * struts.action validate=true */public class StudentAction extends BaseDispatchAction public ActionForward show(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) QueryStudentForm qsf = (QueryStudentForm)form;String name = qsf.getQname();String spageno = request.getParameter(pageno);IStudentService ser = BOFactory.getStudentService();int num =ser.findStudentnumByName(name);PageUtil pu = new PageUtil(spageno,num,Constant.PAGESIZE); List list = ser.findStudentByName(name,pu.getPageno(),pu.getPagesize();request.setAttribute(studentlist,list);return mapping.findForward(show);在线测试模块再次模块中包含查询成绩,考试,自动判卷模块.进入在线考试系统.在线测试时有时间限定的,学生要先登入自己的用户,用户可以查询成绩,在进行在线开始,一旦进入在线考试,系统就自动开始计时.时间到会自动交卷,然后进入判卷系统.考试过程中用户可以不按题目顺序答题.图4-3public ActionForward add(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) this.saveToken(request);return mapping.findForward(add);public ActionForward adddo(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) StudentForm studentForm = (StudentForm)form;ActionForward forward = null;if(this.isTokenValid(request) IStudentService ser = BOFactory.getStudentService();添加和删除用户名如下图4-4:如果用户要使用为注册用户提供的功能,那么在使用之前必须登录.用户只需要输入用户名和密码就可以了.若用户输入的以上两项与数据库中保存的相符,则表明用户登录成功,可以开放全部前台子系统;如果不符,则登录失败.页面效果截图4-4: 图4-4其主要代码如下:if(ser.checkStudentNameExists(studentForm.getUsername(),null) request.setAttribute(message,用户名已经存在);forward = mapping.findForward(add);else Student s = new Student();s.setAddress(studentForm.getAddress();s.setEmail(studentForm.getEmail();s.setName(studentForm.getName();s.setPassword(studentForm.getNewpassword();s.setSex(studentForm.getSex();s.setUsername(studentForm.getUsername();ser.addStudent(s);request.setAttribute(message,增加成功);forward = mapping.findForward(show);this.resetToken(request); catch (RuntimeException e) e.printStackTrace();request.setAttribute(message,注册失败);forward = mapping.findForward(add);试卷管理模块截图4-5: 试卷管理管理包括判断题管理,填空题管理,选择题管理.管理员可以通过题库管理对各种类型的尸体进行添加,删除,修改以及查询.试卷管理功能模块图,由于各种类型实试题的管理功能均类似,这里仅以判断题管理威力进行介绍.添加判断题,删除判断题,修改判断题.图4-5主要代码如下:HttpSession session = request.getSession();Student s = (Student)session.getAttribute(student);boolean b = ser.findcanExam(s.getStudentid(),new Long(subjectid);if(!b) request.setAttribute(message,你不能参加这门课考试!);return mapping.findForward(examlist);else Subject sub = qser.findSubject(new Long(subjectid);session.setAttribute(subject,sub);return mapping.findForward(exampre);public ActionForward start(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) af = mapping.findForward(examlist);else List list = ser.findinitExam(subject.getSubjectid();/把答案和题目列表放到session中session.setAttribute(examinglist,list);session.setAttribute(starttime,new Date();成绩管理模块截图4-6: 用户成绩管理子模块通过对用户成绩的全面分析,总结用户对所学知识点的掌控程度和知识点被用户理解并掌控的程度,本模块工分为浏览用户成绩,查询用户成绩,重考与否查询三个功能.图4-6主要代码如下: public ActionForward go(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) ExamForm ef = (ExamForm)form;IQuestionService qser = BOFactory.getQuestionService();HttpSession session = request.getSession();/得到session中的答案和题目列表List list = (List)session.getAttribute(examinglist);if(list=null) request.setAttribute(message,你没有在考试);return mapping.findForward(examlist);/得到刚才做得题目Examrecord old = (Examrecord)list.get(ef.getOldid();/得到提交过来的答案String answers = ef.getAnswers();String ans = ;if(answers!=null) for (int i=0;ianswers.length;i+) ans += answersi; 驾校考试模块实现驾校考试模块是本系统的核心模块,也是本系统最难以实现的模块,这里包含着复杂的业务逻辑处理,例如在前台的答案怎么提交到后台,数据库应该怎么接受程序添加的数据并且数据库获取到前台用户提交的数据后应该怎样处理,应该怎么自动计算用户的成绩;这些都是需要仔细考虑的.本模块涉及到的代码比较多,业务逻辑处理也比较麻烦,以下给出最

温馨提示

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

评论

0/150

提交评论