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 }
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&÷nd<=81&&divid>0&&divid<=9&÷nd%divid==0&÷nd/divid>0&÷nd/divid<9) 42 { 43 return dividend/divid; 44 } 45 return 0; 46 } 47 48 public static void main(String []args) 49 { 50 51 } 52 }
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>
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 你好
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>
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>
3、程序结构截图
5、程序代码总结
本博客仅满足题的基本操作,没有进行页面的美化。
1、页面直接跳转使用<body onLoad=" hanshu()";>
2、javaScript中赋值可以使用var a=<%=b%>将变量b的值赋给变量a。
3、输入框什么都不输为“”
4、第一次独立开发,做题效率较低,一些基础函数不会使用。