结对开发伙伴:杨程鑫
博客链接:http://www.cnblogs.com/shenshenxin
设计思路:主页进行用户自定义操作,然后把输入的参数传递到第二个页面进行题目显示,并提示用户进行结果输入,然后在第三个界面给出正确答案并判断对错,传递的参数利用session和request进行传输。
程序源代码:
NewFile.jsp文件
1 <%@ page language="java" contentType="text/html; charset=GBK" 2 pageEncoding="GBK"%> 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=GBK"> 7 <title>四则混合运算器</title> 8 <script> 9 function myFunction() 10 { 11 var x=document.getElementById("demo").value; 12 if(x==""||isNaN(x)) 13 { 14 alert("限制条件输入错误,请重新输入"); 15 } 16 } 17 </script> 18 </head> 19 <body> 20 <form id="form1" mehod="post" action="request1.jsp"> 21 <center> 22 请输入运算上限:<input id="demo" type="test" name="max"><hr/> 23 请输入题目数量:<input id="demo" type="test" name="num"><hr/> 24 请选定具体参数:<br/> 25 是否支持乘除: 26 是<input type="radio" name="ccselect" value="1"> 27 否<input type="radio" name="ccselect" value="0"><hr/> 28 是否进行混合运算: 29 是<input type="radio" name="hhselect" value="1"> 30 否<input type="radio" name="hhselect" value="0"><hr/> 31 <input type="submit" onclick="myFunction()" value="提交"> 32 <input type="reset" value="重置"> 33 </center> 34 </form> 35 </body> 36 </html>
request.jsp文件
1 <%@ page language="java" contentType="text/html; charset=GBK" 2 pageEncoding="GBK"%> 3 <%@ page import="java.util.*"%> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " 5 http://www.w3.org/TR/html4/loose.dtd"> 6 <html> 7 <head> 8 <meta http-equiv="Content-Type" content="text/html; charset=GBK"> 9 <title>获取参数</title> 10 </head> 11 <body> 12 <form action="judge.jsp" method="post"> 13 <% 14 int max = Integer.parseInt(request.getParameter("max")); 15 int num = Integer.parseInt(request.getParameter("num")); 16 int ccselect = Integer.parseInt(request.getParameter("ccselect")); 17 int hhselect = Integer.parseInt(request.getParameter("hhselect")); 18 int[] re = new int[num]; 19 int[] result = new int[num]; 20 if (ccselect == 1 && hhselect == 0) { 21 for (int i = 0; i < max; i++) { 22 Random random = new Random(); 23 int fuhao = Math.abs(random.nextInt() % 4); 24 int a = Math.abs(random.nextInt() % (num - 1)) + 1; 25 int b = Math.abs(random.nextInt() % (num - 1)) + 1; 26 if (fuhao == 0) //加法运算 27 { 28 result[i] = a + b; 29 out.println(a + "+" + b + "=" + "</br>"); 30 } 31 if (fuhao == 1)//减法运算 32 { 33 if (a >= b) { 34 result[i] = a - b; 35 out.println(a + "-" + b + "=" + "</br>"); 36 } else { 37 result[i] = b - a; 38 out.println(b + "-" + a + "=" + "</br>"); 39 } 40 } 41 if (fuhao == 2)//乘法运算 42 { 43 result[i] = a * b; 44 out.println(a + "*" + b + "=" + "</br>"); 45 } 46 if (fuhao == 3)//除法运算 47 { 48 result[i] = a / b; 49 out.println(a + "/" + b + "=" + "</br>"); 50 } 51 %> 52 <input type="text" name=<%=re[i]%>><br> 53 <% 54 } 55 } else if (ccselect == 0 && hhselect == 0) { 56 for (int i = 0; i < max; i++) { 57 Random random = new Random(); 58 int fuhao = Math.abs(random.nextInt() % 2); 59 int a = Math.abs(random.nextInt() % (num - 1)) + 1; 60 int b = Math.abs(random.nextInt() % (num - 1)) + 1; 61 if (fuhao == 0) //加法运算 62 { 63 result[i] = a + b; 64 out.println(a + "+" + b + "=" + "</br>"); 65 } 66 if (fuhao == 1)//减法运算 67 { 68 if (a >= b) { 69 result[i] = a - b; 70 out.println(a + "-" + b + "=" + "</br>"); 71 } else { 72 result[i] = b - a; 73 out.println(b + "-" + a + "=" + "</br>"); 74 } 75 } 76 %> 77 <input type="text" name=<%=re[i]%>><br> 78 <% 79 } 80 } 81 82 /*else if(ccselect==0&&hhselect==1) 83 { 84 int length,chlen,j,k,t; 85 Random random = new Random(); 86 int number[] = new int[20]; 87 char chs[] = new char[20]; 88 char ch[]={'+','-','*','/'}; 89 for(int i=0;i<max;i++) 90 { 91 length = Math.abs(random.nextInt()%2)+2; 92 chlen = length - 1; 93 for(j=0;j<length;j++) 94 { 95 number[j]=Math.abs(random.nextInt()%(num-1))+1; 96 } 97 for(j=0;j<chlen;j++) 98 { 99 chs[j]=ch[Math.abs(random.nextInt()%4)]; 100 } 101 chs[chlen]='='; 102 for(t=0;t<length;i++) 103 { 104 out.println(number[t] + chs[t] +"</br>"); 105 } 106 } 107 }*/ 108 109 session.setAttribute("v1", re); 110 session.setAttribute("v2", result); 111 session.setAttribute("v3",num); 112 %><br /> <input type="submit" name="submit" value="提交"> 113 </form> 114 </body> 115 </html>
judge.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> 10 <center> 11 <% 12 13 int[] s = (int[]) session.getAttribute("v1"); 14 int[] k = (int[]) session.getAttribute("v2"); 15 int n = (Integer) session.getAttribute("v3"); 16 17 //int n = Integer.parseInt((String) session.getAttribute("v3")); 18 int right= 0; 19 for (int i = 0; i < n; i++){ 20 out.print("第 " + i + " 题 "); 21 22 if (s[i]==k[i]) { 23 out.print(" 回答正确!"); 24 right++; 25 } else 26 out.print(" 回答错误,正确答案是: " + k[i]); 27 28 out.println("<br>"); 29 } 30 out.print("总共做对 " + right + " 题 "); 31 %><br> <input type="button" value="返回首页" 32 onClick="window.location.href='NewFile.jsp'"> 33 <input type="button" value="关闭" onClick="window.close();"> 34 </center> 35 </body> 36 </html>
运行结果截图:
总结:具体实现代码基本是按照原先的改编,提高了我们的是web的编写能力,对java做了复习。