JSP实现在线考试与成绩评测

模拟在线考试系统,在request.jsp页面输出单选题和多选题,题目答完后点击“考试完成”,页面跳转到requestHandle.jsp,该页面对提交的数据进行处理,并将考试结果的数据输出到页面中。

1.request.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title>考试系统</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 </head>
 <body>
 <h3>2016--2017学年期末测试题</h3><hr/>
 <form action="requestHandle.jsp" method="get">
  <h4>一、单选题(每题12分,满分60分)</h4>
  1.当方法遇到异常又不知如何处理时,下列() 做法是正确的。<br>
  <input type="radio" name="1" value="A">A、捕获异常<br>
  <input type="radio" name="1" value="B">B、抛出异常<br>
  <input type="radio" name="1" value="C">C、声明异常<br>
  <input type="radio" name="1" value="D">D、嵌套异常<br>
  2.下列说法错误的是() <br>
  <input type="radio" name="2" value="A">A、在java中一个类被声明为final类型,表示该类不能被继承。<br>
  <input type="radio" name="2" value="B">B、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,这叫引用传递。<br>
  <input type="radio" name="2" value="C">C、一个类不能既被声明为 abstract,又被声明为final。<br>
  <input type="radio" name="2" value="D">D、方法的覆盖(Overriding)和重载(Overloading)是Java多态性的表现,他们没有区别。<br>
  3.下列创建数组的方法哪个是错误的? <br>
  <input type="radio" name="3" value="A">A、Date[] arr = new Date[5];<br>
  <input type="radio" name="3" value="B">B、Date arr[] = new Date[];<br>
  <input type="radio" name="3" value="C">C、Date arr[][] = new Date[4][5];<br>
  <input type="radio" name="3" value="D">D、Date arr[][] = new Date[4][];<br>
  4.在读文件Employee.txt 时,可以直接使用该文件作为参数的类是() <br>
  <input type="radio" name="4" value="A">A、BufferedReader<br>
  <input type="radio" name="4" value="B">B、FileInputStream<br>
  <input type="radio" name="4" value="C">C、DataOutputStream<br>
  <input type="radio" name="4" value="D">D、DataInputStream<br>
  5.下列关于线程的说法中,错误的是? <br>
  <input type="radio" name="5" value="A">A、线程必须通过方法start() 来启动。<br>
  <input type="radio" name="5" value="B">B、线程创建后,其优先级是可以改变的。<br>
  <input type="radio" name="5" value="C">C、实现Runnable接口或者从Thread类派生的线程类没有区别。<br>
  <input type="radio" name="5" value="D">D、当对象用synchronized 修饰时,表明该对象在任一时刻只能由一个线程访问。<br>
  <br/>
  <h4>二、多选题(每题20分,满分40分,错选、少选、多选不得分)</h4>
  6.下列说法正确的是() <br>
  <input type="checkbox" name="6" value="A">A、在java中一个类被声明为final类型,表示该类不能被继承。<br>
  <input type="checkbox" name="6" value="B">B、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,这叫引用传递。<br>
  <input type="checkbox" name="6" value="C">C、一个类不能既被声明为 abstract,又被声明为final。<br>
  <input type="checkbox" name="6" value="D">D、方法的覆盖(Overriding)和重载(Overloading)是Java多态性的表现,他们没有区别。<br>
  7.当方法遇到异常又不知如何处理时,下列() 做法是不正确的。<br>
  <input type="checkbox" name="7" value="A">A、捕获异常<br>
  <input type="checkbox" name="7" value="B">B、抛出异常<br>
  <input type="checkbox" name="7" value="C">C、声明异常<br>
  <input type="checkbox" name="7" value="D">D、嵌套异常<br>
  <hr/>
  <input type="submit" value="考试完成">
 </form>
 </body>
</html>

运行结果如下:

2.requestHandle.jsp代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
 <title>考试结果</title>
 <meta http-equiv="pragma" content="no-cache">
 <meta http-equiv="cache-control" content="no-cache">
 <meta http-equiv="expires" content="0">
 <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
 <meta http-equiv="description" content="This is my page">
 </head>
 <body>
 <%
 int count=7; //总题目个数
 int ac_num1=0; //单选题正确的题目个数
 int ac_num2=0; //多选题正确的题目个数
 int err_num=0; //错误的总个数
 int[] a=new int[8];
 String str1=request.getParameter("1");
 String str2=request.getParameter("2");
 String str3=request.getParameter("3");
 String str4=request.getParameter("4");
 String str5=request.getParameter("5");
 String[] str6=request.getParameterValues("6");
 String[] str7=request.getParameterValues("7");
 //将多选题的结果转换成字符串
 String typeStr6="";
 for(int i=0;i<str6.length;i++)
  typeStr6+=str6[i];
 String typeStr7="";
 for(int i=0;i<str7.length;i++)
  typeStr7+=str7[i];
 if(str1==null)
  str1="";
 if(str2==null)
  str2="";
 if(str3==null)
  str3="";
 if(str4==null)
  str4="";
 if(str5==null)
  str5="";
 if(typeStr6==null)
  typeStr6="";
 if(typeStr7==null)
  typeStr7=""; 

 if(str1.equals("B")) {
  ac_num1++;
  a[1]++;
 }
 if(str2.equals("D")) {
  ac_num1++;
  a[2]++;
 }
 if(str3.equals("B")) {
  ac_num1++;
  a[3]++;
 }
 if(str4.equals("B")) {
  ac_num1++;
  a[4]++;
 }
 if(str5.equals("D")) {
  ac_num1++;
  a[5]++;
 } 

 if(typeStr6.equals("ABC")) {
  ac_num2++;
  a[6]++;
 }
 if(typeStr7.equals("ACD")) {
  ac_num2++;
  a[7]++;
 }
 %> 

 <h3>考试结束!本次考试统计数据如下:</h3>
  你的答题结果为:
 <%
  for(int i=1;i<a.length;i++)
  {
  if(a[i]==1)
   out.print(i+":正确;");
  else
   out.print(i+":错误;");
  }
  %>
  <hr>
 总题目个数:<%=count %> <br>
 答对单选题题目个数:<%=(ac_num1)%> ;得分:<%=ac_num1*12 %><br>
 答对多选题题目个数:<%=(ac_num2)%> ;得分:<%=ac_num2*20 %><br>
 答错题目个数:<%=(7-ac_num1-ac_num2) %> <br>
  <hr>
 本次考试总成绩为:<%=(ac_num1*12+ac_num2*20)%>分
 </body>
</html> 

运行结果如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 使用java web 在jsp文件及Class中连接MySQL和SQLsever 的驱动方法

    --方法一 使用java web 在jsp文件中连接 连接MySQL的驱动 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@page import="java.sql.Connection"%> <%@page import="java.sql.DriverManager"%>

  • jsp图片效果大全(图像震动效果、闪烁效果、自动切换图像)

    本文主要介绍jsp实现图像震动效果.闪烁效果.自动切换图像的资料,废话不多说了,具体代码如下: 1.当鼠标指针经过图像时图像震动效果 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1

  • jsp页面验证码demo

    在java后台中生成验证码的ImageIO传到前端页面显示,同时把验证码的value值传入session 中用于与用户输入的验证码进行匹配,在用户验证中使用ajax技术,在不刷新页面的同时进行验证码验证. 程序结构图: VerifyCodeUtils程序主要内容为通过java生成验证码的图片,以及验证码的value值,程序如下: package utils; import java.awt.Color; import java.awt.Font; import java.awt.Graphics

  • jsp中为表格添加水平滚动条的实现方法

    首先,本项目中使用的是bootstrap框架,因此有些人会说,给表格设置自适应属性就可以了 这里要申明的是 bootsrtap自适应是针对当浏览器不占满整个屏幕,而是一半的时候才会出现横向的滚动条 而当我们将浏览器最大化的时候,如果列数增多了呢?会出现什么效果 答案就是会出现挤压的效果,横向并不会出现滚动条 查看网上的教程,很多人都说将什么父div设置100%,table添加scrool属性均不可 这里,解决的方法很简单,设置<th>标签的属性即可,让其不要自动换行 $(document).r

  • jsp播放视频文件的方法总结

    本文实例讲述了jsp播放视频文件的方法.分享给大家供大家参考,具体如下: 1.avi格式 代码片断如下: JSP代码: <object id="video" width="400" height="200" border="0" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="ShowDispl

  • jsp页面常用的查询及显示方法分析

    本文实例讲述了jsp页面常用的查询及显示方法.分享给大家供大家参考,具体如下: 背景: 1. 需要将数据库查询结果在JSP中以列表方式显示 2. 在一个良好的J2EE模式中数据库查询一般用DAO实现(Data Access Object), JSP仅用于显示数据 方法一: 建一个类,将查询出的结果封装到该类中,然后将该类对象添加到List中.(这个也是我最开始时用的方法,不通用且太麻烦了). 方法二: 在介绍方法二的时候,我们先来看看如何把ResultSet转化为List吧,代码如下: priv

  • 在JSP页面中获取当前日期时间的方法

    1. <SCRIPT LANGUAGE="JavaScript"> var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,

  • 基于jsp的AJAX多文件上传的实例

    最近的项目开发中,遇到了一个多文件上传的问题,即在不刷新页面的情况下,上传多个文件至服务器.现总结分享如下: 本文主要采用了基于jsp的ajax,jquery,servlet等技术. 1.upload.jsp 点击上传时,调用对应的fileupload函数,通过ajax将文件异步传送到servlet中处理.注意在文件上载时,所使用的编码类型应当是"multipart/form-data",它既可以发送文本数据,也支持二进制数据上载. <%@ page language="

  • 基于jsp实现新闻管理系统 附完整源码

    很棒的新闻发布系统分享给大家,希望大家喜欢. 下面就让我们来说一说基于jsp的新闻发布系统,其中使用的技术有JavaBean.fillter.数据库等,能够实现新闻的发布功能,在发布之后能够进行对每一条新闻的删除.修改.或者继续增加新的文章,最后还能够进行查询功能,其中引用了百度编辑器,能够进行图文并茂的编辑,极大地方便用户的使用. 注:完整项目下载地址:新闻发布系统 一.效果演示 首先让我们来看一看实现的效果: 下面是登陆的首界面: 图1 首界面 管理员登录页面: 图2 管理员登录界面 下面是

  • jsp 网站引入外部css或者js失效问题解决

    最近做项目,完成项目经理布置的任务,开始入门java web,但在开发过程中遇到过许许多多的问题,但是令我最头痛的还是导入外部css一直失效,困扰许久才找出原因. 路径问题 css或者js导入失效最有可能的原因就是路径错误,这里我给出我的网站目录结构,大家可以参考下. 导入css代码: <link rel="stylesheet" type="text/css" href="css/login.css"> 记得jsp头部需要设置相对路

  • jsp中如何实现按下回车键自动提交表单

    为了省事很多时候希望可以按回车键来提交表单,要控制这些行为,可以借助JS来达到要求. 代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ include file="../../common/include_tag.jsp"%> <%@ include fi

随机推荐