课堂结对作业:二维数组(4)

结队成员:陈欣容、孙奇文

1.题目:四则运算web版;把程序变成一个网页程序,用户通过设定参数,就可以得到各种题目,并可实现在线答题并评判  

  四则运算web版的程序设计思想:之前的程序是可以用户自定义生成任意个数四则运算题目的,这次试验是要求写成web版的,用于给用户提供一一个在线答题的平台。这里需要用到Javaweb的方法,Javabean方法,jsp代码编写等方法。

2.源程序代码:

Javabean1:

package DBBean;

 

import java.sql.*;

import java.util.*;

public class DBbean {

    private String driverStr = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

    private String connStr = "jdbc:sqlserver://localhost:1433; DatabaseName=sizeyunsuan";

    private String dbusername = "sa";

    private String dbpassword = "123456";

    private Connection conn = null;

    private PreparedStatement pstmt = null;

 

    public DBbean()

    {

        try

        {

            Class.forName(driverStr);

            conn = DriverManager.getConnection(connStr, dbusername, dbpassword);

        }

        catch (Exception ex) {

            System.out.println("数据库连接失败!");

        }

        

    }

    public Vector<String> getEx(){

        Vector<String> ex=new Vector<String>();

        try{

            Random ran=new Random();

            String sql="select * from expression";

            pstmt=conn.prepareStatement(sql);

            ResultSet res=pstmt.executeQuery();

            while(true){

                if(ex.size()>=20)

                    break;

                if(res.next()){

                    String exp=res.getString("ex");

                    String re=res.getString("result");

                    ex.addElement(exp);

                    ex.addElement(re);

                }

            }

            

        }

        catch(Exception e){

            e.printStackTrace();

        }

        return ex;

    }

    public void insertEx(String ex[]){

        if(ex.length!=5){

            System.out.println("插入表达式失败!");

            return ;

        }

        else{

            String exp=""+ex[0]+ex[1]+ex[2]+ex[3];

            String resu=ex[4];

            try{

                String sql = "insert into expression values('"+exp+"','" +resu+ "')";

                pstmt=conn.prepareStatement(sql);

                int rst=pstmt.executeUpdate();

                if(rst!=0){

                    System.out.print("成功插入表达式:");

                    System.out.print(exp+resu);

                    System.out.print(" ");

                    return ;

                }

                else{

                    System.out.println("插入表达式失败!");

                    return ;

                }

                    

            }

            catch(Exception e){

                System.out.println("插入表达式失败!");

            }

 

        }

    }

    public void clear(){

        try{

            String sql="delete expression";

            pstmt=conn.prepareStatement(sql);

            int rst=pstmt.executeUpdate();

            if(rst!=0){

                System.out.println("成功清空数据表");

            }            

        }

        catch(Exception e){

            System.out.println("delete语句执行失败!");

        }

    }

}

Javabean2:

package DBEx;

 

 

import java.util.*;

public class DBEx{

    public int from,to,ifChengChu;

    public int randomArr[]=new int[4];

    public Random ran=new Random();

    public char randomCh[]={'+','-','*','÷'};

    //生成表达式

    public String[] creaExpression(int f,int t,int choose,int ifChengChu){

        from=f; to=t;

        String ex[]=new String[5];

        char operator;

        if(ifChengChu==1){

            int oper=ran.nextInt(4);

            operator=randomCh[oper];

        }

        else{

            int oper=ran.nextInt(2);

            operator=randomCh[oper];

        }

 

        if(choose==1){

            for(int i=0;i<2;i++){

                randomArr[i]=randomNum(from,to);

            }

            if(operator=='-'||operator=='÷'){

                int ra=0,rb=0;

                while(true){

                    ra=randomNum(from,to);

                    rb=randomNum(from,to);

                    if(ra>=rb&&ra%rb==0)

                        break;

                }

                randomArr[0]=ra;

                randomArr[1]=rb;

            }

 

            ex[0]=""+randomArr[0];

            ex[1]=""+operator;

            ex[2]=""+randomArr[1];

            ex[3]="=";

            int result=calcuInt(ex[0],ex[1],ex[2]);

            String s=""+result;

            ex[4]=s;

            return ex;

 

        }

        else

            return null;

        

 

    }

    //范围生成随机数

    public int randomNum(int fromA,int toB){

        int x=ran.nextInt(toB-fromA)+fromA+1;

        return x;

    }

    public int calcuInt(String numleft,String oper,String numright){

        int a=Integer.parseInt(numleft);

        int b=Integer.parseInt(numright);

        if(oper.equals("+"))

            return a+b;

        else if(oper.equals("-"))

            return a-b;

        else if(oper.equals("*"))

            return a*b;

        else if(oper.equals("÷"))

            return a/b;

        else

            return -1;

    }

}

Set.jsp

<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<html>

<head>

<title>在线答题</title>

</head>

<body>

    <center>

        <h1 style="color:red">答题设置</h1>

            <form action="settodb.jsp">

                <table border="0">

                    <tr>

                        <td>数字范围:</td>

                        <td>小<input type="text" name="from" id="f"></td><br>

                        <td>大<input type="text" name="to" id="t"></td><br>

                    </tr>

                    <tr>

                        <td>是否有乘除法:</td>

                        <td><input type="radio" name="ifChengChu" value="1" checked>是</td>

                        <td><input type="radio" name="ifChengChu" value="2">否</td>

                    </tr>

                </table>

            <br>

                

                <input type="button" value="确定" style="color:#BC8F8F" onclick="check()">

            </form>

 

    </center>

<script type="text/javascript">

    var text=document.getElementById("f");

    text.onkeyup=function(){

        this.value=this.value.replace(/D/g,'');

    }

</script>

<script type="text/javascript">

    var text=document.getElementById("t");

    text.onkeyup=function(){

        this.value=this.value.replace(/D/g,'');

    }

</script>

<script language="javascript">

function check(){

    var f=document.forms[0].from.value;

    var t=document.forms[0].to.value;

    if(f==""||t==""){

        alert("请输入范围!");  

    }

    else{

        if((f>0&&f<=1000) && (t>0&&t<=1000)){

            if(f>=t){

                alert("“小”中的 数应小于“大”中的数!");

            }

            else

                document.forms[0].submit();

        }

        else{

            alert("请输入1-1000的正整数!");

        }

        

    }

}

</script>

</body>

</html>

Settodb.jsp

<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<html>

<head>

<script language="javascript">

</script>

</head>

 

<body>

<jsp:useBean id="dbex" class="DBEx.DBEx"/>

<jsp:useBean id="db" class="DBBean.DBbean"/>

<%

    db.clear();

    int from=Integer.parseInt(request.getParameter("from"));

    int to=Integer.parseInt(request.getParameter("to"));

    String ifChengChu=(String)request.getParameter("ifChengChu");

    int ifcc=0;

    if(ifChengChu.equals("1")){

        ifcc=1;

    }

    if(ifChengChu.equals("2")){

        ifcc=2;

    }

    out.println(from+" "+to+" "+ifcc);

    String ex[];

    for(int i=0;i<10;i++){

        ex=new String[5];

        ex=dbex.creaExpression(from,to,1,ifcc);

        db.insertEx(ex);

 

    }

    response.setHeader("refresh", "1;url=answer.jsp");

%>

 

</body>

</html>

Answer1.jsp

<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<html>

<head>

<title>在线答题</title>

 

<script language="javascript">

    function result(){

        var va=new Array(document.forms[0].value1.value,

                         document.forms[0].value2.value,

                         document.forms[0].value3.value,

                         document.forms[0].value4.value,

                         document.forms[0].value5.value,

                         document.forms[0].value6.value,

                         document.forms[0].value7.value,

                         document.forms[0].value8.value,

                         document.forms[0].value9.value,

                         document.forms[0].value10.value);

        var right=0;

        for(var i=0;i<10;i++){

            if(va[i]==null||va[i]==""){

                window.alert("还有题目没做完!");

                return;

            }

        }

        for(var i=0;i<10;i++){

            if(va[i]==res[i]){

                right++;

            }

        }

        result="您做对了"+right+"道题目";

        if(right<=6){

            result+=",不太理想,继续加油!"

            window.alert(result);

            location=location;

        }    

        if(right>6&&right<=9){

            result+=",不错呦,继续努力!";

            window.alert(result);

            location=location;

        }

        if(right==10){

            result+=",太棒啦,全对!(づ ̄ 3 ̄)づ"

            window.alert(result);

            location=location;

        }

        

    }

</script>

</head>

<body>

<jsp:useBean id="db" class="DBBean.DBbean"/>

<style type="text/css">

.biaoti {

    font-family: "方正兰亭超细黑简体";

    font-size: 30px;

    color: #93F;

}

</style>

<form action="">

<%

    Vector<String> v=new Vector<String>();

    v=db.getEx();

%>

<center>

<span class="biaoti">四则运算答题界面</span>

<br>

<%=v.get(0) %><input type="text" name="value1" id="input"> <br><br>

<%=v.get(2) %><input type="text" name="value2" id="input2"> <br><br>

<%=v.get(4) %><input type="text" name="value3" id="input3"> <br><br>

<%=v.get(6) %><input type="text" name="value4" id="input4"> <br><br>

<%=v.get(8) %><input type="text" name="value5" id="input5"> <br><br>

<%=v.get(10)%><input type="text" name="value6" id="input6"> <br><br>

<%=v.get(12)%><input type="text" name="value7" id="input7"> <br><br>

<%=v.get(14)%><input type="text" name="value8" id="input8"> <br><br>

<%=v.get(16)%><input type="text" name="value9" id="input9"> <br><br>

<%=v.get(18)%><input type="text" name="value10" id="input10"><br><br>

<input type="Button" value="确认" onClick="result()">

</center>

<script>

    var res=new Array("<%=v.get(1)%>", "<%=v.get(3)%>", "<%=v.get(5)%>", "<%=v.get(7)%>", "<%=v.get(9)%>",

                      "<%=v.get(11)%>","<%=v.get(13)%>","<%=v.get(15)%>","<%=v.get(17)%>","<%=v.get(19)%>");

</script>

</form>

<script type="text/javascript">

var text = document.getElementById("input");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input2");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input3");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input4");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input5");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input6");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input7");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input8");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input9");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input10");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

</body>

</html>

Answer2.jsp

<%@ page import="java.sql.*,java.util.*" language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

<html>

<head>

<title>在线答题</title>

<script language="javascript">

    function result(){

        var va=new Array(document.forms[0].value1.value,

                         document.forms[0].value2.value,

                         document.forms[0].value3.value,

                         document.forms[0].value4.value,

                         document.forms[0].value5.value,

                         document.forms[0].value6.value,

                         document.forms[0].value7.value,

                         document.forms[0].value8.value,

                         document.forms[0].value9.value,

                         document.forms[0].value10.value);

        var right=0;

        for(var i=0;i<10;i++){

            if(va[i]==null||va[i]==""){

                window.alert("还有题目没做完!");

                return;

            }

        }

        for(var i=0;i<10;i++){

            if(va[i]==res[i]){

                right++;

            }

        }

        result="您做对了"+right+"道题目";

        if(right<=6){

            result+=",不太理想,继续加油!"

            window.alert(result);

            location=location;

        }  

        if(right>6&&right<=9){

            result+=",不错呦,继续努力!";

            window.alert(result);

            location=location;

        }

        if(right==10){

            result+=",太棒啦,全对!(づ ̄ 3 ̄)づ"

            window.alert(result);

            location=location;

        }

         

    }

</script>

</head>

<body>

<jsp:useBean id="db" class="DBBean.DBbean"/>

<form action="">

<%

    Vector<String> v=new Vector<String>();

    v=db.getEx();

%>

<%=v.get(0) %><input type="text" name="value1" id="input"> <br><br>

<%=v.get(2) %><input type="text" name="value2" id="input2"> <br><br>

<%=v.get(4) %><input type="text" name="value3" id="input3"> <br><br>

<%=v.get(6) %><input type="text" name="value4" id="input4"> <br><br>

<%=v.get(8) %><input type="text" name="value5" id="input5"> <br><br>

<%=v.get(10)%><input type="text" name="value6" id="input6"> <br><br>

<%=v.get(12)%><input type="text" name="value7" id="input7"> <br><br>

<%=v.get(14)%><input type="text" name="value8" id="input8"> <br><br>

<%=v.get(16)%><input type="text" name="value9" id="input9"> <br><br>

<%=v.get(18)%><input type="text" name="value10" id="input10"><br><br>

<script>

    var res=new Array("<%=v.get(1)%>", "<%=v.get(3)%>", "<%=v.get(5)%>", "<%=v.get(7)%>", "<%=v.get(9)%>",

                      "<%=v.get(11)%>","<%=v.get(13)%>","<%=v.get(15)%>","<%=v.get(17)%>","<%=v.get(19)%>");

</script>

<input type="Button" value="确认" onClick="result()">

</form>

<script type="text/javascript">

var text = document.getElementById("input");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input2");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input3");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input4");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input5");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input6");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input7");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input8");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input9");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

<script type="text/javascript">

var text = document.getElementById("input10");

text.onkeyup = function(){

this.value=this.value.replace(/D/g,'');

}

</script>

</body>

</html>

原文地址:https://www.cnblogs.com/sunqw/p/6986307.html