首页 > 代码库 > 结对编程——paperOne基于java web的简易四则运算出题网站
结对编程——paperOne基于java web的简易四则运算出题网站
项目成员:张金生 张政
需求分析:
1.要进行四则运算;
2.运算题目随机;
3.进行对错判断;
4.整数运算。
程序概要:
1.用JSP实现;
2.用户可选择题目数量;
3.答题页用表格列出;
4.包含用来填写答案的输入框;
5.答完后点击提交会直接显示相应题目的对错。
实现过程:
数据结构主要用到了数组
题目生成:
1 public String generateQuestion(int numOfOperand, int rangeMin, int rangMax, boolean isInt, 2 SupportedOperation[] operation, boolean bracket) { 3 String question = ""; //用来保存题目 4 int[] ioperands = null; //用来保存随机生成的操作数 5 double[] doperands = null; 6 SupportedOperation[] so = null; //用来保存操作符 7 if (numOfOperand < 2) { 8 System.out.println("操作数数量至少为2"); 9 return "";10 }11 if (rangMax > 500) {12 System.out.println("操作数数最大值不能超过500");13 return "";14 } //基础判断,看参数是否符合要求15 if (isInt) {16 ioperands = new int[numOfOperand];17 for (int i = 0; i < numOfOperand; i++) {18 ioperands[i] = (int) (Math.random() * rangMax / 2 +1);//生成随机数并保存到数组中19 20 }21 question += ioperands[0]; //录入第一位操作数22 //int sub = ioperands[0];23 so = new SupportedOperation[numOfOperand-1];//初始化操作符数组24 for(int i = 0;i < operation.length;i++){25 if(operation[i] == SupportedOperation.ALL){26 operation = new SupportedOperation[4];27 operation[0] = SupportedOperation.ADD;28 operation[1] = SupportedOperation.MINUS;29 operation[2] = SupportedOperation.MULTIPLY;30 operation[3] = SupportedOperation.DIVIDE;31 32 }33 }34 int value = http://www.mamicode.com/0; //避免出现连续的除法运算"+"+question;break;40 case MINUS:question = ioperands[j+1]+"-"+question;break;41 case MULTIPLY:question = ioperands[j+1]+"*"+question;break;42 case DIVIDE:{ //保证数能够整除43 if(value < 1){44 ioperands[j+1] = ioperands[j+1]*ioperands[j];45 question =ioperands[j+1]+"/"+question;46 47 value++;48 }49 else{50 j--;51 }52 }break;53 default:System.out.println("操作符错误");break;54 }55 }56 System.out.println(question); //以下部分主要用于测试57 ScriptEngine se = new ScriptEngineManager().getEngineByName("JavaScript");58 59 try {60 Integer d = (Integer) se.eval(question);61 System.out.println(d);62 } catch (ScriptException e) {63 e.printStackTrace();64 }65 66 } else {67 doperands = new double[numOfOperand];68 for (int i = 0; i < numOfOperand; i++) {69 doperands[i] = Math.random() * rangMax / 2;70 }71 }72 73 return question;74 75 }
答案评定:
1 <script type="text/javascript"> 2 function compute() { 3 4 for (var i = 1; i <= <%=num%>; i++) { //对每一道题进行对错判断 5 var a = "" + eval(document.getElementById("q" + i).innerHTML); 6 var auser = document.getElementById("a" + i).value; 7 if (a == auser) { 8 document.getElementById("r" + i).innerHTML = "正确"; 9 } else {10 document.getElementById("r" + i).innerHTML = "错误";11 }12 }13 14 }15 </script>
程序运行结果
代码地址:https://coding.net/u/jx8zjs/p/paperOne/git
结对编程——paperOne基于java web的简易四则运算出题网站
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。