• 课堂结对作业:二维数组(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>

  • 相关阅读:
    Jmeter 调试接口用例怎么判断提取的上一个接口返回值是正确的?
    Jmeter 加密处理方法
    Apache Ignite 学习
    jmeter 中 浮点数计算精度问题
    httprunner 使用总结
    oh-my-zsh 安装及使用
    内置装饰器二:@property
    内置装饰器一:@classmethod、@staticmathod
    python实现列表的排序
    Mac git简易使用
  • 原文地址:https://www.cnblogs.com/sunqw/p/6986307.html
Copyright © 2020-2023  润新知