jsp+servlet模拟从题库中随机选出3道题目考试

package com.neuedu.servlet;

import com.neuedu.domain.questioninfo;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * Created by Administrator on 2016/11/23 0023.
 */
@WebServlet(name = "ProduceQuestionServlet", urlPatterns = "/exam")
public class ProduceQuestionServlet extends HttpServlet
{
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {

    }
    private List<questioninfo> readallquestion(String strpath) throws IOException
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(strpath),"utf-8"));
        String strline = "";
        List<questioninfo> lst = new ArrayList<questioninfo>();
        int index = 0;
        int choice = 0;
        questioninfo qi = new questioninfo();
        while ((strline = br.readLine()) != null)
        {
            index++;
            choice = index % 6;
            switch (choice)
            {
                case 1:
                {
                    qi.setQuestion(strline);
                    break;
                }
                case 2:
                {
                    qi.setAnswer1(strline);
                    break;
                }
                case 3:
                {
                    qi.setAnswer2(strline);
                    break;
                }
                case 4:
                {
                    qi.setAnswer3(strline);
                    break;
                }
                case 5:
                {
                    qi.setAnswer4(strline);
                    break;
                }
                default:
                {
                    qi.setRightanswer(strline);
                    lst.add(qi);
                    qi = new questioninfo();//为下几题new出对象
                    break;
                }


            }

        }
        br.close();
        return lst;

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        String strPath = request.getServletContext().getRealPath("question.txt");
        List<questioninfo> lst = readallquestion(strPath);//文件中所有的题的集合
        int r=(int)(Math.random()*lst.size());
        Set<Integer> set=new HashSet<Integer>();
        while(set.size()<3){
            set.add(r);
            r=(int)(Math.random()*lst.size());//再次随机,如果随机数重复,集合中的size()不变
        }
        List<questioninfo> lstpro=new ArrayList<questioninfo>();//提供的题的集合
        for(Integer ii:set){{
           questioninfo q= lst.get(ii);
            lstpro.add(q);
        }
        }
        request.setAttribute("question", lstpro);
        request.getRequestDispatcher("/exam.jsp").forward(request, response);


    }
}

package com.neuedu.domain;

/**
 * Created by Administrator on 2016/11/23 0023.
 */
public class questioninfo
{
    private String question;
    private String answer1;
    private String answer2;
    private String answer3;
    private String answer4;
    private String rightanswer;

    public String getQuestion()
    {
        return question;
    }

    public void setQuestion(String question)
    {
        this.question = question;
    }

    public String getAnswer1()
    {
        return answer1;
    }

    public void setAnswer1(String answer1)
    {
        this.answer1 = answer1;
    }

    public String getAnswer2()
    {
        return answer2;
    }

    public void setAnswer2(String answer2)
    {
        this.answer2 = answer2;
    }

    public String getAnswer3()
    {
        return answer3;
    }

    public void setAnswer3(String answer3)
    {
        this.answer3 = answer3;
    }

    public String getAnswer4()
    {
        return answer4;
    }

    public void setAnswer4(String answer4)
    {
        this.answer4 = answer4;
    }

    public String getRightanswer()
    {
        return rightanswer;
    }

    public void setRightanswer(String rightanswer)
    {
        this.rightanswer = rightanswer;
    }
}
<%--
  Created by IntelliJ IDEA.
  User: Administrator
  Date: 2016/11/23 0023
  Time: 18:36
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<html>
<head>
    <title>Title</title>
</head>
<body>
<table width="75%" border="0" align="center">

    <tr>

        <td>

            <form name="quiz1" action ="mailto:www.mb5u.com@163.com"  method="post">

                您的姓名:

                <input type="Text" name="Name" value="" class="pt9">

                <hr>

                <c:forEach items="${question}" var="q" varStatus="ii">
                    ${q.question}

                    <ol>

                        <input type="radio" name="Q${ii.index+1}" value="1" >

                            ${q.answer1}

                        <input type="radio" name="Q${ii.index+1}" value="2" >

                            ${q.answer2}

                        <input type="radio" name="Q${ii.index+1}" value="3" >

                            ${q.answer3}

                        <input type="radio" name="Q${ii.index+1}" value="4" >
                            ${q.answer4}

                        <input type="hidden" name = "answer${ii.index+1}" value="${q.rightanswer}">
                    </ol>

                </c:forEach>



                <hr>

                <input type="button" name="submit" value="开始评分" onClick=scorequiz(this.form) class="pt9">

                <input type="reset" name="reset" value="重新测试" onClick=clearquiz(this.form) class="pt9">

                <input type="submit" value="将成绩MAIL给管理员" onClick=scorequiz(this.form) name="submit" class="pt9">

                你的考试成绩:

                <input  name="SCORE" type="text" class="pt9">

            </form>
        </td>
    </tr>
</table>

</body>
</html>

 

                
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值