PSP四则运算

个人PSP(四则运算)

  1. 题目要求:能自动生成小学四则运算题目,且每一道题目的运算结果不能为负。除了支持整数运算外,还要支持真分数四则运算。

  2. 工具清单

    • Java,Js,Maven,Tomcat,MySQL
  3. PSP表格

    预计耗时(分钟) 实际耗时(分钟)
    Planning 计划 20 20
    Estimate 估计这个任务需要多少时间 5 5
    Development 开发 80 90
    Analysis 需求分析 10 10
    Design Spec 生成设计文档 / /
    Design Review 设计复审(和同事审核设计文档) / /
    Coding Standerd 代码规范(为目前的开发制定合适的规范) / /
    Design 具体设计 30 30
    Coding 具体编码 100 100
    Code Review 代码复审 10 15
    Text 测试(自测,修改代码,提交修改) 20 20
    Reporting 报告 20 20
    Text Report 测试报告 10 10
    Size Measurement 计算工作量 5 5
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 5
    Sum 合计 305 330
  4. 项目描述

    web端实现注册,登录,登录后主界面及四则运算页面。用原生态Servlet与前端进行交互,以Tomcat作为服务端,MySQL对玩家成绩信息进行展示和存储。

  5. 主要代码说明

    • 生成题目

      for(var i = 0;i < oContent.length;i++){
          Answer[i].style.backgroundColor = "white";
          Answer[i].value = " "
          var add1 = parseInt(Math.random()*100)+1
          var add2 = parseInt(Math.random()*100)+1
          var ope = Math.round(Math.random())
          var ope1 = Math.round(Math.random())
          strs = oContent[i].innerHTML.split(" ")
          if(ope == 0 && ope1 ==0){
              strs[1] = "+"
          }
          if(ope == 1 && ope1 ==0){
              strs[1] = "-"
          }
          if (ope == 0 && ope1 ==1){
              strs[1] = "*"
          }
          if (ope == 1 && ope1 ==1){
              strs[1] = "/"
          }
          strs[0] = add1
          strs[2] = add2
          strs[3] = "="
          oContent[i].innerText = strs[0]+" "+strs[1]+" "+strs[2]+" "+strs[3]+" "+strs[4]+" "
      }
      
    • 校验答案

      oBt1.onclick = function(){
          var count = 0
          for(var i = 0;i < oContent.length;i++){
              strs = oContent[i].innerHTML.split(" ")
              Ans = Answer[i].value
              var add1 = strs[0]
              var operator = strs[1]
              var add2 = strs[2]
              if(operator == "+"){
                  if(Number(add1) + Number(add2) == Number(Ans)){
                      count++;
                  }else{
                      Answer[i].style.backgroundColor = "red";
                  }
              }
              if(operator == "-"){
                  if(Number(add1) - Number(add2) == Number(Ans)){
                      count++;
                  }else{
                      Answer[i].style.backgroundColor = "red";
                  }
              }
              if(operator == "*"){
                  if(Number(add1) * Number(add2) == Number(Ans)){
                      count++;
                  }else{
                      Answer[i].style.backgroundColor = "red";
                  }
              }
              if(operator == "/"){
                  if(Math.round(Number(add1) / Number(add2)) == Math.round(Ans)){
                      count++;
                  }else{
                      Answer[i].style.backgroundColor = "red";
                  }
              }
          }
      }
      
    • 其他相关代码
      PSP四则运算

  6. 整体流程说明

    • 登陆界面
      PSP四则运算

    • 注册界面
      PSP四则运算

    • 主界面

      通过统计Session个数,对半小时内在线人数进行统计

      PSP四则运算

    • 四则运算界面
      PSP四则运算

      • 网页端会记录玩家的答题秒数,写入数据库中进行存储
  7. 项目相关不足

    • 题目的生成机制较为单一,只有简单的A [运算符] B的形式,在题目形式上可以加以改进

    • 记录玩家数据并存入MySQL相关代码较为冗余,对SQL语句可进行优化

上一篇:手把手教你阅读mybatis核心源码,掌握底层工作原理与设计思想


下一篇:Java模拟器电脑版怎么用