zoukankan      html  css  js  c++  java
  • 四则运算2(持续更新)

    1.程序设计思想

    (1)      首先绘制一个界面,里面含有出题个数、出题范围、答题时间的输入框,含有提交按钮;

    (2)      写一个传递这三个参数的jsp文件,获取这三个参数,然后跳转到整数这个页面;

    (3)      创建一个整数jsp,在这个页面中写一个类,在这个类中产生四则运算表达式、获取表达式答案、判断是否有重复的表达式、获取运算符四个方法。然后写主函数,产生要求个数的表达式,显示出来,同时计时,时间结束后停止答题,跳转到获取页面;

    (4)      获取页面中将所有计算式、正确答案、使用者输入的答案都显示出来,并显示出使用者答案正确的题号和错误题号。

    2.源程序代码

    zhujiemian.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>Insert title here</title>
    <style type="text/css">
    body 
    {
        background-image: url(huoqu1.jpg);
    }
    </style>
    </head>
    <body>
        <form id="form2" name="form2" method="post" action="chuandi.jsp">
        <div style="text-align:center;color:#F09">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        请输入出题的个数:<input name="geshu" type="text" value=""/><br /><br/>
        请选择出题的范围:<input name="fanwei" type="text" value=""/><br/><br/>
        请选择答题时间:<input name="shijian" type="text" value=""/><br/><br/>
        <input name="" type="submit" value="提交" />
        </div>
        </form>
    </body>
    </html>

    chuandi.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>Insert title here</title>
    <style type="text/css">
    body 
    {
        background-image: url(huoqu1.jpg);
    }
    </style>
    </head>
    <body>
    <%
    try
    {
        int tishu=Integer.parseInt(request.getParameter("geshu"));
        int fanwei=Integer.parseInt(request.getParameter("fanwei"));
        int shijian=Integer.parseInt(request.getParameter("shijian"));
        session.setAttribute("tishu", tishu);
        session.setAttribute("fanwei", fanwei);
        session.setAttribute("shijian", shijian);
        response.setHeader("refresh","0;url = zhengshu.jsp");
    }
    catch(Exception e)
    {
        %>
        <script type="text/javascript">
        alert("输入错误,点击确定返回重新输入!!!")
        </script>
        <%
        response.setHeader("refresh","0;url = error.jsp");
    }
    %>
    </body>
    </html>

    zhengshu.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.util.Random" 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">
    <%  
    String path = request.getContextPath();  
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
    %>  
      
    <%   
          String url = basePath;   //设置跳转的地址  
    %>
    <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(huoqu1.jpg); 
    }
    </style>
    </head>
    <body>
     <h2 style=color:red><span id=jump>10</span> 秒钟答题结束</h2> 
    <%!
    class Suan1//生成整数计算的类
    {
        private int x;
        private int y;
        private int operate;//定义两个变量,还有一个符号变量
        public Random random=new Random();//定义随机数
        private String jisuanshi;//生成的计算式储存在jisuanshi里面
        int fanwei;
        public String shengcheng(int fanwei1)//自动生成数的函数
        {
             fanwei=fanwei1;
             operate=random.nextInt(4);//生成符号
             String fuhao;
            x=random.nextInt(fanwei);//生成100以内的自然数
             y=random.nextInt(fanwei);
             if(operate==0)//0是加法
             {
                 fuhao="+";
                 jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y);
                 
             }
             else if(operate==1)//1是减法
             {
                 fuhao="-";
                 if(x>=y)
                 {
                     jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y);
                 }
                 else
                 {
                     jisuanshi=String.valueOf(y)+fuhao+String.valueOf(x);
                 }
             }
             else if(operate==2)//乘法
             {
                 fuhao="*";
                 x=random.nextInt(10);//生成10以内的自然数
                 y=random.nextInt(10);
                 jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y);
             }
             else
             {
                 fuhao="/";//除法
                 x=random.nextInt(10);
                 y=random.nextInt(10);
                 int z=x*y;
                 for(int i=0;;i++)
                 {
                     if(y==0)
                     {
                         x=random.nextInt(10);
                         y=random.nextInt(10);
                         z=x*y;
                     }
                     else
                     {
                         break;
                     }
                 }
                 x=z;
                 jisuanshi=String.valueOf(x)+fuhao+String.valueOf(y);
             }
             return jisuanshi;
             
        }
        public String shuchu()//定义输出函数
        {
            if(operate==0)
            {
                return (String.valueOf(x+y));//并且返回计算的结果
            }
            else if(operate==1)
            {
                if(x>=y)//将较大的数放在前面,不能出现负数
                {
                    return (String.valueOf(x-y));
                }
                else
                {
                    return (String.valueOf(y-x));
                }
            }
            else if(operate==2)
            {
                return (String.valueOf(x*y));
            }
            else
            {
                    return (String.valueOf(x/y));
                
            }
        }
        public int fanhuioperate()
        {
            return operate;
        }
        public int jianyan(String a[],int s)//检验是否有重复的式子,如果有返回0,没有就返回1
        {
           int flag=1;
           for(int i=0;i<s;i++)
           {
               if(jisuanshi.equals(a[i]))//数组a里面是生成的式子
               {
                  flag=0;
                  break;
               }
           }
           return flag;
        }
    }
    int tishu;
    int fanwei;
    int m=0;
    String shuju[]=new String[10000]; 
    int flag=0;
    Suan1 a=new Suan1();
    String daan,daan1;
    String zhengque="",cuowu="";
    %>
    <%
    tishu=Integer.parseInt((String.valueOf(session.getAttribute("tishu"))));
    fanwei=Integer.parseInt((String.valueOf(session.getAttribute("fanwei"))));
    session.setAttribute("tishu", tishu);
    if(m<tishu)//生成计算式
    {
        shuju[m]=a.shengcheng(fanwei);//将生成的计算式储存在数组里面
        flag=a.jianyan(shuju, m);//返回是否有重复
        if(flag==1)//如果没有就是1
        {
        if(m+1==tishu)
        {daan=a.shuchu();
        session.setAttribute("shuju", shuju[m]);
        session.setAttribute("daan", daan);
        session.setAttribute("m", m);
            %>
        <form id="form2" name="form2" method="post" action="huoqu.jsp">
        <div style="text-align:center">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <%out.print(shuju[m]+"=");
       %>
        <br>
        <br>
        <br>
        <br>
        请输入答案:<input name="daan1" type="text" value=""/><br /><br/>
        <input name="" type="submit" value="提交" />
        </div>
        </form>
            <%
        }
        else
        {
            daan=a.shuchu();
            session.setAttribute("shuju", shuju[m]);
            session.setAttribute("daan", daan);
            session.setAttribute("m", m);
            %>
        <form id="form2" name="form2" method="post" action="huoqu.jsp">
        <div style="text-align:center">
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <br>
        <%out.print(shuju[m]+"=");%>
        <br>
        <br>
        <br>
        <br>
        请输入答案:<input name="daan1" type="text" value=""/><br /><br/>
        <input name="" type="submit" value="下一个" />
        </div>
        </form>
            <%
            m++;
            flag=0;
        }
        
        }
        else
        {
            response.setHeader("refresh","1;url = zhengshu.jsp");
        }
    }
    %>
    
    
    </body>
    <script>  
                 function countDown(secs){  
                           jump.innerText=secs;  
                           if(--secs>0)  
                                    setTimeout("countDown("+secs+" )",1000);  
                 }  
                 countDown(10);        
                function jumpToIndex(){  
                    window.location.href='<%=url %>';  
                }  
           </script>  
    </html>

    huoqu.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" import="java.sql.Connection" import="java.sql.DriverManager" 
        import="java.sql.PreparedStatement" import ="java.sql.ResultSet"
        import="java.util.ArrayList" import="java.util.List"
        import="java.sql.SQLException"%>
    <!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(huoqu1.jpg);
    }
    </style>
    </head>
    <body>
    <%!
    int tishu1;
    String error="",zhengque=""; 
    %>
    <%
    try
    {
        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();
        String shuju=String.valueOf(session.getAttribute("shuju"));
       String daan=String.valueOf(session.getAttribute("daan"));
      // String shuju=(String)session.getAttribute("shuju");
      // String daan=(String)session.getAttribute("daan");
        int m=Integer.parseInt(String.valueOf(session.getAttribute("m")));
        tishu1=Integer.parseInt((String.valueOf(session.getAttribute("tishu"))));
        String daan1=request.getParameter("daan1");
        String sql="INSERT INTO grade (shizi,result,userresult) VALUES ('"+shuju+" = "+"','"+daan+"','"+daan1+"')";
        stmt.executeUpdate(sql);
        if(daan.equals(daan1))
        {
            zhengque=zhengque+String.valueOf(m+1)+",";
        }
        else
        {
            error=error+String.valueOf(m+1)+",";
       }
       if(m+1==tishu1)
       {
        sql="INSERT INTO Grade (zhengque,cuowu) VALUES ('"+zhengque+"','"+error+"')";
        stmt.executeUpdate(sql);             
        %>
        <form id="form2" name="form2" method="post" action="xuanze.html">
           <div style="text-align:center;color:#F00">
           <strong>
           <br>
      
      
           <%
           class User{
               private String result;
                  private String userresult;
               private String shizi;
                public String getShizi() {
                    return shizi;
                }
                public void setShizi(String shizi) {
                    this.shizi = shizi;
                }
                public String getResult() {
                    return result;
                }
                public void setResult(String result) {
                    this.result = result;
                }
                public String getUserresult() {
                    return userresult;
                }
                public void setUserresult(String userresult) {
                    this.userresult = userresult;
                }
                
           }
           
           
        
    
               //准备sql语句
            sql = "select * from grade ";
               //创建语句传输对象
               PreparedStatement preparedStatement = null;
               ResultSet resultSet = null;
               //集合中只能放入user对象
               List<User> users = new ArrayList<User>();
               User user = null;
               try {
                   preparedStatement = con.prepareStatement(sql);
                   resultSet = preparedStatement.executeQuery();
                   while(resultSet.next()) {
                       user = new User();
                       user.setShizi(resultSet.getString("Shizi"));
                       user.setResult(resultSet.getString("result"));
                       user.setUserresult(resultSet.getString("userresult"));
                       users.add(user);
                   }
               } catch (SQLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
               }
               /*finally {
                   DBUtil.close(resultSet);
                   DBUtil.close(preparedStatement);
                   DBUtil.close(con);
               }*/
           for(  User user1 : users ){ 
           %>    
           <br>
           <tr>
                <td> <%=user1.getShizi() %></td>
                <td> <%=user1.getResult() %></td>
                <td> <%=user1.getUserresult() %></td>
                <br>    
                <%
           }
                %>
           <% out.print("<br>"+"正确的题目是:"+zhengque+"<br>"+"错误的题目是:"+error+"<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.编程总结分析

    当我不动手做的时候,我觉得太难,自己肯定不会,但是当我真正被逼到没有选择的时候,我一点一点写,一点一点查资料,直到我写完的时候,我才发现,不是我写不出来,而是我不敢写,对它有很深的恐惧感,而且我发现我应该逼一逼自己,不能太过安逸。

  • 相关阅读:
    第十三周总结
    第十二周作业
    第十一周课程总结
    第十周课程总结
    第九周课程总结&实验报告(七)
    第八周课程总结&实验报告(六)
    第七周课程总结&实验报告(五)
    第六周&java实验报告四
    课程总结
    第二周课程总结
  • 原文地址:https://www.cnblogs.com/wxd136/p/7994565.html
Copyright © 2011-2022 走看看