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

    1》设计思路

    1.首先编写一个input.jsp页面,用于输入各种参数,如出题的个数和数值上限,简单运算还是混合运算

    2.编写index.jsp页面,用request接受input.jsp的参数,如果是简单运算,就是执行第一种算法,只出两个数的题,每出一题,输入一次答案,最后将输入答案,运算式和正确答案存到字符串中,而复杂运算则执行第二种算法,产生复杂运算式,也是每出一道题,输入一次答案,然后将运算式,输入答案和正确答案存到字符串中(其中产生算式和计算答案的方法和原来的普通四则运算一样)
    3.编写Result.jsp,用session和request接收运算式,输入答案和正确答案,如果输入答案和正确答案相同,就答对了,正确题目数目加1,否则就打错了,最后输出正确题目数目
     
    2》程序源代码
    input.jsp
     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     7 <title>首页</title>
     8 </head>
     9 <body background="image/beijing1.jpg">
    10 <form name="form1" method="post"action="index.jsp">
    11 <center>小学生的四则运算</center>
    12 <table align="center">
    13 <tr>
    14   <td>  请输入要出题的题目数量:  </td>
    15   <td> <input name="shuliang" type="text" id="shuliang"maxlength="5"></td>
    16 </tr>
    17 <tr>
    18    <td>
    19                    请输入要出题范围(1~?):
    20    </td>
    21     <td>
    22       <input name="fanwei" type="text" id="fanwei"maxlength="5">
    23     </td>
    24 </tr>
    25 <tr>
    26     <td>请选择计算的类型:
    27     </td>
    28     <td>
    29         <select name="leixing">
    30             <option value=0>简单运算</option>
    31             <option value=1>混合运算</option>
    32         </select>
    33     </td>
    34 </tr>
    35 </table>
    36     <center><input type="submit"value="开始答题"></center>
    37 </form>
    38 </body>
    39 </html>


    index.jsp

     
      1 <%@ page language="java" contentType="text/html; charset=utf-8"
      2     pageEncoding="utf-8"%>
      3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
      4 <html>
      5 <head>
      6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      7 <title>Insert title here</title>
      8 </head>
      9 <body background="image/beijing2.jpg">
     10  <%
     11 String leixing=request.getParameter("leixing");
     12 if(Integer.parseInt(leixing)==0)
     13 {
     14  %>
     15  
     16 <% 
     17   
     18   int answer; //题目的答案
     19   String j=request.getParameter("shuliang");//运算式的数量
     20   int shuliang= Integer.valueOf(j);
     21   String[] str=new String[shuliang];//用于连接输出字符
     22   String[] daan=new String[shuliang];//输入的答案
     23   String[] answer1=new String[shuliang]; //正确答案
     24   String j1=request.getParameter("fanwei");//数值范围
     25   int fanwei=Integer.valueOf(j1);
     26   for(int i=0;i<shuliang;i++)
     27   {
     28       daan[i]="name"+i;
     29     //生成0-100之间的随机数
     30     int num1=(int)(Math.random()*fanwei+1);
     31     int num2=(int)(Math.random()*fanwei+1);
     32     int fuhao= (int)(Math.random()*4);
     33     if(fuhao==0)
     34     {
     35         str[i]=num1+"+"+num2+"=";
     36         answer=num1+num2;
     37     }
     38     else if(fuhao==1)
     39     {
     40         str[i]=num1+"-"+num2+"=";
     41         answer=num1-num2;
     42     }
     43     else if(fuhao==2)
     44     {
     45         str[i]=num1+"*"+num2+"=";
     46         answer=num1*num2;
     47     }
     48     else
     49     {
     50         str[i]=num1+"/"+num2+"=";
     51         answer=num1/num2;
     52     }
     53    
     54     answer1[i]=""+answer;
     55     out.print(str[i]);
     56     
     57     
     58 %> 
     59 <br>
     60 <form name="form2"method="post"action="Result.jsp">
     61  请输入你的答案:<input name="<%=daan[i] %>" type="text" id="daan"maxlength="5">
     62  <br>
     63 
     64 <%
     65   }
     66 %>
     67 <%
     68     session.setAttribute("v1",str);
     69     session.setAttribute("v2",answer1);
     70 %>
     71 <input type="submit"value="确定">
     72 </form>  
     73 <%
     74 }
     75 %>
     76 
     77 <%
     78     if(Integer.parseInt(leixing)==1)
     79     {
     80         int answer; //题目的答案
     81         String j=request.getParameter("shuliang");//运算式的数量
     82         int shuliang= Integer.valueOf(j);
     83         String[] str=new String[shuliang];//用于连接输出字符
     84         String[] daan=new String[shuliang];//输入的答案
     85         String[] answer1=new String[shuliang]; //正确答案
     86         String j1=request.getParameter("fanwei");//数值范围
     87         int fanwei=Integer.valueOf(j1);
     88         
     89         for(int i=0;i<shuliang;i++)
     90         {
     91             daan[i]="name"+i;
     92             str[i]=""+(int)((Math.random()*fanwei)+1); //随机产生第一个数
     93             int num=(int)(Math.random()*3+2);
     94             int jisuan[]=new int[num+1];//用于保存中间结果
     95             jisuan[0]=Integer.parseInt(str[i]);
     96             char yunsuanfu[]=new char[num+1];
     97             for(int l=1;l<num;l++)
     98             {
     99                 int fuhao= (int)(Math.random()*4);//随机产生符号
    100                 int num2=(int)(Math.random()*fanwei+1);
    101                 jisuan[l]=num2;
    102                 if(fuhao==0)
    103                 {
    104                     str[i]+="+"+num2;
    105                     yunsuanfu[l]='+';
    106                 }
    107                 if(fuhao==1)
    108                 {
    109                     str[i]+="-"+num2;
    110                     yunsuanfu[l]='-';
    111                 }
    112                 if(fuhao==2)
    113                 {
    114                     str[i]+="*"+num2;
    115                     yunsuanfu[l]='*';
    116                 }
    117                 if(fuhao==3)
    118                 {
    119                     str[i]+="/"+num2;
    120                     yunsuanfu[l]='/';
    121                 }
    122             }
    123             out.print(str[i]+"<br>");
    124             for(int l=1;l<num;l++)
    125             {
    126                 if(yunsuanfu[l]=='*')
    127                 {
    128                     jisuan[l]=jisuan[l-1]*jisuan[l];
    129                     jisuan[l-1]=0;
    130                     yunsuanfu[l]=yunsuanfu[l-1];
    131                 }
    132                 else if(yunsuanfu[l]=='/')
    133                 {
    134                     jisuan[l]=jisuan[l-1]/jisuan[l];
    135                     jisuan[l]=0;
    136                     yunsuanfu[l]=yunsuanfu[l-1];
    137                 }
    138             }
    139             for(int l=1;l<num;l++)
    140             {
    141                 if(yunsuanfu[l]=='+')
    142                 {
    143                     jisuan[l]=jisuan[l-1]+jisuan[l];
    144                     jisuan[l-1]=0;
    145                 }
    146                 else if(yunsuanfu[l]=='-')
    147                 {
    148                     jisuan[l]=jisuan[l-1]-jisuan[l];
    149                     jisuan[l-1]=0;
    150                 }
    151             }
    152             answer1[i]=""+jisuan[num-1];
    153 %>
    154 <br>
    155 <form name="form2"method="post"action="Result.jsp">
    156  请输入你的答案:<input name="<%=daan[i] %>" type="text" id="daan"maxlength="5">
    157  <br>
    158  <%
    159      }
    160 %>
    161 <%
    162     session.setAttribute("v1",str);
    163    session.setAttribute("v2",answer1);
    164 %>
    165 <input type="submit"value="确定">
    166 </form>  
    167 <%    
    168     }
    169 %>
    170 
    171  <table>
    172  <tr>
    173      <td><img src="image/gougou.jpg"width="70"height ="74"></td> 
    174      <td>书山有路勤为径,学海无涯苦作舟!</td>    
    175  </tr>
    176  </table>
    177 </body>
    178 </html>

    Result.jsp

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     4 <html>
     5 <head>
     6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     7 <title>结果</title>
     8 </head>
     9 <body background="image/beijing3.jpg">
    10 <%
    11     String[] s= (String[])session.getAttribute("v1");
    12     String[] answer= (String[])session.getAttribute("v2");
    13     String[] daan=new String[s.length];
    14     int count=0;//正确答案的个数
    15     for(int i=0;i<s.length;i++)
    16     {
    17         out.print("运算式为:");
    18         out.print(s[i]+"  ");
    19         out.print("您的输入结果为:");
    20         daan[i]=request.getParameter("name"+i);
    21         out.print(daan[i]+"   ");
    22          out.print("正确结果为:");
    23         out.print(answer[i]);
    24         if(Integer.parseInt(daan[i])==Integer.parseInt(answer[i]))
    25         {
    26             out.print("恭喜你答对了!");
    27             count++;
    28         }
    29         else
    30         {
    31             out.print("很遗憾,你打错了!");
    32         }
    33         out.print("<br>");
    34     }
    35     out.print("你一共答对的题目数:");
    36     out.print(count);
    37 %>
    38 </body>
    39 </html>

    3》结果截图:

    总结:因为时间的因素,还有对知识掌握的还不太熟练,所以一些功能还没实现,不过我课下会积极努力完成功能,进行完善,这只是初期版

  • 相关阅读:
    2015年终总结
    mmzb游戏事故分析
    为sproto手写了一个python parser
    Lua小技巧
    Techparty-广州 10 月 31 日 Docker 专场沙龙 后记
    1password密码库格式更新
    SSL加密与系统时间
    webpack的学习使用三
    webpack的学习使用二
    webpack的学习使用一
  • 原文地址:https://www.cnblogs.com/sz20142898/p/5384661.html
Copyright © 2011-2022 走看看