其他分享
首页 > 其他分享> > 口算题卡--赵东旺

口算题卡--赵东旺

作者:互联网

计划

小学生家长希望做一个口算题卡软件,能一次给出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