1、摘要本系统实现了试题评价系统中的试题评价主要功能,以无纸化的管理不但可以提高工作效率、减少监考人员数量、增强公平性等,而且可以实现学校或企业的低成本投入、高效率办公的宗旨。本系统是采用jsp技术编写的,jsp具有广泛的可移植性,可以到处运行,不依赖于平台的局限。后台采用于数据库联系,可以及时更新数据库的各项内容。 本系统主要采用上左右框架式,看起来清爽简洁。登录实现了考生、教师和管理员的登录,这是在线考试的前提;考生管理可以提供在线考试、查看成绩以及修改密码等基本功能;管理模块主要实现对管理员、教师、考生信息的管理和对成绩的统计查询。目录一使用工具与相关知识介绍:41.1 Myeclipse介
2、绍:41.2 Mysql介绍:41.3 Tomcat概述:41.4 Jsp概述:51.5 Servlet概述:61.6 JavaBean1.7 Servlet的工作模式:7二需求分析:82.1 研究内容:82.2 设计原则:82.3 所要达到的目标:8三功能模块说明:9四功能模块图:10五工作流程图:11六. 页面截图及功能分析:126.1 试题评价系统首页登录126.2 管理员页面:166.3 试题页面:196.4 试题评价页面:23致谢31参考文献32一使用工具与相关知识介绍:1.1 Myeclipse介绍:Myeclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集
3、合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。1.2 Mysql介绍:Mysql是一个开放源码的小型关联式数据库管理系统,开发者为瑞典的Mysql AB公司。目前Mysql被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了Mysql作为网站数据库。1.3 Tomcat概述:Tomcat是apche软件基金会(apache software fountion)的jakarta项目中的一个核心项目,由apache、sun和其他一些公司及个人共同开发而
4、成。由于有了sun的参与和支持,最新的servlet和jsp规范总是能在tomcat中得到体现,tomcat 5支持最新的servlet 2.4和jsp 2.0规范。因为tomcat技术先进、性能稳定,而且免费,因而深受java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的web应用服务器。目前最新版本是7.0.1.4 Jsp概述:JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Script
5、let)和JSP标记(tag),从而形成JSP文件(*.jsp)。 Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库,重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传给客户端仅仅是结果,对客户浏览器的要求最低。在Java的基础上开发的JSP实现了动态页面与静态页面的分离,脱离了硬件平台的束缚以及编译后运行等方式,大大提高了其执行效率而逐渐成为了Internet上的主流开发工具。在美国,EJB+Servlt+JSP几乎成为了电子商
6、务的开发标准,而在我国也正逐渐兴起,不少网站都采用了jsp技术。1.5 Servlet概述:Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。 它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。1.6 JavaBean概述:JavaBean 是一种JAVA语言写成的可重用组件
7、。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性。众所周知,属性名称符合这种模式,其他Java 类可以通过自身机制发现和操作这些JavaBean 属性。用户可以使用JavaBean将功能、处理、值、数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、Servlet、其他JavaBean、applet程序或者应用来使用这些对象。用户可以认为JavaBean提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。1.7 Servlet的工作模式:1.
8、 客户端发送请求至服务器 2. 服务器启动并调用Servlet,Servlet根据客户端请求生成响应内容并将其传给服务器 3. 服务器将响应返回客户端4. JDBC是通用的SQL Server(结构化查询语言)数据库存取框架,带有 简单且功能强大的应用程序接口 (AP I)。利用JDBC API,Java 开发人 员可以在单一的标准化功能库中编码,生成独立 于数据库管理系统(D BMS) 的Java 应用系统。兼容JDBC的应用程序 可利用JDBC驱动器模块,反过来与后端数据源通信。 这些元件化的JDBC驱动器可换入换出,以适应不同的数据库后端设备。二需求分析:2.1 研究内容:基于jsp技术
9、的试题评价系统实现图形化界面操作平台。2.2 设计原则:通过图形化操作界面更好的使人们了解jsp技术给人们带来的便利。界面清爽便利。插入很多和谐的因素。2.3 所要达到的目标:让人们了解jsp技术,实现无纸化办公。实现对试题的分析和评价。让人们更能体会网络技术在人们生活当中的应用,感受到科技带给人们的巨大的便利。三功能模块说明: 图像化操作界面 可自由选择各类题型的评价 可自动跳转到评价页面 允许后台数据库连接数据 允许设置考生权限 允许管理员后台登录四功能模块图:试题评价系统首页试题评价试题解答简答题模块判断题模块选择题模块管理员模块难度分析答案解析两道试题添加试题五工作流程图:no试题评价
10、首页yes 错误页面试题答辩页面试题评价页面 重新登录试题难度答案解析正确答案六. 页面截图及功能分析:6.1 试题评价系统首页登录试题评价系统的首页登录页面。右上方显示系统当前的时间。下面有两个输入框。分别是用户名和密码登录。首先进行的是管理员登录。可以在数据库后台更改管理员的登录密码实现管理员登陆。采用的代码:系统首页 function tick() var hours, minutes, seconds, xfile; var intHours, intMinutes, intSeconds; var today, theday; today = new Date(); function
11、 initArray() this.length=initArray.arguments.length for(var i=0;ithis.length;i+) thisi+1=initArray.argumentsi var d=new initArray( 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六); theday = today.getYear()+年 + today.getMonth()+1+月 +today.getDate()+日 + dtoday.getDay()+1; intHours = today.getHours(); intMinutes = t
12、oday.getMinutes(); intSeconds = today.getSeconds(); if (intHours = 0) hours = 12:; xfile = 午夜 ; else if (intHours 12) hours = intHours+:; xfile = 上午 ; else if (intHours = 12) hours = 12:; xfile = 正午 ; else intHours = intHours - 12 hours = intHours + :; xfile = 下午 ; if (intMinutes 10) minutes = 0+int
13、Minutes+:; else minutes = intMinutes+:; if (intSeconds 10) seconds = 0+intSeconds+ ; else seconds = intSeconds+ ; timeString = theday+xfile+hours+minutes+seconds; Clock.innerHTML = timeString; window.setTimeout(tick();, 100); window.onload = tick;试题评价考试系统 用户名: 密码:  
14、; 版权所有,翻版必究 CopyRight6.2 管理员页面:管理员界面,可以实现添加考生信息、选择题、判断题、简答题。添加原则是每种类型的题目添加两个。代码实现如下:管理员页面 试题评价系统 function tick() var hours, minutes, seconds, xfile; var intHours, intMinutes, intSeconds; var today, theday; today = new Date(); function initArray() this.l
15、ength=initArray.arguments.length for(var i=0;ithis.length;i+) thisi+1=initArray.argumentsi var d=new initArray( 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六); theday = today.getYear()+年 +today.getMonth()+1+月 +today.getDate()+日 + dtoday.getDay()+1; intHours = today.getHours(); intMinutes = today.getMinutes(); i
16、ntSeconds = today.getSeconds(); if (intHours = 0) hours = 12:; xfile = 午夜 ; else if (intHours 12) hours = intHours+:; xfile = 上午 ; else if (intHours = 12) hours = 12:; xfile = 正午 ; else intHours = intHours - 12 hours = intHours + :; xfile = 下午 ; if (intMinutes 10) minutes = 0+intMinutes+:; else minu
17、tes = intMinutes+:; if (intSeconds 10) seconds = 0+intSeconds+ ; else seconds = intSeconds+ ; timeString = theday+xfile+hours+minutes+seconds; Clock.innerHTML = timeString; window.setTimeout(tick();, 100); window.onload = tick;欢迎管理员登录添加考生信息添加选择题添加判断题添加简答题版权所有,翻版必究6.3 试题页面:试题界面。可以实现考生答题,答题结束后自动跳转试题评价
18、界面。代码如下: 试题评价考试系统 %String xuanze_id_1=(String)session.getAttribute(xuanze_id_1); String xuanze_id_2=(String)session.getAttribute(xuanze_id_2); String panduan_id_1=(String)session.getAttribute(panduan_id_1); String panduan_id_2=(String)session.getAttribute(panduan_id_2); String jianda_id_1=(String)se
19、ssion.getAttribute(jianda_id_1); String jianda_id_2=(String)session.getAttribute(jianda_id_2); if(xuanze_id_1=null | xuanze_id_2=null |panduan_id_1=null | panduan_id_2=null | jianda_id_1=null | jianda_id_2=null) out.println(alert(产生随机数失败!);window.location.href=student.jsp;); else String sql_xuanze_1
20、=select * from xuanze where id=+xuanze_id_1+; ResultSet rs_xuanze_1=connBean.executeQuery(sql_xuanze_1); rs_xuanze_1.next(); String sql_xuanze_2=select * from xuanze where id=+xuanze_id_2+; ResultSet rs_xuanze_2=connBean.executeQuery(sql_xuanze_2); rs_xuanze_2.next(); String sql_panduan_1=select * f
21、rom panduan where id=+panduan_id_1+; ResultSet rs_panduan_1=connBean.executeQuery(sql_panduan_1); rs_panduan_1.next(); String sql_panduan_2=select * from panduan where id=+panduan_id_2+; ResultSet rs_panduan_2=connBean.executeQuery(sql_panduan_2); rs_panduan_2.next(); String sql_jianda_1=select * fr
22、om jianda where id=+jianda_id_1+; ResultSet rs_jianda_1=connBean.executeQuery(sql_jianda_1); rs_jianda_1.next(); String sql_jianda_2=select * from jianda where id=+jianda_id_2+; ResultSet rs_jianda_2=connBean.executeQuery(sql_jianda_2); rs_jianda_2.next(); % 试题评价考试考试系统 function tick() var hours, min
23、utes, seconds, xfile; var intHours, intMinutes, intSeconds; var today, theday; today = new Date(); function initArray() this.length=initArray.arguments.length for(var i=0;ithis.length;i+) thisi+1=initArray.argumentsi var d=new initArray( 星期日, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六); theday = today.getYear()+年
24、 + today.getMonth()+1+月 +today.getDate()+日 + dtoday.getDay()+1; intHours = today.getHours(); intMinutes = today.getMinutes(); intSeconds = today.getSeconds(); if (intHours = 0) hours = 12:; xfile = 午夜 ; else if (intHours 12) hours = intHours+:; xfile = 上午 ; else if (intHours = 12) hours = 12:; xfile
25、 = 正午 ; else intHours = intHours - 12 hours = intHours + :; xfile = 下午 ; if (intMinutes 10) minutes = 0+intMinutes+:; else minutes = intMinutes+:; if (intSeconds 10) seconds = 0+intSeconds+ ; else seconds = intSeconds+ ; timeString = theday+xfile+hours+minutes+seconds; Clock.innerHTML = timeString;
26、window.setTimeout(tick();, 100); window.onload = tick;试题评价考试系统6.4 试题评价页面:试题评价界面。系统中的重点。可以实现对试题的解析并给出试题的难度系数。可以说真正实现了试题评价。给考生一目了然的知道了自己这道题应该怎么做。代码实现如下: 考生答案结果分析 !- % String xuanze_tm_1=request.getParameter(xuanze_tm_1); String xuanze_tm_2=request.getParameter(xuanze_tm_2); String panduan_tm_1=request
27、.getParameter(panduan_tm_1); String panduan_tm_2=request.getParameter(panduan_tm_2); String jianda_1=request.getParameter(jianda_1); String jianda_2=request.getParameter(jianda_2); String xuanze_id_1=(String)session.getAttribute(xuanze_id_1); String xuanze_id_2=(String)session.getAttribute(xuanze_id_2); String panduan_id_1=(String)session.getAttribute(panduan_id_1); String panduan_id_2=(String)session.getAttribute(panduan_id_2); String jianda_id_1=(String)session.getAttribute(jianda_id_1); String jia