结对编程1

本人学号:201421122044  coding地址:https://git.coding.net/gebeelaowang/FourArithmeticOperation.git

队友学号:201421122040

一、需求分析:

  1. 把作业1做成GUI
  2. 随机生成题目时不生成重复的题目
  3. 答题对错总数增量统计。
  4. 计时功能,记录答题耗时。
  5. 多语言切换。

二、程序设计:

  我负责的部分

    1.中英切换

      主要用JavaScript语言完成,在一开始的传参页面InputParameters.jsp中的设置两个按钮来切换中英文,分别绑定切换中文的点击事件 switchChinese( ) 和切换英文的事件switchEnglish( )。

      在点击中将内容分别设置成中英文内容,同时在localStorage里面设置一个键值对来保存语言类型,在跳转到不同页面时根据一开始加载的Js代码来判断页面的内容是中文还是英文,可以做到真正意义上的系统语言切换,一处切换,处处切换。

    2.四则运算

      直接使用上一个实验的算法,但是优化了代码结构,把一些类抽象出来,使其结构更加合理化

    3.对错数量增量统计

      分别把做对的题目的数量和做错的题目数量保存在服务器端的TEXT/correctMount.txt 和 wrongMount.txt文件中

      当再次做题时,只要读入文件里面的数目再在此基础上继续增量即可。

  

  思维导图

    

    

    

 

三、代码展示:

  中英切换

  

<script type="text/javascript">
    function switchChinese(){
        document.getElementById("chineseLanguage").innerHTML="中文";
        document.getElementById("englishLanguage").innerHTML="英文";
        document.getElementById("theMax").innerHTML="最大的上限:";
        document.getElementById("elementsMount").innerHTML="表达式元数:";
        document.getElementById("expressionMount").innerHTML="表达式个数:";
        document.getElementById("theSubmit").value="生成表达式";
        document.getElementById("theReset").value="重置";
        localStorage.setItem("version","Chinese");
    }
    function switchEnglish(){
        document.getElementById("chineseLanguage").innerHTML="Chinese";
        document.getElementById("englishLanguage").innerHTML="English";
        document.getElementById("theMax").innerHTML="OperandRange:";
        document.getElementById("elementsMount").innerHTML="ElementsMount:";
        document.getElementById("expressionMount").innerHTML="ExpressionMount:";
        document.getElementById("theSubmit").value="MakeExpressions";
        document.getElementById("theReset").value="Reset";
        localStorage.setItem("version","English");
    }
</script>

  增量统计

String tempCorrectMount = correctMountBr.readLine();
        String tempWrongMount = wrongMountBr.readLine();
        
        int correctMount = 0;
        if(tempCorrectMount != null && !"".equals(tempCorrectMount)){
            correctMount = Integer.parseInt(tempCorrectMount.trim());
        }
        int wrongMount = 0;
        if(tempWrongMount != null && !"".equals(tempWrongMount.trim())){
            wrongMount = Integer.parseInt(tempWrongMount);
        }

        correctMountBr.close();
        wrongMountBr.close();
        String tempBr="";
        String tempBr1 = "";
        while((tempBr=correctBr.readLine())!= null && (tempBr1=stuBr.readLine()) != null) {
            if(tempBr.equals(tempBr1)) {
                correctMount++;
            }else {
                wrongMount++;
            }
        }
        if(tempBr != null){
            wrongMount++;
        }
        while((tempBr=correctBr.readLine())!= null){
            wrongMount++;
        }
        correctBr.close();
        stuBr.close();
        
        double tempCorrect = (double)correctMount;
        double tempWrong = (double)wrongMount;
        float tempScore = (float)((tempCorrect/(tempWrong+tempCorrect))*100);
        String score = String.format("%.2f", tempScore);
        System.out.println(score);

四、程序运行:

  

  队友的博文里面展示的是中文版,我展示的是英文版

五、小结感受:

  加强了团队合作的能力

  实验一算法有些写得不是太好,队友帮我优化了一些,一些工具类中的方法应该使用静态

  有些类和方法应该抽象出来

六、伙伴评价:

  队友:

    201421122040 陈志建 

  优点:

    逻辑思维较强,代码思路清晰,帮我优化了前一个实验的一些代码

  缺点:

    代码注释偏少

  建议:

    可以适当多加点注释

七、结对过程:

  统一命名,采用标准的Java命名规范,变量单词的使用尽量准确

  构建大概的程序结构

  分配任务

  各自实现自己的模块,然后用git提交到coding上面的共同项目里

  各自多次提交的codding记录

  

七、结对照片:

  

八、PSP:

  

PSP2.1 Personal Software Process Stages Time Senior Student Time
Planning 计划 30 10
· Estimate 估计这个任务需要多少时间 24 24
Development 开发 700 1000
· Analysis 需求分析 (包括学习新技术) 30 5
· Design Spec 生成设计文档 NaN 1
· Design Review 设计复审 NaN 0
· Coding Standard 代码规范 NaN 5
· Design 具体设计 NaN 20
· Coding 具体编码 NaN 20
· Code Review 代码复审 NaN 10
· Test 测试(自我测试,修改代码,提交修改) NaN 6
Reporting 报告 NaN 6
· 测试报告 NaN 0
· 计算工作量 NaN 0
· 并提出过程改进计划 NaN 0
posted @ 2017-10-22 10:40  xanxuskkk  阅读(182)  评论(2编辑  收藏  举报