四则运算2

1设计思想

本题四则运算需要满足加减法在100以内,乘除法满足九九运算表,使用java文件判断是否满足加减法条件,利用JavaScript计时器来计时。
2源程序代码
仅写java及jsp文件
1 package com.sizeuser.msg.calculate;
2 public interface Calculate {
3 public int add(int add1,int add2);
4 public int subtraction(int subtract1,int subtract2);
5 public int multiply(int multiply1,int multiply2);
6 public int divid(int dividend,int divid);
7 }
Calculate.java
 1 package com.sizeuser.msg.calculate;
 2 
 3 import java.util.Random;
 4 
 5 import org.apache.jasper.tagplugins.jstl.core.Out;
 6 
 7 import com.sun.org.apache.bcel.internal.generic.ReturnaddressType;
 8 
 9 public class CalculateImpl implements Calculate{
10     static Random random=new Random();
11     @Override
12     public int add(int add1, int add2) {
13         int sum;
14         if(add1+add2<=100&&add1+add2>0)
15         {
16             sum=add1+add2;
17             return sum;
18         }
19         return 0;
20     }
21     @Override
22     public int subtraction(int subtract1, int subtract2) {
23         int sum;
24         if(subtract1-subtract2>0)
25         {
26             sum=subtract1-subtract2;
27             return sum;
28         }
29         return 0;
30     }
31     @Override
32     public int multiply(int multiply1, int multiply2) {
33         if(multiply1>0&&multiply1<=9&&multiply2>0&&multiply2<=9)
34         {
35         return multiply1*multiply2;
36         }
37         return 0;
38     }
39     @Override
40     public int divid(int dividend, int divid) {
41         if (dividend>0&&dividend<=81&&divid>0&&divid<=9&&dividend%divid==0&&dividend/divid>0&&dividend/divid<9) 
42         {
43             return dividend/divid;
44         }
45         return 0;
46     }
47 
48    public static void main(String []args)
49    {
50        
51    }
52 }
CalculateImpl .java
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <script type="text/javascript">
 7 var t;
 8 var c=0;
 9 //全局变量
10 function timedCount()
11 {
12 
13     document.getElementById("num").style.display="none";
14     document.getElementById("jishi").style.display="none";
15     var txtobj=document.getElementById("num");
16     var sum=parseInt(txtobj.value)*60;
17     var sum1=sum-c;
18     //
19     var hour=parseInt(sum1/3600);
20     var    minute=parseInt(sum1/60%60);
21     if(minute==60||minute<1)
22         minute=0;
23     var lastsecs=parseInt(sum1%60);
24     lastsecs=lastsecs<10?'0'+lastsecs:lastsecs;
25     minute=minute<10?'0'+minute:minute;
26     hour=hour<10?'0'+hour:hour;
27     c++;
28     document.getElementById("result").innerHTML=hour+":"+minute+":"+lastsecs;
29     t=setTimeout("timedCount()",1000);
30  if(sum1==0)
31  {
32     clearTimeout(t);
33     alert("时间到!");
34  }
35 }
36 </script>
37 </head>
38 <body>
39 <form>
40 
41 <input type = "text" id = "num" >
42 <input type="button" id="jishi" value="开始计时!/分" onClick="timedCount()">
43 <p id="result">
44 </p>
45 </form>
46 </body>
47 </html>
CountDown.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 你好
header
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <html>
 4 <%@include file="header.jsp" %>
 5 <hr>
 6 <form action="sanze.jsp" method="get">
 7 
 8 请输入混合运算的数量:<input type="text" name="num"/><br>
 9 请输入做题时间:<input type="text" name="time" /><br>
10 <input type="submit" value="提交" />
11 </form>
12 </html>
初始
  1 <%@page import="com.sizeuser.msg.calculate.CalculateImpl"%>
  2 <%@page import="com.sizeuser.msg.calculate.Calculate"%>
  3 <%@page import="java.util.Random"%>
  4 <%@ page language="java" contentType="text/html; charset=UTF-8"
  5     pageEncoding="UTF-8"%>
  6 <form action="show.jsp" method="get"/>
  7 <head>
  8 <%
  9 String time=request.getParameter("time");
 10 %>
 11 <script type="text/javascript">
 12 var t;
 13 var c=0;
 14 //全局变量
 15 function timedCount()
 16 {
 17     var txtobj=<%=time%>;
 18     var sum=parseInt(txtobj)*60;
 19     var sum1=sum-c;
 20     //
 21     var hour=parseInt(sum1/3600);
 22     var    minute=parseInt(sum1/60%60);
 23     if(minute==60||minute<1)
 24         minute=0;
 25     var lastsecs=parseInt(sum1%60);
 26     lastsecs=lastsecs<10?'0'+lastsecs:lastsecs;
 27     minute=minute<10?'0'+minute:minute;
 28     hour=hour<10?'0'+hour:hour;
 29     c++;
 30     document.getElementById("result").innerHTML=hour+":"+minute+":"+lastsecs;
 31     t=setTimeout("timedCount()",1000);
 32  if(sum1==0)
 33  {
 34     clearTimeout(t);
 35     alert("小朋友,答题时间结束了哦!");
 36     document.getElementById("anniu").click();
 37  }
 38 }
 39 </script>
 40 </head>
 41 <body onLoad="timedCount()";>
 42 <p id="result">
 43 </p>
 44 <%
 45  Random random=new Random();
 46 if(request.getParameter("num")==null||"".equals(request.getParameter("num")))
 47 {
 48 %>
 49     小朋友,你未选择题哦!
 50 <%
 51 }
 52 if(request.getParameter("time")==null||"".equals(request.getParameter("time")))
 53 {
 54     %>
 55     小朋友,你未选择时间哦!
 56 <%
 57 }
 58 else
 59 {
 60 int num=Integer.parseInt(request.getParameter("num"));
 61 session.setAttribute("num1", num);
 62 int i;
 63 Calculate calculateImpl=new CalculateImpl();
 64 int sum[]=new int[num];
 65 String shizi[]=new String [num];
 66 for(i=0;i<num;)
 67 {
 68     int add1=random.nextInt(100);
 69     int add2=random.nextInt(100);
 70     int add3=random.nextInt(100);
 71     int fuhao1=random.nextInt(4);
 72     int fuhao2=random.nextInt(4);
 73     if(fuhao1==0&&fuhao2==0)//0加号
 74     {
 75         if(calculateImpl.add(add2, add3)!=0&&calculateImpl.add(add1, calculateImpl.add(add2, add3))!=0)
 76         {
 77             out.print(add1+"+"+add2+"+"+add3+"=");
 78             shizi[i]=add1+"+"+add2+"+"+add3+"=";
 79             session.setAttribute("Shizi"+i, shizi[i]);
 80             sum[i]=calculateImpl.add(add1, calculateImpl.add(add2, add3));
 81             session.setAttribute("correct"+i, ""+sum[i]);
 82             %>
 83             <input type="text" name="answer<%=i%>">
 84             <br>
 85             <%
 86             i++;
 87         }
 88     }
 89     else if(fuhao1==1&&fuhao2==1)//1减号
 90     {
 91         if(calculateImpl.subtraction(add1, add2)!=0&&calculateImpl.subtraction(calculateImpl.subtraction(add1, add2), add3)!=0)
 92         {
 93             out.print(add1+"-"+add2+"-"+add3+"=");
 94             shizi[i]=add1+"-"+add2+"-"+add3+"=";
 95             session.setAttribute("Shizi"+i, shizi[i]);
 96             sum[i]=calculateImpl.subtraction(calculateImpl.subtraction(add1, add2), add3);
 97             session.setAttribute("correct"+i, ""+sum[i]);
 98             %>
 99             <input type="text" name="answer<%=i%>">
100             <br>
101             <%
102             i++;
103         }
104     }
105     else if(fuhao1==0&&fuhao2==1)//先加后减
106     {
107         if(calculateImpl.add(add1, add2)!=0&&calculateImpl.subtraction(calculateImpl.add(add1, add2), add3)!=0)
108         {
109             out.print(add1+"+"+add2+"-"+add3+"=");
110             shizi[i]=add1+"+"+add2+"-"+add3+"=";
111             session.setAttribute("Shizi"+i, shizi[i]);
112             sum[i]=calculateImpl.subtraction(calculateImpl.add(add1, add2), add3);
113             session.setAttribute("correct"+i, ""+sum[i]);
114             %>
115             <input type="text" name="answer<%=i%>">
116             <br>
117             <%
118             i++;
119         }
120     }
121     else if(fuhao1==1&&fuhao2==0)//先减后加
122     {
123         if(calculateImpl.subtraction(add1, add2)!=0&&calculateImpl.add(calculateImpl.subtraction(add1, add2), add3)!=0)
124         {
125             out.print(add1+"-"+add2+"+"+add3+"=");
126             shizi[i]=add1+"-"+add2+"+"+add3+"=";
127             session.setAttribute("Shizi"+i, shizi[i]);
128             sum[i]=calculateImpl.add(calculateImpl.subtraction(add1, add2), add3);
129             session.setAttribute("correct"+i, ""+sum[i]);
130             %>
131             <input type="text" name="answer<%=i%>">
132             <br>
133             <%
134             i++;
135         }
136     }
137     else if(fuhao1==2&&fuhao2==0)//先乘后加
138     {
139         if(calculateImpl.multiply(add1, add2)!=0&&calculateImpl.add(calculateImpl.multiply(add1, add2), add3)!=0)
140         {
141             out.print(add1+"×"+add2+"+"+add3+"=");
142             shizi[i]=add1+"×"+add2+"+"+add3+"=";
143             session.setAttribute("Shizi"+i, shizi[i]);
144             sum[i]=calculateImpl.add(calculateImpl.multiply(add1, add2), add3);
145             session.setAttribute("correct"+i, ""+sum[i]);
146             %>
147             <input type="text" name="answer<%=i%>">
148             <br>
149             <%
150             i++;
151         }
152     }
153     else if(fuhao1==0&&fuhao2==2)//先加后乘
154     {
155         if(calculateImpl.add(add1, add2)!=0&&calculateImpl.multiply(calculateImpl.add(add1, add2), add3)!=0)
156         {
157             out.print("("+add1+"+"+add2+""+add3+"=");
158             shizi[i]="("+add1+"+"+add2+""+add3+"=";
159             session.setAttribute("Shizi"+i, shizi[i]);
160             sum[i]=calculateImpl.multiply(calculateImpl.add(add1, add2), add3);
161             session.setAttribute("correct"+i, ""+sum[i]);
162             %>
163             <input type="text" name="answer<%=i%>">
164             <br>
165             <%
166             i++;
167         }
168     }
169     else if(fuhao1==2&&fuhao2==1)//先乘后减
170     {
171         if(calculateImpl.multiply(add1, add2)!=0&&calculateImpl.subtraction(calculateImpl.multiply(add1, add2), add3)!=0)
172         {
173             out.print(add1+"×"+add2+"-"+add3+"=");
174             shizi[i]=add1+"×"+add2+"-"+add3+"=";
175             session.setAttribute("Shizi"+i, shizi[i]);
176             sum[i]=calculateImpl.subtraction(calculateImpl.multiply(add1, add2), add3);
177             session.setAttribute("correct"+i, ""+sum[i]);
178             %>
179             <input type="text" name="answer<%=i%>">
180             <br>
181             <%
182             i++;
183         }
184     }
185     else if(fuhao1==1&&fuhao2==2)//先减后乘
186     {
187         if(calculateImpl.subtraction(add1, add2)!=0&&calculateImpl.multiply(calculateImpl.subtraction(add1, add2), add3)!=0)
188         {
189             out.print("("+add1+"-"+add2+""+add3+"=");
190             shizi[i]="("+add1+"-"+add2+""+add3+"=";
191             session.setAttribute("Shizi"+i, shizi[i]);
192             sum[i]=calculateImpl.multiply(calculateImpl.subtraction(add1, add2), add3);
193             session.setAttribute("correct"+i, ""+sum[i]);
194             %>
195             <input type="text" name="answer<%=i%>">
196             <br>
197             <%
198             i++;
199         }
200     }
201     else if(fuhao1==3&&fuhao2==0)//先除后加
202     {
203         if(calculateImpl.divid(add1, add2)!=0&&calculateImpl.add(calculateImpl.divid(add1, add2), add3)!=0)
204         {
205             out.print(add1+"÷"+add2+"+"+add3+"=");
206             shizi[i]=add1+"÷"+add2+"+"+add3+"=";
207             session.setAttribute("Shizi"+i, shizi[i]);
208             sum[i]=calculateImpl.add(calculateImpl.divid(add1, add2), add3);
209             session.setAttribute("correct"+i, ""+sum[i]);
210             %>
211             <input type="text" name="answer<%=i%>">
212             <br>
213             <%
214             i++;
215         }
216     }
217     else if(fuhao1==0&&fuhao2==3)//先加后除
218     {
219         if(calculateImpl.add(add1, add2)!=0&&calculateImpl.divid(calculateImpl.add(add1, add2), add3)!=0)
220         {
221             out.print("("+add1+"+"+add2+""+add3+"=");
222             shizi[i]="("+add1+"+"+add2+""+add3+"=";
223             session.setAttribute("Shizi"+i, shizi[i]);
224             sum[i]=calculateImpl.divid(calculateImpl.add(add1, add2), add3);
225             session.setAttribute("correct"+i, ""+sum[i]);
226             %>
227             <input type="text" name="answer<%=i%>">
228             <br>
229             <%
230             i++;
231         }
232     }
233     else if(fuhao1==1&&fuhao2==3)//先减后除
234     {
235         if(calculateImpl.subtraction(add1, add2)!=0&&calculateImpl.divid(calculateImpl.subtraction(add1, add2), add3)!=0)
236         {
237             out.print("("+add1+"-"+add2+""+add3+"=");
238             shizi[i]="("+add1+"-"+add2+""+add3+"=";
239             session.setAttribute("Shizi"+i, shizi[i]);
240             sum[i]=calculateImpl.divid(calculateImpl.subtraction(add1, add2), add3);
241             session.setAttribute("correct"+i, ""+sum[i]);
242             %>
243             <input type="text" name="answer<%=i%>">
244             <br>
245             <%
246             i++;
247         }
248     }
249     else if(fuhao1==3&&fuhao2==1)
250     {
251         if(calculateImpl.divid(add1, add2)!=0&&calculateImpl.subtraction(calculateImpl.divid(add1, add2), add3)!=0)
252         {
253             out.print(add1+"÷"+add2+"-"+add3+"=");
254             shizi[i]=add1+"÷"+add2+"-"+add3+"=";
255             session.setAttribute("Shizi"+i, shizi[i]);
256             sum[i]=calculateImpl.subtraction(calculateImpl.divid(add1, add2), add3);
257             session.setAttribute("correct"+i, ""+sum[i]);
258             %>
259             <input type="text" name="answer<%=i%>">
260             <br>
261             <%
262             i++;
263         }
264     }
265 }
266 %>
267 <input type="submit" value="我做完了" id="anniu"/>
268 <%
269 }
270 %>
271 </body>
sanze.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>
10 <%
11 int num=(int)session.getAttribute("num1");
12 if(num>0)
13 {
14 String shizi[]=new String[num];
15 String sum1[]=new String[num];
16 String answer[]=new String[num];
17 
18 int i;
19 for(i=0;i<num;i++)
20 {
21     if(session.getAttribute("correct"+i)==null)
22     {
23         System.out.println("");
24     }
25     shizi[i]=(String)session.getAttribute("Shizi"+i);
26     sum1[i]=(String)session.getAttribute("correct"+i);
27     answer[i]=(String)request.getParameter("answer"+i);//输入的数据
28     if(sum1[i]!=null&&answer[i]!=null&&sum1[i].equals(answer[i].trim()))
29     {
30         out.print(shizi[i]+answer[i]+"");
31         %>
32         <br>
33         <%
34     }
35     else
36     {
37         out.print(shizi[i]+answer[i]+"✘  正确答案为"+sum1[i]);
38         %>
39         <br>
40         <%
41     }
42 }
43 }
44 %>
45 </body>
46 </html>
show.jsp

3、程序结构截图

 5、程序代码总结

本博客仅满足题的基本操作,没有进行页面的美化。

1、页面直接跳转使用<body onLoad=" hanshu()";>

2、javaScript中赋值可以使用var a=<%=b%>将变量b的值赋给变量a。

3、输入框什么都不输为“”

4、第一次独立开发,做题效率较低,一些基础函数不会使用。

原文地址:https://www.cnblogs.com/watm/p/8011401.html