阿样
四则运算实验室(四则运算网页版)
四则运算实验室(在线测试) 请多次打开这个网页,第一次加载可能比较慢,并且不会出现字体,影响效果 如果之前打开过网页,网页更新过,请先清除缓存后重新打开该网页
界面的设计主要由我来制作,我依照最简单的div+css布局,设计了一个能够通用的基本框架,进而在其中添加需要的元素,比如答题界面和计时及正确题目数 量模块,并且设计了简单的js代码实现计时功能、判断正确与否、正确数目及表单验证功能。并为其添加了符合四则运算使用者的界面效果,如提示的背景是黑板,整个页面的风格较为清新可爱,字体使用了外联新蒂黑板报及点点字体。
具体的界面样式依靠的是css的控制,最外围依靠的是body的像素固定大小,其余部分依靠的是百分比实现布局固定。
配色参考图片来源图标来源
表单验证
function check(form){ //验证题目数量 var quesNum = document.forms["online_choose"].elements["quesNum"].value; var minNum = document.forms["online_choose"].elements["minNum"].value; var maxNum = document.forms["online_choose"].elements["maxNum"].value; var operScope = document.forms["online_choose"].elements["operScope"].value; if(isNaN(quesNum)){ alert("请输入题目数量,数量为0-10000"); document.forms["online_choose"].elements["quesNum"].focus(); return false; } if( quesNum == '' || quesNum < 0 || quesNum > 10000 ){ alert("请输入题目数量,数量为0-10000"); document.forms["online_choose"].elements["quesNum"].focus(); return false; } if(isNaN(minNum)){ alert("请输入正确的题目的数值最小值"); document.forms["online_choose"].elements["minNum"].focus(); return false; } if(minNum == '' || minNum < 0 || minNum > 100){ alert("请输入题目数值最小值,0-100"); document.forms["online_choose"].elements["minNum"].focus(); return false; } if(isNaN(maxNum)){ alert("请输入正确的题目数值最大值"); document.forms["online_choose"].elements["maxNum"].focus(); return false; } if(maxNum == '' || maxNum < 50 || maxNum > 1000){ alert("请输入题目数值最大值,50-1000"); document.forms["online_choose"].elements["maxNum"].focus(); return false; } if(parseInt(minNum) > parseInt(maxNum)){ alert("请输入正确的范围,且最大值必须至少比最小值大50"); document.forms["online_choose"].elements["minNum"].focus(); document.forms["online_choose"].elements["maxNum"].focus(); return false; } if(parseInt(maxNum) - parseInt(minNum) < 50 ){ alert("请输入正确的范围,且最大值必须至少比最小值大50"); document.forms["online_choose"].elements["minNum"].focus(); document.forms["online_choose"].elements["maxNum"].focus(); return false; } if(isNaN(operScope)){ alert("请输入正确的参数值"); document.forms["online_choose"].elements["operScope"].focus(); return false; } if(operScope == '' || operScope < 0 || operScope > 10){ alert("请输入运算符范围,否则默认为1,数值不能超过10"); document.forms["online_choose"].elements["operScope"].focus(); return false; } }判断正误
//判断是否回答正确 function yesOrNo(){ //yes 为题目正确个数 //total为题目总个数& var yes=0; var total = document.getElementById("total_number").value; var get_answer = document.getElementsByClassName("get_answer"); var yesOrNo = document.getElementsByClassName("gou"); var right_answer= document.getElementsByName("meng"); for(var i = 0; i < total ; i++){ //传过来的答案right_answer //输入的答案get_answer //得到的题目get_ques–%> if(get_answer[i].value == right_answer[i].value){ yesOrNo[i].innerHTML="yes"; yesOrNo[i].style.color="#ADFF99"; yes++; }else{ yesOrNo[i].innerHTML="no"; yesOrNo[i].style.color="#FF9494"; } } var yesNum = document.getElementById("right_number"); yesNum.value = yes; }嵌套模式答题设计及计时功能
<div class="output"> <div class="output_answer"> <ul> <li> 题目 </li> <li> 答案 </li> <li> 对错 </li> </ul> <div class="answer_scroll"> <form method="get"> <table> <% String path = String.valueOf(request.getAttribute("path")); int countR=0; int countL=0; InputFile inputFile=new InputFile(); List<String> s1=inputFile.InputFile(path); String[] answer=new String[s1.size()]; for(int i=0;i<answer.length;i++){ //String ss=inputFile.result(s2); answer[i]=(inputFile.result(s1.get(i))); } request.setAttribute("answer",answer); %> <input type="hidden" id="right_answer" value="<%=answer %>"/> <% for (String s:s1) { %> <tr> <td> <%=s %> </td> <td> <input type="text" name="answer" class="get_answer"/> </td> <td> <span class="gou"> </span> </td> </tr> <% } %> </table> </form> </div> <input type="submit" value="提交" id="aa" onclick="yesOrNo()"/> </div> <div class="output_judge"> <div class="judge_clock"> <button type="button" onclick="start()"><img src="img/play.png"/></button> <button type="button" onclick="stop()"><img src="img/stop.png"/></button> <button type="button" onclick="Reset()"><img src="img/over.png"/></button> <input type="text" id="timetext" value="00时00分00秒" readonly><br/> </div> <div class="judge_number"> <ul> <li> <span>本次题目一共有</span> </li> <li> <input type="text" id="total_number" value="<%=answer.length %>" READONLY/> </li> <li> <span>正确的题目一共有</span> </li> <li> <input type="text" id="right_number" READONLY/> </li> </ul> </div> </div>描述各个列的名称,由ul表单实现,分别为题目、答案、对错
输出题目的框,由于其具有滚动框的特性,我们对其命名为answer_scroll,使用循环输出使所有的题目都能展现,答完所有的题目后可以点击提交按钮,随即 进行验证,得到正确与错误的提示,在对错一列显示,红色表示错误,绿色表示正确,十分鲜明
另外对于要求中的计时及正确答案,设置了一个div,具有float属性,名为output_judge,可以进行计时及输出正确答案定制功能为一个表单的提交,由我进行验证,得到的结果提交给计算模块并返回结果值
界面中加入一段jsp代码,其中引入一个list集合为题目,再引入一个数组为正确答案,同时在界面中获取题目总数并直接输出 使用jstl标签,使用,其中放置一个隐藏的input来获取答案数组的值 直接在界面中循环输出题目,循环次数为获取的页面中total_number块的值 使用js代码获取用户输入的答案的值和正确答案的值进行对比,统计正确的题目数量 输出题目总数和正确的题目数量 定制部分主要实现为表单提交实现页面跳转,跳转至第二界面进行答题
结对的过程:
商讨项目的制作过程,包括使用的代码,技术规范,页面的框架,实现的功能等计划分工及功能的实现,进行PSP的初期规划正式开始进行项目的制作,计算模块与界面模块同时进行进行页面的交互,并且同时不断修改代码进行测试发布项目撰写博客刘卓锦
优点 代码能力强耐心细心缺点 不爱写注释翁梦蕾
优点 有设计风格细心耐心缺点 对于java掌控不熟最后添加了附加功能,语言功能的支持
相关的设置,使用了cokie.js使页面跳转时维持语言的选择
转载于:https://www.cnblogs.com/wowocandy-milk/p/8743073.html
相关资源:数据结构—成绩单生成器