口算题卡--赵东旺
作者:互联网
计划
小学生家长希望做一个口算题卡软件,能一次给出10个或者20个适合小学生的口算题,让孩子做练习,提高孩子的口算水平,以便减轻家庭复担
开发
需求分析:
口算题卡,根据用户选择不同年级出不同的年级的口算题,然后显示正确,错误,正确答案和正确率
具体设计:
1.用户可以指定年级,根据用户指定的年级出指定年级的口算题
2.用户答完题后单击“提交”,可以在页面上显示正确与否,正确率以及正确答案
具体编码,注:可以展开
1 <%@page import="java.util.Scanner"%> 2 <%@page import="java.text.NumberFormat"%> 3 <%@page import="java.util.ArrayList"%> 4 <%@page import="java.util.List"%> 5 <%@page import="java.util.Random"%> 6 <%@ page language="java" contentType="text/html; charset=utf-8" 7 pageEncoding="utf-8"%> 8 <html> 9 <head> 10 <meta charset="UTF-8"> 11 <title>Insert title here</title> 12 </head> 13 <script type="text/javascript" src="js/jquery-3.5.1.js"></script> 14 <script type="text/javascript"> 15 var shijian = self.setInterval("clock()", 1000);//计时器 16 var t = 0; 17 function clock() { 18 t++; 19 document.getElementById("clock").value = t; 20 } 21 $(function() { 22 var array = {};//记录每个算式的结果 23 var s1=0;//input的内容 24 var conf=0;//记录正确的个数 25 $("#first").click(function(){ 26 conf=0//每点击一次重新记录正确个数 27 for (var i = 1; i <= 10; i++) {//循环10次生成10个算式 28 $("#i"+i).val("");//清空文本框 29 $("#s"+i).val(""); 30 var num1 = parseInt(Math.random() * 10);//生成0-9的随机整数 31 var operation = parseInt(Math.random() * 2);//生成两个整数 32 33 if (operation == 1) {//如果为1,代表是减法 34 var num2 = parseInt(Math.random() * num1);//防止被减数大于减数,出现负数 35 array[i - 1] = num1 - num2;//算式结果放进数组里 36 var formula = num1 + "-" + num2 + "=";//算式 37 } else {//否则为加法 38 num2 = parseInt(Math.random() * 10);//随机生成0-9的整数 39 array[i - 1] = num1 + num2; 40 formula = num1 + "+" + num2 + "="; 41 } 42 $("#a" + i).html(formula);//把算式显示在页面上 43 44 } 45 }) 46 $("#second").click(function(){ 47 conf=0;//每点击一次重新记录正确个数 48 for (var i = 1; i <= 10; i++) {//循环10次生成10个算式 49 $("#i"+i).val(""); 50 $("#s"+i).val(""); 51 var num1 = parseInt(Math.random() * 100);//生成0-99的随机整数 52 var operation = parseInt(Math.random() * 3);//生成3个整数 53 var num3 = parseInt(Math.random() * 9+1);//生成1-9的随机整数,用于乘法 54 if (operation == 1) {//如果为1,代表是减法 55 var num2 = parseInt(Math.random() * num1);//防止被减数大于减数,出现负数 56 array[i - 1] = num1 - num2;//算式结果放进数组里 57 var formula = num1 + "-" + num2 + "=";//算式 58 } else if(operation==0) { //0为加法 59 num2 = parseInt(Math.random() * 100);//随机生成0-9的整数 60 array[i - 1] = num1 + num2; 61 formula = num1 + "+" + num2 + "="; 62 }else{//否则为乘法 63 num2 = parseInt(Math.random() * 10+1);//随机生成1-9的整数 64 array[i - 1] = num3 * num2; 65 formula = num3 + "*" + num2 + "="; 66 } 67 $("#a" + i).html(formula);//把算式显示在页面上 68 69 } 70 }) 71 $("#login").click(function() {//单击提交按钮执行下面代码 72 for (var j = 1; j <= 10; j++) { 73 s1 = $("#i" + j).val();//获取文本框的内容 74 if (s1 == null || s1 != array[j - 1] || s1=="") { 75 $("#s" + j).html("×,正确答案为"+array[j-1]); 76 } else if (s1 == array[j - 1]) { 77 $("#s" + j).html("√"); 78 conf++;//记录正确个数 79 80 } 81 82 } 83 $("#con1").html("您一共答对"+conf+"题,正确率为:"+(conf/10)*100+"%") 84 85 }); 86 87 } 88 89 ) 90 </script> 91 <body background="img/img1.jpg"> 92 <center> 93 <h1 align="center">小学生口算题卡</h1> 94 计时器: 95 <input type="text" readonly id="clock" class="time" name="time">秒 96 <br /> 97 <% 98 for (int i = 1; i <= 10; i++) { 99 //拼接页面 100 out.println("<a id=a" + i + "></a><input id=i" + i + "></input><span id=s" + i + "></span><br/>"); 101 } 102 %> 103 <p id="con1"></p><!-- 页面上显示答对题目数和正确率 --> 104 <input type="submit" value="提交" id="login" /> 105 <input type="submit" value="一年级" id="first" /> 106 <input type="submit" value="二年级" id="second" /> 107 </center> 108 </body> 109 </html>View Code
测试
一年级:
二年级:
个人开发流程(psp)
PSP阶段 | 预计所花时间百分比 | 实际所花时间百分比 |
计划 | 8 | 16 |
|
8 | 16 |
开发 | 84 | 100 |
|
6 | 10 |
|
5 | 6 |
|
4 | 6 |
|
3 | 3 |
|
10 | 12 |
|
36 | 21 |
|
7 | 9 |
|
13 | 21 |
报告 | 9 | 6 |
|
3 | 2 |
|
2 | 1 |
事后总结,并提出过程改进计划 | 3 | 3 |
报告
目前只做了一二年级的,后面可以继续写更高年级的,可以改进的地方还有很多,比如加上用户可以指定一定数量的算式。这都后续可以改进,这前端的知识忘得差不多,复习复习还是可以出来的
标签:10,正确,--,21,赵东旺,var,年级,算题 来源: https://www.cnblogs.com/esacpe/p/14830823.html