zoukankan      html  css  js  c++  java
  • 四则运算2

    1.程序设计思想

    ⑴   设计登陆界面,提示用户输入想要生成的题目数量。

    ⑵   编写代码实现传递用户输入题目数量的参数,异常判断输入是否异常。

    ⑶   实现随机生成算式的功能,并按照用户输入的题目数量生成相应数量的题目。

    ⑷   将生成的算式写入数据库中,并将用户做对的题目与做错的题目分开存放。

    ⑸   实现计时的功能。

    2.程序源代码

    登录界面

    <%@ 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 xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>在线答题系统</title>
    <style type="text/css">
        body {background-image:url(3.jpg);}
    </style>
    </head>
    <body >
        <form id="form2" name="form2" method="post" action="ZhengShu.jsp">
        <div style="text-align:center;color:#F09">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        请输入出题的个数:<input name="amount" type="text" value=""/>    </br></br>
        <input type="submit" value="提交" />
        <input type="reset" value="重置" /> 
        </div>
        </form>
    </body>
    </html>

    判断输入是否异常

    <%@ 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>Insert title here</title>
    </head>
    <body>
    
    <%
    try
    {
        int amount=Integer.parseInt(request.getParameter("amount"));
        session.setAttribute("amount",amount);
        response.setHeader("refresh","0;url = ZhengShu.jsp");
    }
    catch(Exception e){
        %>
        <script type="text/javascript">
        alert("输入错误,点击确定返回重新输入!!!")
        </script>
        <%
        response.setHeader("refresh","0;url = WelcomeInput.jsp");
    }
    %>
    </body>
    </html>

    随机生成题目

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.Random" import="java.sql.Connection" 
        import="java.sql.DriverManager" import="java.util.Scanner"
        %>
    <!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>Insert title here</title>
    <style type="text/css">
    body 
    {
        background-image: url(3.jpg);
    }
    </style>
    </head>
    <body>
    
    <%
    String suanshi[]=new String [10000];
            String result1[]=new String[10000];
            int num=Integer.parseInt(request.getParameter("amount"));
            Scanner  in = new Scanner(System.in);
            Random random = new Random();
            int count = 0;
            int result = 0;
            int a=0,b=0;
            String fuhao="***";
            for(int i=0;i<num;i++) {
                count=random.nextInt(4)+1;//随机产生乘除法
                if(count==1) {
                    //乘法
                    fuhao="*";
                    a = random.nextInt(9)+1;
                    b = random.nextInt(9)+1;
                    result = a*b;
                }
                else if(count==2) {
                    //除法
                    fuhao="/";
                    a = random.nextInt(9)+1;
                    b = random.nextInt(9)+1;
                    a = a*b;
                    result = a/b;
                }
                else if(count==3) {
                    //减法
                    fuhao="-";
                    a = random.nextInt(99)+1;
                    b = random.nextInt(a);
                    result = a-b;
                }
                else{
                    //加法
                    fuhao="+";
                    a = random.nextInt(99);
                    b = random.nextInt(100-a)+1;
                    result = a+b;
                }
                suanshi[i]=String.valueOf(a)+fuhao+String.valueOf(b);
                result1[i]=String.valueOf(result);
                request.setAttribute("suanshi", suanshi[i]);
                request.setAttribute("result1",result1[i]);
                request.setAttribute("i",i);
                if((i+1)==num)
                {    
        %>
        <form id="form2" name="form2" method="post" action="toDatebase.jsp">
        <div style="text-align:center">
        <br>
        <%
        out.print(suanshi[i]+"=");
        %>
        <br>
        请输入答案:<input name="result" type="text" value=""/><br /><br/>
        <input name="" type="submit" value="提交" />
        </div>
        </form>
    <%
            }
            else
            {
    %>
        <form id="form2" name="form2" method="post" action="toDatebase.jsp">
        <div style="text-align:center">
        <br>
        <%
        out.print(suanshi[i]+"=");
        %>
        <br>
        请输入答案:<input name="result" type="text" value=""/><br /><br/>
        </div>
        </form>
        <%
        }
            }
        %>
    </body>
    </html>

    将算式写入数据库

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.sql.Connection" import="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>Insert title here</title>
    <style type="text/css">
    body 
    {
        background-image: url(3.jpg);
    }
    </style>
    </head>
    <body>
    <%
    int tishu1;
    String zhengque="",error=""; 
    int dui=0,cuo=0;
    try
    {
    Connection con = null; //定义一个MYSQL链接对象
    Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL驱动
    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","chen123"); //链接本地MYSQL
    java.sql.Statement stmt; //创建声明
    stmt = con.createStatement();
    System.out.println("***");
    String suanshi=String.valueOf(request.getAttribute("suanshi"));
    System.out.println(suanshi);
    String result1=String.valueOf(request.getAttribute("result1"));
    int i=Integer.parseInt(String.valueOf(request.getAttribute("i")));
    tishu1=Integer.parseInt((String.valueOf(request.getAttribute("amount"))));
    String result=request.getParameter("result");
    String sql="INSERT INTO 整数的四则计算 (shizi,result,userresult) VALUES ('"+suanshi+" = "+"','"+result1+"','"+result+"')";
    stmt.executeUpdate(sql);
    if(result.equals(result1))
    {
        zhengque=zhengque+String.valueOf(i+1)+",";
        dui++;
        sql="INSERT INTO Grade (zhengque) VALUES ('"+zhengque+"')";
    }
    else
    {
         error=error+String.valueOf(i+1)+",";
         cuo++;
         sql="INSERT INTO Grade (cuowu) VALUES ('"+error+"')";
    }
    
    if(i+1==tishu1)
    {
        
        stmt.executeUpdate(sql);             
        %>
        <form id="form2" name="form2" method="post" action="Welcome.html">
           <div style="text-align:center;color:#F00">
           <strong>
           <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
       
        <%
         out.print("正确的题目是:"+zhengque+"<br>"+"正确的题目数为:"+dui+"<br>");
        out.print("错误的题目是:"+error+"<br>"+"错误的题目数为"+cuo+"<br>"+"点击确定返回主界面");
        zhengque="";
        error="";
        %>
        <input name="" type="submit" value="确定" />
        </strong>
        </div>
        </form>
        <%
    }
    else
    {
    response.setHeader("refresh","0;url = ZhengShu.jsp");
    }
    }
    catch (Exception e) 
    {
        System.out.print("MYSQL ERROR:" + e.getMessage());
    } 
    %>
    </body>
    </html>

    3.运行结果截图

    4.编程总结分析

      在此程序中,我们对随机生成算式的方法做了一点改动,根据不同的运算生成不同范围的整数,例如:随机为乘法运算,则生成0-9范围内的整数。难点有计时功能的实现,以及将算式写入数据库中,后者因为对数据库操作的不熟练导致。在此程序中,我学会了不用界面中参数的传递使用session或 request的get/set方法。

    5.PSP0

    时间记录日志

     姓名:陈美琪        日期:2017/12/6

     

          任务

    时间

     

     

    上课

    编写代码

    查找资料

    日总结

    周二

    2h

    3h

    2h

    7h

    周三

    3h

    1h

    4h

     时间记录日志

    学生:陈美琪    日期:2017/12/6

    教师:王建民    课程:软件工程概论

    日期

    开始时间

    结束时间

    中断时间

    净时间

    活动

    12/5

    8:00

    9:50

    10

    100

    上课

    14:00

    18:00

    10

    230

    编写代码

    12/6

    16:00

    18:00

    120

    编写代码

    缺陷记录日志

    学生:陈美琪

    日期:2017/12/6

    教师:王建民

    程序号:03

    日期

    编号

    引入阶段

    排除阶段

    修复时间

    2017/12/6

    1

    设计

    运行

    1min

    描述:欢迎界面设计成为了表格形式。

    2

    编码

    运行

    30min

    描述:生成的算式不符合要求的范围

  • 相关阅读:
    redis缓存分页数据ID
    Kafka学习之(六)搭建kafka集群
    高并发下,php使用uniqid函数生成唯一标识符的四种方案(本博客也有雪花算法的方式,在【算法组】)
    Kafka学习之(五)搭建kafka集群之Zookeeper集群搭建
    Centos 更改系统时间
    Js删除字符串中的指定字符串
    Jquery 给Js动态新添加的元素 绑定的点击事件
    PHP 常用的header头部定义汇总
    来了解一下Ajax是什么?Ajax的原理?Ajax与传统Web比较?Ajax的优缺点?Ajax的Post与Get比较
    phpstorm常用快捷键(自备不全)
  • 原文地址:https://www.cnblogs.com/qilin20/p/7994345.html
Copyright © 2011-2022 走看看