结对项目-小学四则运算 “软件”之升级版
作业要求来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2232
我的github仓库地址:[https://github.com/xichen1602/fourPlus)
我的结对同伴:201608030015 候湛宇
一、任务:
从个人项目出发,将程序改装成一个单机带用户界面(不是控制台)的程序,这个程序最基本要达到:
生成题目,单个题目最多不能超过4个运算符,操作数小于100。
用户可以输入答案
若用户输入答案正确,则提示正确;若答案错误,则提示错误,并要提示正确答案是多少。
-
所选的扩展要求:
1、用户可以选择出题的个数(最多不能超过5个题目),答题结束可以显示用户答错的题目个数和答对的题目个数。
2、程序可以设置皮肤功能,可以改变界面的颜色即可。
3、程序可以设置答题时间,时间设置为整数,单位为秒,最大不能超过120秒,若超过了答题时间未答题,则提示:时间已到,不能答题。
4、用户答题结束以后,程序可以显示用户答题所用的时间
写博客纪录自己实现的过程和思路。
二、环境
- IntelliJ IDEA 2018.2.2
- Tomcat9
三、设计
- 1、页面:
index.jsp(输入题目首页),test.jsp(显示题目),checkAns.jsp(答题结果) - 2、思路:
通过jsp页面输入的题目数目,在服务器端产生题目,借助表单将信息传递到test页面,跳转到答题界面,答题后按提交答案跳转到评分界面。
四、运行结果和关键代码
-
运行结果截图:
1、改变背景:
2、输入题目数目和答题时间:
3、答题界面(倒计时以及最后20秒的时间提示):
4、答题结果(评分和显示所用时间):
-
关键代码:
//index.jsp输入题目个数产生题目
<%
String[] outputTopic =new String[]{"","","","",""};
int tNum=0;
tNum =5;
application.setAttribute("counter", tNum);
String s1[][] = new String[6][7];
int num = tNum;
String output = "";
s1 = inttopic(num);
session.setAttribute("s1Value",s1);
for (int numj = 0; numj < tNum; numj++) {
for (int numi = 0; numi < 6; numi++) {
output = s1[numj][numi];
outputTopic[numj] += output;
}
}
%>
//test.jsp接收传递过来的题目
<%
String asd = (String) session.getAttribute("answer1");
session.setAttribute("as1",request.getParameter("answer1"));
out.print("<br/>");
String as1T= (String) session.getAttribute("as1");
out.print(as1T);
as1= request.getParameter("answer1");
as2= request.getParameter("topic1");
request.setAttribute("answer1",as1);
request.setAttribute("answer2",as2);
request.setAttribute("answer3",as3);
request.setAttribute("answer4",as4);
request.setAttribute("answer5",as5);
%>
五、结对软件过程耗时估计与统计表
- PSP模版表格:
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
---|---|---|---|
Planning | 计划 | 2h | 5h |
Estimate | 估计这个任务需要多少时间 | 10h | 30h |
Development | 开发 | 4h | 30h |
Analysis | 需求分析 (包括学习新技术) | 3h | 6h |
Design Spec | 生成设计文档 | 1h | 1h |
Design Review | 设计复审 | 2h | 2h |
Coding Standard | 代码规范 | 1h | 1h |
Design | 具体设计 | 6h | 8h |
Coding | 具体编码 | 10h | 20h |
Code Review | 代码复审 | 1h | 3h |
Test | 测试(自我测试,修改代码,提交修改) | 12h | 24h |
Reporting | 报告 | 1h | 2h |
测试报告 | 1h | 1h | |
计算工作量 | 20min | 30min | |
并提出过程改进计划 | 1h | 4h |
- 结对编程照片
五、总结
本次四则运算升级版结对项目,利用了javaWeb开发主要遇到的问题是如何在jsp之间传递参数,js和jsp之间和传值和同步问题比较棘手。因为理论储备不扎实,在结对编程中,参考了网上的资料,算是弥补了自身知识的不足,同时也对javaWeb有了进一步的理解。其实结对编程最重要的,是两个人之间的有效沟通和相互配合,在配合中相互促进,我觉得这个过程也让我学习和进步了不少。