结对项目-小学四则运算 “软件”之升级版

作业要求来源: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有了进一步的理解。其实结对编程最重要的,是两个人之间的有效沟通和相互配合,在配合中相互促进,我觉得这个过程也让我学习和进步了不少。

posted @ 2018-10-29 13:56  LSpirit  阅读(363)  评论(1编辑  收藏  举报