小学生口算题卡

结对项目:

项目地址:
https://dev.tencent.com/u/qingYinGuo/p/Arithmetic/git

后端部分博客:https://blog.csdn.net/qing_tian0070/article/details/89219510

前端部分

1.主要功能:
(1)主页选择出题范围:
主要描述:提交表单到后台接口,生成相应符合标准的运算式

js 表单验证部分:

//进行表单验证
    var myCheck = document.getElementById('sub');
	myCheck.onclick=function(){
	    var Biaodan=document.getElementById('Biaodan');//表单对象
        var num=document.getElementById('num');//题目个数
        var min=document.getElementById('min');//最小值
        var max=document.getElementById('max');//最大值
        var ope=document.getElementById('ope');//运算符个数
        var cheng=document.getElementById('cheng');//是否乘除
        var kuohao=document.getElementById('kuohao');//是否括号
        if(num.value==""){//题目个数
            Biaodan.onsubmit=function(){
                return false;
            } 
        }
        if(num.value<1||num.value>10000){//题目个数范围在1--10000
            Biaodan.onsubmit=function(){return false;} 
        }
        if(min.value==""||min.value<1||min.value>100){//最小值设置范围1--100
            Biaodan.onsubmit=function(){return false;} 
        }
        if(max.value==""||max.value<50||max.value>1000){//最小值设置范围50--1000
            Biaodan.onsubmit=function(){return false;} 
        }

    };

主页主要部分截图如下:
在这里插入图片描述
(2)答题部分
主要描述:
获取后台生成的运算式,用户做题后点击判题进行判分;
若答案正确,后面打钩,若答案错误,则打叉 并显示相应的正确结果。

part 1. js 部分获取运算式和结果的数组:

 <c:forEach items="${sessionScope.formulaList}" var="c" varStatus="status">
    //遍历运算式数组
        <div class="Ti">
            
            <div class="mu a">${c}=</div>//运算式
            <div class="mu b">
                <input name="c" type="text" class="c">//用户答题框
            </div>
            <div class="yesno"></div>//打钩或打叉

            <div class="ans" ></div><!-- 答案为: -->
            <div class="duide"></div><!-- 正确的结果 -->

        </div>

    </c:forEach>


    <c:forEach items="${sessionScope.resultList}" var="d" varStatus="status">
        <input style="display:none;" class="daan" value="${d}">//对应的正确答案
    </c:forEach>



part 2.用input hidden将前台记录的属性值传入后台:

<form action="/TikaServlet" method="post">

        <input type="hidden" name="time" id="time_id"/><!-- 时间 -->
        <input type="hidden" name="corNum" id="numRight_id"/><!-- 正确个数 -->
        <input type="hidden" name="corRate" id="Rightrate"/><!-- 正确率 -->
       
        <input type="submit" id ="out" class=" chuan" value="上传">

    </form>

part3.判题部分

 //判卷
    function check(){

        var duide = document.getElementsByClassName("duide");//要显示的正确答案
        var daan=document.getElementsByClassName('daan');//后台获取的正确答案
       var c = document.getElementsByClassName('c');//用户作答
       var time=document.getElementById("time_id");
        var x = document.getElementById('startShow');
        //总计时间

        var yesno = document.getElementsByClassName("yesno");//钩或叉
        var ans = document.getElementsByClassName("ans");//“答案为:”

        var numRight=document.getElementById("numRight_id");//正确的个数
        var rate = document.getElementById("Rightrate");//正确率

        var yes = 0;//正确个数
        var no =0;
        var count = 0;//总个数

        for(var i=0;i<daan.length;i++){
           if(daan[i].value==c[i].value){//若答对了
                yesno[i].innerHTML="√";
                yesno[i].style.color="#1DF126";
                yes++;
                count++;
            }else{
                yesno[i].innerHTML="×";
                yesno[i].style.color="red";
               //若错误,显示 "答案:正确的答案"
                ans[i].innerHTML = "答案:";
                ans[i].style.display="inline-block";
                duide[i].innerHTML = daan[i].value;
                duide[i].style.display="inline-block";
                console.log(duide[0].innerHTML);

                no++;
                count++;
            }


            numRight.value=yes;
           time.value = x.innerHTML;
           var str = Number(yes/count*100).toFixed(2);
           str +="%";
           rate.value = str;
            //将相应值通过input hidden 传到后台 
            }


    }


相关实现截图如下:
在这里插入图片描述
https://blog.csdn.net/cimixian/article/details/89202883

(3)题卡部分 :
主要描述:获取答对总数、正确率、总共用时;


<div class="ka">
    <div class="titl">答题卡</div>
    <div class="line">
        <div class="left">答对总数</div>
        <div class="mid">:</div>
        <div class="right"><%=request.getSession().getAttribute("corNum")%></div>
    </div>
    <div class="line">
        <div class="left">正确率为</div>
        <div class="mid">:</div>
        <div class="right"><%=request.getSession().getAttribute("corRate")%></div>
    </div>
    <div class="line">
        <div class="left">总共用时</div>
        <div class="mid">:</div>
        <div class="right"><%=request.getSession().getAttribute("time")%></div>
    </div>

</div>

相关实现截图如下:
在这里插入图片描述

2.开发大致进程:
4.6~4.7:学习博客,前端页面的大致构想和开发,部分js编写;
4.9:逻辑基本确定,js 编写完成,开始合项目,基本合完一半的内容;
4.10:进一步修改讨论,项目完成;
3.个人总结:

主要时间主要花费在答题部分,首先这一部分的构思不够明确,所以在开发的时候浪费了很多时间,而且布局不够完善,js有误,与后台合时表达式不够熟练,,这一部分修改较长时间,,其余两个页面都相对简单。另外,和队友结对时,感觉进度更明确,互相帮助更有效率,后半段过程中一起经历和解决了很多问题,但是自知技术太差,还是要努力努力努力!最后,感谢队友国庆同学的帮助。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值