1、毕业设计:基于javaweb的络考试系统的设计与实现章录前Hi,同学们好呀,被评为全最细的丹成学长()o,今天带家复盘个学长帮往届同学做的个毕业作品基于java web的络考试系统的设计与实现需要毕设帮助的同学,看过来毕设帮助,开题指导,技术解答7468760411 课题描述科技在进步,们活和作的式正发着改变,不仅体现在们的住,也体现在与时俱进的考试形式上。以前的考试需要组织者投量的时间和精,需要对考试的试题进筛选,对后期的考卷进批阅,这么多的步骤影响了整个考试执的效率。因此,本提出了种络考试系统,于解决上述的些问题。学长设计的络考试系统主要是利浏览器作为界,利B/S模式,即户可利浏览器直接访
2、问本站点。主要到的技术是采JavaWeb技术和MySql数据库等设计出了各种功能。该系统主要有户管理、功能管理、权限管理、学络考试、试题管理、错题管理、动组卷等功能。本篇博客提供了些该系统的部分代码跟截图帮助介绍该系统,对系统的总体设计、详细设计以及测试都给出了些介绍,还对运截图以及代码作出了相应的解释。该络考试系统基本上可以满些简单的考试,运良好,基本可以满设计要求。2 2 相关技术JAVAJ2EEMySQLMyEclipseJavaScriptJQueryCSS3JSPTomcat服务器3 3 系统需求分析3.13.1 功能需求分析络考试系统主要于实现校在线考试,基本功能包括:动组卷、试卷
3、发布、试卷批阅、试卷成绩统计等。学长设计的系统结构如下:3.1.13.1.1 学端:登录模块:登录功能;络考试模块:可参加考试,并查看考试结果,提交试卷后师允许的情况下查看错题;3.1.23.1.2 超级管理员端:登录模块:实现管理员登录功能;户管理模块:实现户信息的增加、修改、查看功能;权限管理模块:实现的增加、修改、查看功能;试卷管理模块:实现试卷信息的增加、修改、查看功能;试题管理模块:实现试题信息的增加、修改、查看功能;3.1.33.1.3 试题管理员端(师):试卷管理模块:实现试卷信息的增加、修改、查看功能;试题管理模块:实现试题信息的增加、修改、查看功能;4 4 系统设计框架这个系
4、统所开发的络考试系统主要分成了三个模块的主要功能,系统功能、考试功能和学功能,每个功能都包含了个功能,功能主要包括:对于系统功能的管理、的管理、户的管理、对于试题管理、对于的试卷管理、学答题、总结出错题库与得分。系统的概要功能图如下图所:4.14.1 系统基本功能系统功能的划分式可以分成很多种类,前是按照功能模块进划分,将系统分成三个模块,本章节依据络考试系统的系统不同,可以分成户端和管理员端。户端包括:登录功能、学答题、答题得分以及考完试之后的错题解析。管理员端包括:登录功能、系统功能管理、户管理、管理、题管理、试卷管理。下本节主要对各个基本的功能进个简介。(此处没有对试题管理员进详细介绍,
5、因为管理员的题管理跟试卷管理的功能就是他的功能)4.24.2 登录功能登录功能是个系统的重要组成部分,也是个系统重要的门户功能,登录功能主要实现了使者对系统的登录,在本所设计的体系中,登录主要分成了两种份:学户和管理员。两种份登陆,能细分系统的功能模块,实现更加便的操作和管理。4.34.3 系统答题系统答题模块是本系统的个重要功能,可以实现让户的答题操作。系统答题功能主要是学户登录以后操作的,学户在输正确的户名和密码以后能开始系统答题,系统答题的题均来数据库。4.44.4 答题得分答题得分功能实现了学户在答题结束以后对得分情况的查看,该功能就实现了登录系统的学户在完成的试卷以后,点击体提交就能
6、看到的得分,因此该功能是个展性质的功辅助能。4.54.5 错题解析错题解析功能是系统答题功能的个辅助或者说优化的功能,只有学户在登录系统完成答题以后在师允许的情况下才能进该功能的操作,学答题可能存在定的错误,对错误题的查看成为考试系统的功能。因此本所设计的错题解析功能,能让学迅速发现正确或者错误题,以及解析过程。这样便学和改进。学功能结构图,如下图所:4.64.6 系统功能管理系统功能管理主要实现了对系统的其他功能进管理,主要包括对新功能的添加和编辑,对现有功能的添加和修改,同时能对现有的功能进功能的编辑和修改,修改后的功能可以在系统中被查看。4.74.7 户管理户管理是个系统的重要功能之,对
7、户的管理可以实现对系统使者的了解和查看,能让使者更加便的使本系统,户的种类分为多种,本主要体现在学户和管理者两种户上,可以对户的信息进添加修改等。4.84.8 管理管理主要是针对户来设计的,不同的户拥有不同的权。换句话说就是操作的权限是不同的。学账号只能进答题等为,不能进后台的管理员操作。管理员账号也拥有不样的权利。这些权体现在对账号的操作,试卷和题的管理上,因此对权限的管理能很好的控制系统户的为,有利于系统更加稳定的运。4.94.9 题管理题管理主要是针对管理员的功能,该功能向系统中试卷所使的题库,在本系统中,管理员能通过对题的添加和修改对题进管理,可以查看现有的题,同时也能对新的题进添加,
8、为试卷的成提供更多题的选择。4.104.10 试卷管理试卷管理是本系统的核功能,主要实现的是对学户考试答题的试卷进管理,通过系统随机抽取的题动成试卷并且能将试卷存数据库,供学考试时进选择。管理员功能结构图,如下图所:5 5 系统代码设计5.15.1 学端在这个系统中使者主要是分为管理员和学,我在这先介绍学户系统的运情况。以下是学户从登陆到错题解析的整个运流程情况将在下进展。5.1.15.1.1 学户登录学户登陆,先到这个界。如下图所:在进登录界以后选择学登录,再输正确的户名和正确的密码,就可以登录。如下图所:户正确完成登录输以后,系统会根据户所输的信息,通过功能代码实现与数据库中存储数据的对,
9、从判别该登录户是否合法,如果不合法将提输正确的登录信息,输正确则登录系统,进系统的主界。5.1.25.1.2 主界学户正确登录系统之后会跳转到学户端的界,主界如图所:学户的主界主要包含了试卷列表和查看错题两个功能,试卷列表中罗列了所有考试的试卷,学可以根据师的要求选择对应的的试卷进考试,考试结束以后还可以进错题查看功能。5.1.35.1.3 系统答题学户登录系统以后选择试卷列表中的试卷进考试答题,答题界如图所:学要在定的时间内,完成试卷上的所有题,然后进提交,答题的进度和时间的限制可以系统会给出提,运界如图所:5.1.4答题得分学在规定的时间内完成答题,完成以后提交系统,提交系统,系统会根据题
10、库对得到考试成绩,成绩界如图所:计时器(到时动交卷)功能,交卷时判断试卷是否有未答题、计算得分等功能都在 paper.jsp中javascript来实现/交卷功能判断是否有未答题 function unAnswer()if(unanswer!=0)layer.open(title:警告,content:还有+unanswer+道题未做!,icon:2,end:function()postAnswer(););elsepostAnswer();计算得分 function getScore()/var spid=n$.post(url:basePath+user/studentPaper?cmd=
11、score&userid=+$userid+&spid=+now.getTime(),contentType:false,processData:false,success:function(res)console.log(res)layer.open(title:得分,content:res,icon:1,end:function()location.href=basePath+user/studentPaper?cmd=stupaper;),error:function(res)console.log(error);)倒计时功能/于10的数字前补0 function p(n)return
12、n10?0+n:n;/获取当前时间var now=new Date();/获取结束时间var endDate=new Date();/设置考试时间(单位分钟)endDate.setMinutes(now.getMinutes()+20)function getTime()var startDate=new Date();var countDown=(endDate.getTime()-startDate.getTime()/1000;var h=parseInt(countDown/(60*60)%24);var m=parseInt(countDown/60%60);var s=parseI
13、nt(countDown%60);$(.time).html(p(h)+时+p(m)+分+p(s)+秒);if(countDown=0)document.getElementById(time).innerHTML=考试结束;layer.open(layer.open(title:警告,content:考试时间到,试卷已经提交!,icon:5,end:function()unAnswer();)elsesetTimeout(getTime(),500);getTime()学得到成绩以后可以对的本次成绩进查看,也能对的其他考试试卷的成绩进查看,查看界如图所:5.1.55.1.5 错题解析学户能对
14、的答题试卷中错误的题进查看,并且能看到错题的解析,但是此功能只是个辅助优化功能,必须是在交卷之后师同意的情况下,才能查看。错题的解析界如图所学能根据数据库中给出的正常答案,对的错误选项进研究和学习,达到考试提升能的效果。5.25.2 管理员端管理员端的功能主要为了更好的管理系统,让学户能顺利考试,因此管理员功能在实现的时候需要考虑的因素和功能会较多,下对管理员如何在这个系统中操作进演。试卷管理员(师)的功能包括在其中。5.2.15.2.1 管理员登录管理员登录和学户登录使的是同个登录界,区别在于登录时选取的份是管理员份,登录界如图所:5.2.25.2.2 管理员主界管理员正确输信息后会跳转到管
15、理员的主界,主界如图所在管理员主界上,我们可以看到管理员端主要分成了两个部分的功能,第个是系统功能,第个是试卷管理功能,下将对这两个功能下的功能进逐介绍。5.2.35.2.3 系统功能管理系统功能管理实现了所有的功能和功能之间的联系,能让管理员更便得查看各个功能的实现情况。系统功能管理的界如图所:功能之间存在着主次关系,可以通过新建实现新的功能,也可以通过编辑来实现功能间的联系,新建功能如图所:5.2.4户管理实现户的管理解决的是学的使系统有关的问题,户管理界如图所:户管理可以对户进新增、修改和查询,户新增界如图所:5.2.5管理管理主要把各个之间的权限管理实现了,便最权限的对其他管理员的管理
16、。管理界如图所:5.2.6试卷管理试卷的管理是学考试的关键功能,试卷管理界如图所:试卷的种类分为很多种,要想从试卷中找到相关的试卷可以启动搜索功能,搜索界如图所:在DAO层,利随机函数,(设置试卷题和插题数量)实现动组卷public Integer addpaper(Paper paper)/TODO Auto-generated method stub String sql=INSERT INTO paper(pname,sid)SELECT?,sid FROM +subject where sstate=1 ORDER BY rand()LIMIT?;Integer rtn=DBUnitH
17、elper.executeUpdate(sql,paper.getPname(),paper.getScount();5.3数据库管理数据管理对代码与数据库之间的连接和交互起作,数据库交互实现的代码为Connection conn=null;try DbUtils.loadDriver(com.mysql.jdbc.Driver);conn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/exam,root,zhs2668281);catch(SQLException e)e.printStackTrace();return con
18、n;完成数据库的连接,进些简单的数据库操作,包括增删改查等,主要代码为:public static Integer executeUpdate(String sql,Object.objects)Connection conn=getConn();QueryRunner qr=new QueryRunner();Integer rtn=0;try if(objects=null)rtn=qr.update(conn,sql);else rtn=qr.update(conn,sql,objects);catch(Exception e)e.printStackTrace();finallytry
19、 DbUtils.close(conn);catch(Exception e)e.printStackTrace();return rtn;public static Integer executeUpdate(String sql)return executeUpdate(sql,null);public static List executeQuery(String sql,Class cls,Object.objects)Connection conn=getConn();List list=null;try QueryRunner rq=new QueryRunner();if(obj
20、ects=null)list=rq.query(conn,sql,new BeanListHandler(cls);else list=rq.query(conn,sql,new BeanListHandler(cls),objects);catch(Exception e)e.printStackTrace();finallytry DbUtils.close(conn);catch(SQLException e)e.printStackTrace();return list;其中分页查找的代码为:/*带分页的查询 *param sql SQL语句 *param map SQL参数 *par
21、am pc分页控制对象,需要传递参数:当前第页(currentindex),每页显多少:(pagesize)*分页控件显多少也:showpcount *return */public static Pager execlist(String sql,PageControl pc,Class cls,String pk,Object.object)/获取总记录数sql String sqlcount=select count(*)as count from(+sql+)a;/获取具体数据的SQL语句 Integer min=(pc.getCurrentindex()-1)*pc.getPages
22、ize();Integer max=pc.getPagesize();String sqllist=select*from(+sql+)a where a.+pk+limit+min+,+max;Connection conn=getConn();Pager pager=new Pager();try QueryRunner rq=new QueryRunner();Object count=rq.query(conn,sqlcount,new ScalarHandler(count),object);List list=executeQuery(sqllist,cls,object);/设置
23、总记录数 Integer c=0;if(count!=null)c=Integer.parseInt(count.toString();pc.setRscount(c);pager.setList(list);pc=dealpage(pc);pager.setPagectrl(pc);pager.setPagectrl(pc);DbUtils.close(conn);catch(Exception e)e.printStackTrace();return pager;6 6 最后-毕设帮助毕设帮助,开题指导,技术解答746876041章版权说明:该章由丹成学长全第时间发布,CSDN:mathor-sinor,上述系统为丹成学长开发完成,违版必究,如有项开发需求请联系 丹成学长.
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。