一、程序设计思想:
这只是初期的想法:操作选择界面 Welcome.jsp,用户可选择出题的操作元数:二元和三元,及题目的相关数目,在Entry.jsp页面中放置出题页面内容,通过用户在上一页面选择的相关参数,来确定出题页面的内容,如二元三元的数目,根据数目生成相关题的信息,在Show.jsp中展示答题情况,用户答题的正确数量,和错误的题的正确答案。因为这是针对小学二年级的学生体验的答题页面,应该考虑到孩子们的体验舒适感,所以页面应较好玩点,下面程序并非完整开发的程序代码,还有一定的改正时间去完善。现在仅简单实现,计时功能正在改善。显示界面仅导入了二元操作。
二、源程序代码:
Welcome.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> </head> <body> <script type="text/javascript"> function getValue(value) {alert(value);} </script> <body background="D:image3.jpg"/> <!-- <embed src="D:dad.mp3" loop="11" autostar="true" hidden="false"/> --> <form action="Entry.jsp" method="get.jsp"> <h2 align="center">四则运算</h2> <table align="center" border="1" width="500"> <td>请选择二元运算的出题数目</td> <td><SELECT NAME="operationNumber1" id="number1" SIZE="1"> <OPTION VALUE="10">系统默认(10道题)</OPTION> <OPTION VALUE="0">0</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="40">40</OPTION> <OPTION VALUE="50">50</OPTION> <OPTION VALUE="60">60</OPTION> <OPTION VALUE="70">70</OPTION> <OPTION VALUE="80">80</OPTION> </SELECT> </td> <tr> <td>请选择三元运算的出题数目</td> <td><SELECT NAME="operationNumber2" id="number2" SIZE="1"> <OPTION VALUE="10">系统默认 (10道题)</OPTION> <OPTION VALUE="0">0</OPTION> <OPTION VALUE="20">20</OPTION> <OPTION VALUE="40">40</OPTION> <OPTION VALUE="50">50</OPTION> <OPTION VALUE="60">60</OPTION> <OPTION VALUE="70">70</OPTION> <OPTION VALUE="80">80</OPTION> </SELECT> </td> </tr> <tr> <td>请选择学习时间: <SELECT NAME="Endtime" id="Endtime" SIZE="1"> <OPTION VALUE="0">系统默认</OPTION> <OPTION VALUE="1">30分钟</OPTION> <OPTION VALUE="2">60分钟 </OPTION> </SELECT> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="开始答题了" /> <input type="reset" value="重置" /> </td> </tr> </table> </body> </html>
Entry.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import=" java.util.*"%> <!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> </head> <body> <form action="Show.jsp" method="get.jsp"> <body background="D:image3.jpg"/> <h4 align="center" >欢迎小朋友来到答题界面</h4> <table align="center" border="0" width="500"> <% int n1=Integer.parseInt((request.getParameter("operationNumber1"))); int n2=Integer.parseInt((request.getParameter("operationNumber2"))); int time=Integer.parseInt((request.getParameter("Endtime"))); Scanner in=new Scanner(System.in); if(n1!=0) { session.setAttribute("length1", n1); int number1[]=new int[n1]; int number2[]=new int[n1]; int Result[]=new int[n1]; int temp=0; String optr[]=new String[n1]; for(int i=0;i<number1.length;i++) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); } for(int i=0;i<n1;i++) { int j=(int)(Math.random()*4+1); if(j==1) { optr[i]="+"; } else if(j==2) { optr[i]="-"; } else if(j==3) { optr[i]="×"; } else { optr[i]="÷"; } } for(int i=0;i<number1.length;i++) { if(number1[i]==number2[i]) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); } if(number1[i]<number2[i]) { temp=number2[i]; number2[i]=number1[i]; number1[i]=temp; } if(optr[i].contentEquals("+")) { while(number1[i]+number2[i]>100) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); } } if(optr[i].contentEquals("÷")) { while(number1[i]%number2[i]!=0) { number1[i]=(int)(Math.random()*81+1); number2[i]=(int)(Math.random()*9+1); } } if(optr[i].contentEquals("×")) { while(number1[i]*number2[i]>81) { number1[i]=(int)(Math.random()*9+1); number2[i]=(int)(Math.random()*9+1); } } %> <tr align="center"> <td><%=number1[i]%> <%=optr[i]%> <%=number2[i] %> = <input type="text" name="jie<%=i %>" value=" " /> </td> </tr> <% if(optr[i]=="+") { Result[i]=number1[i]+number2[i]; } else if(optr[i]=="-") { Result[i]=number1[i]-number2[i]; } else if(optr[i]=="×") { Result[i]=number1[i]*number2[i]; } else { Result[i]=number1[i]/number2[i]; } session.setAttribute("Result"+i,Result[i]+""); session.setAttribute("result"+i,number1[i]+optr[i]+number2[i]+"="); } } if(n2!=0) { session.setAttribute("length2", n2); int number1[]=new int[n2]; int number2[]=new int[n2]; int number3[]=new int[n2]; int temp=0; String optr1[]=new String[n2]; String optr2[]=new String[n2]; for(int i=0;i<n2;i++) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); } for(int i=0;i<n2;i++) { int j=(int)(Math.random()*4+1); int k=(int)(Math.random()*4+1); if(j==1) { optr1[i]="+"; if(k==1) { optr2[i]="+"; } else if(k==2) { optr2[i]="-"; } else if(k==3) { optr2[i]="×"; } else { optr2[i]="÷"; } } else if(j==2) { optr1[i]="-"; if(k==1) { optr2[i]="+"; } else if(k==2) { optr2[i]="-"; } else if(k==3) { optr2[i]="×"; } else { optr2[i]="÷"; } } else if(j==3) { optr1[i]="×"; if(k==1) { optr2[i]="+"; } else if(k==2) { optr2[i]="-"; } else if(k==3) { optr2[i]="×"; } else { optr2[i]="÷"; } } else { optr1[i]="÷"; if(k==1) { optr2[i]="+"; } else if(k==2) { optr2[i]="-"; } else if(k==3) { optr2[i]="×"; } else { optr2[i]="÷"; } } } for(int i=0;i<n2;i++) { do { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); }while(number1[i]==number2[i]&&number1[i]==number3[i]&&number2[i]==number3[3]); if(optr1[i].contentEquals("+")) { if(optr2[i].contentEquals("+")) { while(number1[i]+number2[i]+number3[i]>100) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); } } if(optr2[i].contentEquals("-")) { while(number1[i]+number2[i]>100) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); int result=number1[i]+number2[i]-number3[i]; while(result>100||result<0) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("×")) { while(number2[i]*number3[i]>100) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); if(number1[i]+number2[i]*number3[i]>100) { number1[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("÷")) { while(number2[i]%number3[i]!=0) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); if(number1[i]+number2[i]/number3[i]>100) { number1[i]=(int)(Math.random()*100+1); } } } } if(optr1[i].contentEquals("-")) { if(optr2[i].contentEquals("+")) { while(number1[i]-number2[i]<0) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); while(number1[i]-number2[i]+number3[i]>100) { number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("-")) { while(number1[i]-number2[i]<0) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); while(number1[i]-number2[i]-number3[i]<0) { number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("×")) { while(number2[i]*number3[i]>100) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); while(number1[i]-number2[i]*number3[i]>100) { number1[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("÷")) { while(number2[i]%number3[i]!=0) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); while(number1[i]-number2[i]/number3[i]>100) { number1[i]=(int)(Math.random()*100+1); } } } } if(optr1[i].contentEquals("×")) { if(optr2[i].contentEquals("+")) { while(number1[i]*number2[i]+number3[i]>100) { number1[i]=(int)(Math.random()*9+1); number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); } } if(optr2[i].contentEquals("-")) { while(number1[i]*number2[i]>100) { number1[i]=(int)(Math.random()*9+1); number2[i]=(int)(Math.random()*9+1); int result=number1[i]*number2[i]-number3[i]; while(result>100||result<0) { number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("×")) { while(number2[i]*number3[i]*number3[i]>100) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); number1[i]=(int)(Math.random()*9+1); } } if(optr2[i].contentEquals("÷")) { while(number1[i]*number2[i]>100) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); while((number1[i]*number2[i])%number3[i]!=0) { number1[i]=(int)(Math.random()*9+1); } } } } if(optr1[i].contentEquals("÷")) { if(optr2[i].contentEquals("+")) { while(number1[i]%number2[i]!=0) { number1[i]=(int)(Math.random()*81+1); number2[i]=(int)(Math.random()*9+1); while(number1[i]/number2[i]+number3[i]>100) { number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("-")) { while(number1[i]%number2[i]!=0) { number1[i]=(int)(Math.random()*81+1); number2[i]=(int)(Math.random()*9+1); while(number1[i]/number2[i]-number3[i]>100) { number3[i]=(int)(Math.random()*100+1); } } } if(optr2[i].contentEquals("×")) { while(number1[i]%number2[i]!=0) { number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); while(number1[i]/number2[i]*number3[i]>100) { number1[i]=(int)(Math.random()*81+1); } } } if(optr2[i].contentEquals("÷")) { while(number1[i]%number2[i]!=0) { number1[i]=(int)(Math.random()*81+1); number2[i]=(int)(Math.random()*9+1); while((number1[i]/number2[i])%number3[i]!=0) { number3[i]=(int)(Math.random()*9+1); } } } } /*if(number1[i]<number2[i]) { temp=number2[i]; number2[i]=number1[i]; number1[i]=temp; if(number1[i]<number3[i]) { temp=number3[i]; number3[i]=number1[i]; number1[i]=temp; } if(number1[i]<(number2[i]+number3[i])) { while(number1[i]<(number2[i]+number3[i])) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); } } } if(optr1[i].contentEquals("+")&&optr2[i].contentEquals("+")) { while(number1[i]+number2[i]+number3[i]>100) { number1[i]=(int)(Math.random()*100+1); number2[i]=(int)(Math.random()*100+1); number3[i]=(int)(Math.random()*100+1); } } if(optr1[i].contentEquals("÷")&&optr2[i].contentEquals("÷")) { while(((number1[i]%number2[i])!=0)) { number1[i]=(int)(Math.random()*81+1); number2[i]=(int)(Math.random()*81+1); number3[i]=(int)(Math.random()*81+1); } } if(optr1[i].contentEquals("×")&&optr2[i].contentEquals("×")) { while(number1[i]*number2[i]*number3[i]>81) { number1[i]=(int)(Math.random()*9+1); number2[i]=(int)(Math.random()*9+1); number3[i]=(int)(Math.random()*9+1); } }*/ %> <tr align="center"> <td><%=number1[i]%> <%=optr1[i]%> <%=number2[i] %><%=optr2[i]%> <%=number3[i] %> = <input type="text" NAME="jie" value="" /> </td> </tr> <% } } %> <tr align="center"> <td colspan="1"> <input type="submit" value="提交答案" /> </td> </tr> </table> </body> </html>
Show.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> </head> <body> <table align="center" border="0" width="500"> <body background="D:image3.jpg"/> <% int n1=(int)session.getAttribute("length1"); int n2=(int)session.getAttribute("length2"); String result[]=new String[n1]; String Result[]=new String[n1]; String result_optr[]=new String[n1]; String signal[]=new String[n1]; for(int i=0;i<n1;i++) { result_optr[i]=request.getParameter("jie"+i);//输入答案 result[i]=(String)session.getAttribute("result"+i); Result[i]=(String)session.getAttribute("Result"+i);//正确答案 } %> <% for(int i=0;i<n1;i++) { System.out.println(result_optr[i]); System.out.println(Result[i]); if(Result[i].equals((result_optr[i]).trim())) { signal[i]="√"; } else { signal[i]="×"; } %> <tr> <td> <%=result[i]%><%=result_optr[i]%> <%=signal[i]%> 答案:<%=Result[i]%> <% %> </td> <% }%> </body> </html>
三、结果截图: