作业要求来源:[https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232](https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232)
我的github仓库地址:[https://github.com/xichen1602/FourArithmetic](https://github.com/xichen1602/FourArithmetic)
我的结对同伴:[2016006120097 林启涛](https://www.cnblogs.com/Xi-Chen00/)
一、任务:
从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
生成题目,单个题目最多不能超过4个运算符,操作数小于100。
用户可以输入答案
若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。
-所选的扩展要求:
1、用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
2、程序可以设置皮肤功能,可以改变界面的颜色即可。
3、程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
4、用户答题结束以后,程序可以显示用户答题所用的时间
写博客纪录自己实现的过程和思路。
二、设计
1、页面和类:
index.jsp(输入题目首页),test.jsp(显示题目),result.jsp(答题结果),
2、思路:
通过jsp页面输入的题目数目,通过javaBean类,在服务器端产生题目,借助servlet将信息传递到test页面,跳转到答题界面。
三、运行结果和关键代码
- 运行结果截图:
关键代码:
//index.jsp主页输入题目和时间代码
session.setAttribute("s1Value",s1);//传输生成的题目序列
//test.jsp//时间代码
function timeCount()
{
document.getElementById("txt").innerHTML=num1-c;
c=c+1;
t=setTimeout("timeCount()",1000);
if(num1==c-1)
{
clearTimeout(t);
alert("时间到了!");
load();
}
}
//checkAns.jsp主要代码
String[][] s1Values = (String[][]) session.getAttribute("s1Value");//用于接收题目
String[] outputTopic =new String[]{"","","","",""};
String[] outputans =new String[]{"","","","",""};
String output = "";
String output1 = "";
//打印题目答案
out.print("正确答案:");out.println("<br/>");
for (int numj = 0; numj < tNum; numj++) {
for (int numi = 0; numi < 6; numi++) {
output = s1Values[numj][numi];
outputTopic[numj] += output;
out.println();
}
output = s1Values[numj][6];
outputans[numj] += String.format("%.2f",Float.parseFloat(output));
out.println(outputTopic[numj]);
out.println(outputans[numj]);
out.println();
out.print("<br/>");
}
四、个人软件过程耗时估计与统计表
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
---|---|---|---|
Planning | 计划 | 2h | 2h |
Estimate | 估计这个任务需要多少时间 | 6h | 10h |
Development | 开发 | 4h | 10h |
Analysis | 需求分析 (包括学习新技术) | 1h | 1h |
Design Spec | 生成设计文档 | 1h | 1h |
Design Review | 设计复审 | 30min | 30min |
Coding Standard | 代码规范 | 1h | 1h |
Design | 具体设计 | 2h | 5h |
Coding | 具体编码 | 6h | 12h |
Code Review | 代码复审 | 1h | 3h |
Test | 测试(自我测试,修改代码,提交修改) | 12h | 24h |
Reporting | 报告 | 1h | 2h |
测试报告 | 12h | 30min | |
计算工作量 | 10min | 10min | |
并提出过程改进计划 | 1h | 2h |
五、总结
结对项目中尝试了用不熟悉的javaWeb来实现,但是错误地估计了自己对javaWeb的熟悉程度,导致困难重重。因为对javaWeb的不熟悉导致项目写得很乱,没有很好的整理代码。要好好反思。