四则运算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》结果截图:

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

posted on 2016-04-12 21:58  那年夏天123  阅读(289)  评论(0编辑  收藏  举报

导航