web版四则运算

题目:实现网页上的四则运算练习

设计思路:(整数为例)首先首页为选择做题的类型,用单选框进行选择,之后跳转到相应的页面进行题目规范的输入,例如:最大最小值,输入后进行提交,确认输入的信息无误,如果有误跳回页面,无误后转入出题页面,出一道题写一道题的答案,之后用session进行答案等的保存,将值传入到判断正误的页面,对输出正确,错输出错误和正确结果,题目全部做完进行结果的查看,点击返回主页,则返回到主页。主要是各种值得保存和调用,还有输入规范的判断。(分数和带括号的式子同理)。

源代码:

choose.jsp:

<%@ page contentType = "text/html; charset=utf-8" import = "java.sql.*" errorPage = "error.jsp" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>选择</title>
<style>

body {
  background: #222;
  margin: auto;
   960px;
}

.arc-text {
  font: 16px sans-serif;
}

.arc-center {
  fill: none;
}

#credit {
  position: absolute;
  font: 10px sans-serif;
  right: 10px;
  bottom: 10px;
  color: #ddd;
}

#credit a {
  color: inherit;
}

</style>
<div id="credit">Inspired by <a href="http://blog.pixelbreaker.com/polarclock/">pixelbreaker</a>.</div>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>

var width = 200,
    height = 200,
    radius = Math.min(width, height) / 1.6,
    spacing = .09;

var formatSecond = d3.time.format("%-S seconds"),
    formatMinute = d3.time.format("%-M minutes"),
    formatHour = d3.time.format("%-H hours"),
    formatDay = d3.time.format("%A"),
    formatDate = function(d) { d = d.getDate(); switch (10 <= d && d <= 19 ? 10 : d % 10) { case 1: d += "st"; break; case 2: d += "nd"; break; case 3: d += "rd"; break; default: d += "th"; break; } return d; },
    formatMonth = d3.time.format("%B");

var color = d3.scale.linear()
    .range(["hsl(-180,60%,50%)", "hsl(180,60%,50%)"])
    .interpolate(function(a, b) { var i = d3.interpolateString(a, b); return function(t) { return d3.hsl(i(t)); }; });

var arcBody = d3.svg.arc()
    .startAngle(0)
    .endAngle(function(d) { return d.value * 2 * Math.PI; })
    .innerRadius(function(d) { return d.index * radius; })
    .outerRadius(function(d) { return (d.index + spacing) * radius; })
    .cornerRadius(6);

var arcCenter = d3.svg.arc()
    .startAngle(0)
    .endAngle(function(d) { return d.value * 2 * Math.PI; })
    .innerRadius(function(d) { return (d.index + spacing / 2) * radius; })
    .outerRadius(function(d) { return (d.index + spacing / 2) * radius; });

var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height)
  .append("g")
    .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
var field = svg.selectAll("g")
    .data(fields)
  .enter().append("g");

field.append("path")
    .attr("class", "arc-body");

field.append("path")
    .attr("id", function(d, i) { return "arc-center-" + i; })
    .attr("class", "arc-center");

field.append("text")
    .attr("dy", ".35em")
    .attr("dx", ".75em")
    .style("text-anchor", "start")
  .append("textPath")
    .attr("startOffset", "50%")
    .attr("class", "arc-text")
    .attr("xlink:href", function(d, i) { return "#arc-center-" + i; });

tick();

d3.select(self.frameElement).style("height", height + "px");

function tick() {
  if (!document.hidden) field
      .each(function(d) { this._value = d.value; })
      .data(fields)
      .each(function(d) { d.previousValue = this._value; })
    .transition()
      .ease("elastic")
      .duration(500)
      .each(fieldTransition);

  setTimeout(tick, 1000 - Date.now() % 1000);
}

function fieldTransition() {
  var field = d3.select(this).transition();

  field.select(".arc-body")
      .attrTween("d", arcTween(arcBody))
      .style("fill", function(d) { return color(d.value); });

  field.select(".arc-center")
      .attrTween("d", arcTween(arcCenter));

  field.select(".arc-text")
      .text(function(d) { return d.text; });
}

function arcTween(arc) {
  return function(d) {
    var i = d3.interpolateNumber(d.previousValue, d.value);
    return function(t) {
      d.value = i(t);
      return arc(d);
    };
  };
}

function fields() {
  var now = new Date;
  return [
    {index: .7, text: formatSecond(now), value: now.getSeconds() / 60},
    {index: .6, text: formatMinute(now), value: now.getMinutes() / 60},
    {index: .5, text: formatHour(now),   value: now.getHours() / 24},
    {index: .3, text: formatDay(now),    value: now.getDay() / 7},
    {index: .2, text: formatDate(now),   value: (now.getDate() - 1) / (32 - new Date(now.getYear(), now.getMonth(), 32).getDate())},
    {index: .1, text: formatMonth(now),  value: now.getMonth() / 12}
  ];
}

</script>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>

<p align="center">请选择需要练习的题目类型</p>
<p>
  <label>
    <div align="center">
        <input type="radio" name="RadioGroup1" value="zhengshu.jsp" id="RadioGroup1_0" />
      整数的算数题练习</div>
  </label>
  <label>
  <div align="center">
      <input type="radio" name="RadioGroup1" value="zhenfenshu.jsp" id="RadioGroup1_1" />
    真分数算数题练习</div>
  </label>
  <label>
    <div align="center">
      <input type="radio" name="RadioGroup1" value="daikuohao.jsp" id="RadioGroup1_2" />
      带括号算数题练习  </div>
    <div align="center"></div>
</p>
<div align="center">
  <input type="button" value="开始答题" onClick="check()" />
</div>
</form>
<script>
function check(){
     var input = document.getElementsByName("RadioGroup1");
     for(var i=0; i< input.length; i++ ){
         if(input[i].checked == true ){
              //window.open(input[i].value,null); //新窗口打开
               window.location=input[i].value; //当前窗口打开,注释一种方法
          }
     }
}
</script>
</body>
</html>

zhengshu.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.sql.Connection,java.sql.DriverManager"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>整数</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<form id="form1" name="form1" method="post" action="chuanzhi.jsp">
  <p>
    <label for="textfield"></label>
  </p>
  <p>&nbsp;</p>
  <p align="center"><br>
    最小值:<input type="text" name="min" id="min" />
    <br>
    
    最大值:<input type="text" name="max" id="max" />
    <br>
    题目个数:<input type="text" name="geshu" id="geshu" />
    <br>
    选项:1有乘除法且除法无余数  2有乘除法余数不定 3无乘除法
  <br>
    选项:            <input type="text" name="choose" id="choose" />
  </p>
   <div align="center">
<input type="submit" value="确定" value="chuanzhi.jsp">
</div>
</form>
</body>
</html>

chuanzhi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.regex.Pattern, java.util.regex.Matcher"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>传值</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<% 


String min = request.getParameter("min");
session.setAttribute("min",min);
String max = request.getParameter("max");
session.setAttribute("max",max);
String choose = request.getParameter("choose");
session.setAttribute("choose",choose);
String geshu = request.getParameter("geshu");
session.setAttribute("geshu",geshu);

Pattern pattern = Pattern.compile("[0-9]*"); 
Pattern pattern1 = Pattern.compile("[1-3]"); 
Matcher isNum = pattern.matcher(min);
Matcher isNum2 = pattern.matcher(max);
Matcher isNum3 = pattern.matcher(geshu);
Matcher isNum4 = pattern1.matcher(choose);
if( (!isNum.matches())||(!isNum2.matches())||(!isNum3.matches())||(!isNum4.matches()))
{
    out.println("<script language = 'javaScript'> alert('输入错误,点击确定重新输入!!!');</script>");
    response.setHeader("refresh","0;url = zhengshu.jsp");
} 
else
{
    response.setHeader("refresh","0;url = zhengshushizi.jsp");
}
%>
</body>
</html>

zhengshushizi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>整数式子</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<div align="center">
  <%!
    int i=0;
    String Array[]=new String[1000];
    class Zhengshu
    {
    String re1="";
    int re;
    String function(int r ,int q, int fun)
    {
        //1有乘除法 2加减无负数 3除法无余数(12,1,0)
        String fu ="";
        String shizi="";
        int a=(int)(Math.random()*(r)%(r-q+1)+q);
        int b=(int)(Math.random()*(r)%(r-q+1)+q);
        int c=(int)(Math.random()*4);
        
        //1有乘除法
        if(fun==1)
        {
            if(c==0)
            {
                fu="+";
                shizi=a+" "+fu+" "+b;
                re=a+b;
                re1=String.valueOf(re);
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                shizi=a+" "+fu+" "+b;
                re=a-b;
                re1=String.valueOf(re);
            }
            if(c==2)
            {
                fu="×";
                shizi=a+" "+fu+" "+b;
                re=a*b;
                re1=String.valueOf(re);
            }
            if(c==3)
            {
                fu="÷";
                //排除分母为0的可能性和余数的可能性
                while(b==0||a%b!=0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }    
                re=a/b;
                shizi=a+" "+fu+" "+b;
                re1=String.valueOf(re);
            }
        }
        
        
        //2有乘除法余数不定
        if(fun==2)
        {
            if(c==0)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                shizi=a+" "+fu+" "+b;
                re=a-b;
                re1=String.valueOf(re);
            }
            if(c==2)
            {
                fu="×";
                re=a*b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==3)
            {
                fu="÷";
                //排除分母为0的可能性
                while(b==0)
                {
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }    
                re=a/b;
                if(a%b!=0)
                {
                    int flag1=a%b;
                    re1=String.valueOf(re)+"..."+String.valueOf(flag1);
                }
                else
                    re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
        }
        
        //3无乘除法
        if(fun==3)
        {
            if(c==0)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                re=a-b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==2)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==3)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                re=a-b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
        }
            return shizi;
    }
    }
%>
  <%
    
    Connection con = null; //定义一个MYSQL链接对象
    Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //链接本地MYSQL
    java.sql.Statement stmt; //创建声明
    stmt = con.createStatement();
    int max=Integer.parseInt(String.valueOf(session.getAttribute("max")));
    int min=Integer.parseInt(String.valueOf(session.getAttribute("min")));
    int choose=Integer.parseInt(String.valueOf(session.getAttribute("choose")));
    int geshu=Integer.parseInt(String.valueOf(session.getAttribute("geshu")));
    session.setAttribute("geshu1", geshu);
    //String daan=request.getParameter("daan");

    int zhengque1=0,cuowu1=0;
    int zhengque4[]=new int[geshu+10];
    int cuowu4[]=new int[geshu+10];
    Zhengshu a = new Zhengshu();
    //for(int i=0;i<geshu;i++)
    %>
          
          
      <% 
    if(i<geshu)
    {
        Array[i]=a.function(max,min,choose);
        if(i>0)
        {
            for(int z=0;z<i;z++)
            {
                if((Array[z].equals(Array[i])))
                {
                    Array[i]=a.function(max,min,choose);
                    z=-1;
                }    
            }
        }
        out.println(i+1+": "+Array[i]+" = "); 
         
        %>
          <% //将题目和答案写入数据库表
        String sql="INSERT INTO 四则运算题目2 (shizi,result) VALUES ('"+Array[i]+" = "+"','"+a.re1+"')";
        
        //out.println("<script language = 'javaScript'> alert('"+shi+"');</script>");
        stmt.executeUpdate(sql);
        
        %>
          <br>
          
</div>
        <form id="form1" name="form1" method="post" action="zhengshusjk.jsp">
          <p>&nbsp;</p>
          <p align="center">答案:
          <input type="text" name="daan" id="daan" />
        <% 
        String shi3=Array[i]+" = ";
        session.setAttribute("shi",shi3);
        String rere3=a.re1;
        session.setAttribute("rere",rere3);
        //String daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3);
        session.setAttribute("i2",i);
        
        i++;
        stmt.close();
        con.close();
        %>
        <input type="submit" value="下一个" >
          </p>
        </form>
        
        <div align="center">
          <%
        //String daan3=request.getParameter("daan");

        //daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3); 
        
        %>
          
          <%
    }
    else
    {
        i=0;
        %>
</div>
        <form action="chakan.jsp" method="post" >
          <div align="center">
            <%
        String correct=String.valueOf(session.getAttribute("correct1"));
        String wrong=String.valueOf(session.getAttribute("wrong1"));
        %><br></br>
        <br></br>
            <input type="submit" value="查看成绩" name="button" align="middle">
          </div>
        </form>
        <div align="center">
          <%
    }
    %>
          
          
</div>
</body>
</html>

zhengshusjk.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"  import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>判断答案</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
<%! String fencorrect="",fenwrong="";%>
    <%     
        
        String daan3=request.getParameter("daan");
        String shi5=String.valueOf(session.getAttribute("shi"));
        int geshu5=Integer.parseInt(String.valueOf(session.getAttribute("fengeshu1")));
        int i5=Integer.parseInt(String.valueOf(session.getAttribute("i2")));
        int i6=i5+1;
        String rere5=String.valueOf(session.getAttribute("rere"));
        if(rere5.equals(daan3))
        {
                    //out.println("恭喜你,回答正确!!!");
                    fencorrect=fencorrect+i6+"  ";
            out.println("<script language = 'javaScript'> alert('恭喜你,回答正确!!!');</script>");
            response.setHeader("refresh","0;url = zhenfenshushizi.jsp");
        }
        else
        {
                    //out.println("回答错误!正确答案为:"+result);
                    fenwrong=fenwrong+i6+"  ";
            out.println("<script language = 'javaScript'> alert('回答错误!!!正确答案:"+rere5+"');</script>");
            response.setHeader("refresh","0;url = zhenfenshushizi.jsp");
        }
        String fencorrect2=fencorrect;
        String fenwrong2=fenwrong;
        if(i5==geshu5-1)
        {
            fencorrect="";fenwrong="";
        }
        session.setAttribute("fencorrect1",fencorrect2);
        session.setAttribute("fenwrong1",fenwrong2);
        %>
</body>
</html>

chakan.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>成绩查看</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<%
    String correct=String.valueOf(session.getAttribute("correct1"));
    String wrong=String.valueOf(session.getAttribute("wrong1"));
    out.print("正确的题号:"+correct+"      错误的题号:"+wrong);
    out.println("<script language = 'javaScript'> alert('点击确定返回开始页面!');</script>");
    response.setHeader("refresh","0;url = choose.jsp");
%>

</body>
</html>

 zhenfenshu.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>真分数</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<form id="form1" name="form1" method="post" action="fenchuanzhi.jsp">
  <p>
    <label for="textfield"></label>
  </p>
  <p>&nbsp;</p>
  <p align="right">&nbsp;</p>
  <p align="center"> 分子分母的 最大值:
    <input type="text" name="fenmax" id="fenmax" />
    <br>
    题目个数:<input type="text" name="fengeshu" id="fengeshu" />
    <br>
    选项:1有乘除法  2无乘除法
  <br>
    选项:            
    <input type="text" name="fenchoose" id="fenchoose" />
  </p>
  <div align="center">
<input type="submit" value="确定" value="fenchuanzhi.jsp">
</div>
</form>
</body>
</html>

 fenchuanzhi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.regex.Pattern, java.util.regex.Matcher"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>传值</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<% 


String fenmax = request.getParameter("fenmax");
session.setAttribute("fenmax",fenmax);
String fenchoose = request.getParameter("fenchoose");
session.setAttribute("fenchoose",fenchoose);
String fengeshu = request.getParameter("fengeshu");
session.setAttribute("fengeshu",fengeshu);

Pattern pattern = Pattern.compile("[0-9]*"); 
Pattern pattern1 = Pattern.compile("[1-2]"); 
Matcher isNum = pattern.matcher(fenmax);
Matcher isNum3 = pattern.matcher(fengeshu);
Matcher isNum4 = pattern1.matcher(fenchoose);
if( (!isNum.matches())||(!isNum3.matches())||(!isNum4.matches()))
{
    out.println("<script language = 'javaScript'> alert('输入错误,点击确定重新输入!!!');</script>");
    response.setHeader("refresh","0;url = zhenfenshu.jsp");
} 
else
{
    response.setHeader("refresh","0;url = zhenfenshushizi.jsp");
}
%>
</body>
</html>

zhenfenshushizi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>真分数式子</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
  <div align="center">
      <%!
    int feni=0;
    String fenArray[]=new String[1000];
    
    class zhenfenshu
    {
     String refenshu;
     
    //****最大公约****
        double getGcd(double m,double n){
                while(n > 0){
                    double temp = m % n;
                    m = n;
                    n = temp;
                }
                return m;
            }
        //****最大公约****
        
         //***最小公倍数***
        double getLcm(double m,double n){
             double gcd = getGcd(m,n);
             double result = m*n / gcd;
                return result;
            }
         //***最小公倍数***
     String fun(int r ,int fun)
    {
        //1有乘除法2没有乘除法
        String fu ="";
        String shizi="";
        int a=(int)(Math.random()*(r+1));
        int b=(int)(Math.random()*(r+1));
        int c=(int)(Math.random()*(r+1));
        int d=(int)(Math.random()*(r+1));
        int e=(int)(Math.random()*4);
        
        //1有乘除法****1
        if(fun==1)
        {
        if(e==0)
        {
            fu="+";
            while(a>=b||c>=d||b==0||d==0)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
            }
            //约分
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a+c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else if(a>gongbei)
            {
                int s=a%gongbei;
                refenshu=1+"’"+s+"/"+gongbei;
            }
            else
            refenshu=a+"/"+gongbei;
            
        }
        if(e==1)
        {
            fu="-";
            double y=getLcm(b,d);
            double a1=y/b;
            double c1=y/d;
            double a2=a*a1;
            double c2=c*c1;
            while(a>=b||c>=d||b==0||d==0||a2<c2)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
                  y=getLcm(b,d);
                     a1=y/b;
                     c1=y/d;
                     a2=a*a1;
                     c2=c*c1;
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a-c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else
            refenshu=a+"/"+gongbei;
        }
        if(e==2)
        {
            fu="×";
            while(a>=b||c>=d||b==0||d==0)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            a=a*c;
            b=b*d;
            int flag1=(int) getGcd(a,b);
            a=a/flag1;b=b/flag1;
            if(a==0)
                refenshu="0";
            else
                refenshu=a+"/"+b;
        }
        if(e==3)
        {
            fu="÷";
            while(a>=b||c>=d||b==0||d==0||c==0)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            a=a*d;
            b=b*c;
            int flag1=(int) getGcd(a,b);
            a=a/flag1;b=b/flag1;
            if(a==0)
                refenshu="0";
            else if(a==b)
                refenshu="1";
            else if(b==1)
                refenshu=a+"";
            else if(a>b)
            {
                int s=a%b;
                int s1=a/b;
                refenshu=s1+"’"+s+"/"+b;
            }
            else
                refenshu=a+"/"+b;
        }
        }
        
        //2没有有乘除法***2
        if(fun==2)
        {
        if(e==0)
        {
            fu="+";
            while(a>=b||c>=d||b==0||d==0)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a+c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else if(a>gongbei)
            {
                int s=a%gongbei;
                refenshu=1+"’"+s+"/"+gongbei;
            }
            else
            refenshu=a+"/"+gongbei;
        }
        if(e==1)
        {
            fu="-";
            double y=getLcm(b,d);
            double a1=y/b;
            double c1=y/d;
            double a2=a*a1;
            double c2=c*c1;
            while(a>=b||c>=d||b==0||d==0||a2<c2)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
                  y=getLcm(b,d);
                     a1=y/b;
                     c1=y/d;
                     a2=a*a1;
                     c2=c*c1;
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a-c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else
            refenshu=a+"/"+gongbei;
        }
        if(e==2)
        {
            fu="+";
            while(a>=b||c>=d||b==0||d==0)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a+c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else if(a>gongbei)
            {
                int s=a%gongbei;
                refenshu=1+"’"+s+"/"+gongbei;
            }
            else
            refenshu=a+"/"+gongbei;
        }
        if(e==3)
        {
            fu="-";
            double y=getLcm(b,d);
            double a1=y/b;
            double c1=y/d;
            double a2=a*a1;
            double c2=c*c1;
            while(a>=b||c>=d||b==0||d==0||a2<c2)
            {
                 a=(int)(Math.random()*(r+1));
                 b=(int)(Math.random()*(r+1));
                 c=(int)(Math.random()*(r+1));
                 d=(int)(Math.random()*(r+1));
                  y=getLcm(b,d);
                     a1=y/b;
                     c1=y/d;
                     a2=a*a1;
                     c2=c*c1;
            }
            int aa=(int) getGcd(a,b);
            int cc=(int) getGcd(c,d);
            a=a/aa; b=b/aa;
            c=c/cc; d=d/cc;
            shizi=a+"/"+b+" "+fu+" "+c+"/"+d;
            int gongbei=(int) getLcm(b,d);
            a=a*(gongbei/b);
            c=c*(gongbei/d);
            a=a-c;
            int t=(int) getGcd(a,gongbei);
            a=a/t;
            gongbei=gongbei/t;
            if(a==gongbei)
                refenshu="1";
            else if(a==0)
                refenshu="0";
            else
            refenshu=a+"/"+gongbei;
        }
        }
        return shizi;
    }
    }
%>
  <%
    
    Connection con = null; //定义一个MYSQL链接对象
    Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //链接本地MYSQL
    java.sql.Statement stmt; //创建声明
    stmt = con.createStatement();
    int fenmax=Integer.parseInt(String.valueOf(session.getAttribute("fenmax")));
    int fenchoose=Integer.parseInt(String.valueOf(session.getAttribute("fenchoose")));
    int fengeshu=Integer.parseInt(String.valueOf(session.getAttribute("fengeshu")));
    session.setAttribute("fengeshu1", fengeshu);
    //String daan=request.getParameter("daan");

    int zhengque1=0,cuowu1=0;
    int zhengque4[]=new int[fengeshu+10];
    int cuowu4[]=new int[fengeshu+10];
    zhenfenshu a = new zhenfenshu();
    //for(int i=0;i<geshu;i++)
    %>
          
          
        <% 
    if(feni<fengeshu)
    {
        fenArray[feni]=a.fun(fenmax,fenchoose);
        if(feni>0)
        {
            for(int z=0;z<feni;z++)
            {
                if((fenArray[z].equals(fenArray[feni])))
                {
                    fenArray[feni]=a.fun(fenmax,fenchoose);
                    z=-1;
                }    
            }
        }
        out.println(feni+1+": "+fenArray[feni]+" = "); 
         
        %>
          <% //将题目和答案写入数据库表
        String sql="INSERT INTO 四则运算题目1 (shizi,result) VALUES ('"+fenArray[feni]+" = "+"','"+a.refenshu+"')";
        
        //out.println("<script language = 'javaScript'> alert('"+shi+"');</script>");
        stmt.executeUpdate(sql);
        
        %>
          <br>
          
</div>
        <form id="form1" name="form1" method="post" action="zhenfenshusjk.jsp">
          <p>&nbsp;</p>
          <p align="center">答案:
          <input type="text" name="daan" id="daan" />
        <% 
        String shi3=fenArray[feni]+" = ";
        session.setAttribute("shi",shi3);
        String rere3=a.refenshu;
        session.setAttribute("rere",rere3);
        //String daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3);
        session.setAttribute("i2",feni);
        
        feni++;
        stmt.close();
        con.close();
        %>
        <input type="submit" value="下一个" >
          </p>
        </form>
        
        <div align="center">
          <%
        //String daan3=request.getParameter("daan");

        //daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3); 
        
        %>
          
          <%
    }
    else
    {
        feni=0;
        %>
</div>
        <form action="fenchakan.jsp" method="post" >
          <div align="center">
            <%
        String correct=String.valueOf(session.getAttribute("correct1"));
        String wrong=String.valueOf(session.getAttribute("wrong1"));
        %><br></br>
        <br></br>
            <input type="submit" value="查看成绩" name="button" align="middle">
          </div>
        </form>
        <div align="center">
          <%
    }
    %>
          
          
</div>
</body>
</html>

zhenfenshusjk.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"  import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>判断答案</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
<%! String fencorrect="",fenwrong="";%>
    <%     
        
        String daan3=request.getParameter("daan");
        String shi5=String.valueOf(session.getAttribute("shi"));
        int geshu5=Integer.parseInt(String.valueOf(session.getAttribute("fengeshu1")));
        int i5=Integer.parseInt(String.valueOf(session.getAttribute("i2")));
        int i6=i5+1;
        String rere5=String.valueOf(session.getAttribute("rere"));
        if(rere5.equals(daan3))
        {
                    //out.println("恭喜你,回答正确!!!");
                    fencorrect=fencorrect+i6+"  ";
            out.println("<script language = 'javaScript'> alert('恭喜你,回答正确!!!');</script>");
            response.setHeader("refresh","0;url = zhenfenshushizi.jsp");
        }
        else
        {
                    //out.println("回答错误!正确答案为:"+result);
                    fenwrong=fenwrong+i6+"  ";
            out.println("<script language = 'javaScript'> alert('回答错误!!!正确答案:"+rere5+"');</script>");
            response.setHeader("refresh","0;url = zhenfenshushizi.jsp");
        }
        String fencorrect2=fencorrect;
        String fenwrong2=fenwrong;
        if(i5==geshu5-1)
        {
            fencorrect="";fenwrong="";
        }
        session.setAttribute("fencorrect1",fencorrect2);
        session.setAttribute("fenwrong1",fenwrong2);
        %>
</body>
</html>

fenchakan.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>成绩查看</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<%
    String fencorrect=String.valueOf(session.getAttribute("fencorrect1"));
    String fenwrong=String.valueOf(session.getAttribute("fenwrong1"));
    out.print("正确的题号:"+fencorrect+"      错误的题号:"+fenwrong);
    out.println("<script language = 'javaScript'> alert('点击确定返回开始页面!');</script>");
    response.setHeader("refresh","0;url = choose.jsp");
%>

</body>
</html>

daikuohao.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>带括号</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<p>&nbsp;</p>

<form id="form1" name="form1" method="post" action="kuohaochuanzhi.jsp">
  <label for="textfield"></label>
  <div align="center">最小值:
    <input type="text" name="kuohaomin" id="kuohaomin" />
    <br>
    最大值:<input type="text" name="kuohaomax" id="kuohaomax" />
    <br>
    题目个数:<input type="text" name="kuohaogeshu" id="kuohaogeshu" />
    <br>
  </div>
  <div align="center">
<input type="submit" value="确定" value="kuohaochuanzhi.jsp">
</div>
</form>
</body>
</html>

kuohaochuanzhi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.util.regex.Pattern, java.util.regex.Matcher"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>传值</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<% 


String kuohaomax = request.getParameter("kuohaomax");
session.setAttribute("kuohaomax10",kuohaomax);
String kuohaomin = request.getParameter("kuohaomin");
session.setAttribute("kuohaomin10",kuohaomin);
String kuohaogeshu = request.getParameter("kuohaogeshu");
session.setAttribute("kuohaogeshu10",kuohaogeshu);

Pattern pattern = Pattern.compile("[0-9]*");  
Matcher isNum = pattern.matcher(kuohaomax);
Matcher isNum2 = pattern.matcher(kuohaomin);
Matcher isNum3 = pattern.matcher(kuohaogeshu);

if((!isNum.matches())||(!isNum3.matches())||(!isNum2.matches())||kuohaomax.equals("")||kuohaomin.equals("")||kuohaogeshu.equals(""))
{
    out.println("<script language = 'javaScript'> alert('输入错误,点击确定重新输入!!!');</script>");
    response.setHeader("refresh","0;url = daikuohao.jsp");
} 
else
{
    response.setHeader("refresh","0;url = daikuohaoshizi.jsp");
}
%>
</body>
</html>

daikuohaoshizi.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8" import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>带括号式子</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<div align="center">
  <%!
    int kuohaoi=0;
    String kuohaoArray[]=new String[1000];
    class daikuohao
    {
    //保存整数结果
         int re;
        //保存整数带余数的结果
         String re1;
        //保存三个整数公式的结果
         int resan;
    String function(int r ,int q, int fun)
    {
        //1有乘除法 2加减无负数 3除法无余数(12,1,0)
        String fu ="";
        String shizi="";
        int a=(int)(Math.random()*(r)%(r-q+1)+q);
        int b=(int)(Math.random()*(r)%(r-q+1)+q);
        int c=(int)(Math.random()*4);
        
        //1乘除法 2除法无余数****12
        if(fun==12)
        {
            if(c==0)
            {
                fu="+";
                shizi=a+" "+fu+" "+b;
                re=a+b;
                re1=String.valueOf(re);
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                shizi=a+" "+fu+" "+b;
                re=a-b;
                re1=String.valueOf(re);
            }
            if(c==2)
            {
                fu="×";
                shizi=a+" "+fu+" "+b;
                re=a*b;
                re1=String.valueOf(re);
            }
            if(c==3)
            {
                fu="÷";
                //排除分母为0的可能性和余数的可能性
                while(b==0||a%b!=0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }    
                re=a/b;
                shizi=a+" "+fu+" "+b;
                re1=String.valueOf(re);
            }
        }
        
        
        //1乘除法 2除法无余数****1
        if(fun==1)
        {
            if(c==0)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                shizi=a+" "+fu+" "+b;
                re=a-b;
                re1=String.valueOf(re);
            }
            if(c==2)
            {
                fu="×";
                re=a*b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==3)
            {
                fu="÷";
                //排除分母为0的可能性
                while(b==0)
                {
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }    
                re=a/b;
                if(a%b!=0)
                {
                    int flag1=a%b;
                    re1=String.valueOf(re)+"..."+String.valueOf(flag1);
                }
                else
                    re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
        }
        
        //1乘除法 2除法无余数****0
        if(fun==0)
        {
            if(c==0)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                re=a-b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==2)
            {
                fu="+";
                re=a+b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
            if(c==3)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                    b=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                re=a-b;
                re1=String.valueOf(re);
                shizi=a+" "+fu+" "+b;
            }
        }
            return shizi;
    }
    //***************生成整数公式的函数**********************
    String sgongshi(int r,int q)
    {
        String shi,shizi="";
        int a=(int)(Math.random()*(r)%(r-q+1)+q);
        int e=(int)(Math.random()*4);
        shi=function(r,q,12);
        if(e==0)
        {
            int f=(int)(Math.random()*4);
            if(f==1||f==0)
            {
                shizi=a+" + "+"( "+shi+" )";
                resan=a+re;
            }
            if(f==2||f==3)
            {
                shizi="( "+shi+" )"+" + "+a;
                resan=a+re;
            }
        }
        if(e==1)
        {
            int f=(int)(Math.random()*4);
            if(f==1||f==0)
            {
                while(a-re<0)
                {
                    shi=function(r,q,12);
                }
                shizi=a+" - "+"( "+shi+" )";
                resan=a-re;
            }
            if(f==2||f==3)
            {
                while(a-re>0)
                {
                    shi=function(r,q,12);
                }
                shizi="( "+shi+" )"+" - "+a;
                resan=re-a;
            }
        }
        if(e==2)
        {
            int f=(int)(Math.random()*4);
            if(f==1||f==0)
            {
                shizi=a+" × "+"( "+shi+" )";
                resan=a*re;
            }
            if(f==2||f==3)
            {
                shizi="( "+shi+" )"+" × "+a;
                resan=a*re;
            }
        }
        if(e==3)
        {
            int f=(int)(Math.random()*4);
            if(f==1||f==0)
            {
                while(re==0)
                {
                    shi=function(r,q,12);    
                }
                while(a%re!=0)
                {
                    shi=function(r,q,12);
                    while(re==0)
                    {
                        shi=function(r,q,12);
                    }
                }
                shizi=a+" ÷ "+"( "+shi+" )";
                resan=a/re;
            }
            if(f==2||f==3)
            {
                while(a==0)
                {
                    a=(int)(Math.random()*(r)%(r-q+1)+q);
                }
                while(re%a!=0)
                {
                    shi=function(r,q,12);
                }
                shizi="( "+shi+" )"+" ÷ "+a;
                resan=re/a;
            }
        }
        return shizi;
    }
    //*****生成三个数的式子的函数******
    }
%>
          
  <%
    
    Connection con = null; //定义一个MYSQL链接对象
    Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root"); //链接本地MYSQL
    java.sql.Statement stmt; //创建声明
    stmt = con.createStatement();
    int kuohaomax=Integer.parseInt(String.valueOf(session.getAttribute("kuohaomax10")));
    int kuohaomin=Integer.parseInt(String.valueOf(session.getAttribute("kuohaomin10")));
    int kuohaogeshu=Integer.parseInt(String.valueOf(session.getAttribute("kuohaogeshu10")));
    session.setAttribute("kuohaogeshu1", kuohaogeshu);
    //String daan=request.getParameter("daan");

    int zhengque1=0,cuowu1=0;
    int zhengque4[]=new int[kuohaogeshu+10];
    int cuowu4[]=new int[kuohaogeshu+10];
    daikuohao a = new daikuohao();
    //for(int i=0;i<geshu;i++)
    %>
          
          
      <% 
    if(kuohaoi<kuohaogeshu)
    {
        kuohaoArray[kuohaoi]=a.sgongshi(kuohaomax,kuohaomin);
        if(kuohaoi>0)
        {
            for(int z=0;z<kuohaoi;z++)
            {
                if((kuohaoArray[z].equals(kuohaoArray[kuohaoi])))
                {
                    kuohaoArray[kuohaoi]=a.sgongshi(kuohaomax,kuohaomin);
                    z=-1;
                }    
            }
        }
        out.println(kuohaoi+1+": "+kuohaoArray[kuohaoi]+" = "); 
         
        %>
          <% //将题目和答案写入数据库表
        String sql="INSERT INTO 四则运算题目3 (shizi,result) VALUES ('"+kuohaoArray[kuohaoi]+" = "+"','"+a.resan+"')";
        
        //out.println("<script language = 'javaScript'> alert('"+shi+"');</script>");
        stmt.executeUpdate(sql);
        
        %>
          <br>
          
</div>
        <form id="form1" name="form1" method="post" action="kuohaosjk.jsp">
          <div align="center">
            <p>&nbsp;</p>
            <p>答案:
          <input type="text" name="daan" id="daan" />
        <% 
        String shi3=kuohaoArray[kuohaoi]+" = ";
        session.setAttribute("shi",shi3);
        int rere3=a.resan;
        session.setAttribute("rere",rere3);
        //String daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3);
        session.setAttribute("i2",kuohaoi);
        
        kuohaoi++;
        stmt.close();
        con.close();
        %>
        <input type="submit" value="下一个" >
            </p>
          </div>
        </form>
        
        <div align="center">
          <%
        //String daan3=request.getParameter("daan");

        //daan3=request.getParameter("daan");
        //session.setAttribute("daan",daan3); 
        
        %>
          
          <%
    }
    else
    {
        kuohaoi=0;
        %>
</div>
<form action="kuohaochakan.jsp" method="post" >
        <div align="center">
          <%
        String correct=String.valueOf(session.getAttribute("correct1"));
        String wrong=String.valueOf(session.getAttribute("wrong1"));
        %><br></br>
        <br></br>
          <input type="submit" value="查看成绩" name="button" align="middle">
  </div>
</form>
        <div align="center">
          <%
    }
    %>
          
          
</div>
</body>
</html>

kuohaosjk.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"  import="java.sql.Connection,java.sql.DriverManager,java.sql.ResultSet"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>判断答案</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
<%! String kuohaocorrect="",kuohaowrong="";%>
    <%     
        
        String daan3=request.getParameter("daan");
        String shi5=String.valueOf(session.getAttribute("shi"));
        int geshu5=Integer.parseInt(String.valueOf(session.getAttribute("kuohaogeshu1")));
        int i5=Integer.parseInt(String.valueOf(session.getAttribute("i2")));
        int i6=i5+1;
        String rere5=String.valueOf(session.getAttribute("rere"));
        if(rere5.equals(daan3))
        {
                    //out.println("恭喜你,回答正确!!!");
                    kuohaocorrect=kuohaocorrect+i6+"  ";
            out.println("<script language = 'javaScript'> alert('恭喜你,回答正确!!!');</script>");
            response.setHeader("refresh","0;url = daikuohaoshizi.jsp");
        }
        else
        {
                    //out.println("回答错误!正确答案为:"+result);
                    kuohaowrong=kuohaowrong+i6+"  ";
            out.println("<script language = 'javaScript'> alert('回答错误!!!正确答案:"+rere5+"');</script>");
            response.setHeader("refresh","0;url = daikuohaoshizi.jsp");
        }
        String kuohaocorrect2=kuohaocorrect;
        String kuohaowrong2=kuohaowrong;
        if(i5==geshu5-1)
        {
            kuohaocorrect="";kuohaowrong="";
        }
        session.setAttribute("kuohaocorrect1",kuohaocorrect2);
        session.setAttribute("kuohaowrong1",kuohaowrong2);
        %>
</body>
</html>

kuohaochakan.jsp:

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>成绩查看</title>
<style type="text/css">
body,td,th {
    font-size: 24px;
}
body {
    background-color: #0CF;
    background-image: url(b.jpg);
}
</style>
</head>
<body>
<%
    String kuohaocorrect=String.valueOf(session.getAttribute("kuohaocorrect1"));
    String kuohaowrong=String.valueOf(session.getAttribute("kuohaowrong1"));
    out.print("正确的题号:"+kuohaocorrect+"      错误的题号:"+kuohaowrong);
    out.println("<script language = 'javaScript'> alert('点击确定返回开始页面!');</script>");
    response.setHeader("refresh","0;url = choose.jsp");
%>

</body>
</html>

结果截图:

原文地址:https://www.cnblogs.com/lhj1017/p/6679775.html