结对编程1-模块化

结对编程1-模块化

柳泽峰  201421122011

林伟钦  201421122025

 

Coding地址:https://git.coding.net/Aes/Exp2.git

演示视频:http://v.youku.com/v_show/id_XMzEwMjYyOTI3Ng==.html?spm=a2h3j.8428770.3416059.1&qq-pf-to=pcqq.c2c

 

一、需求分析:

在作业一的基础上,实现图形界面,并且有以下的功能:

1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

2.有计时功能,能显示用户开始答题后的消耗时间。

 

二、程序设计:

先画出初始界面,用来接收用户的两个输入参数,然后给两个关键的按钮设置监听。

两个关键按钮的监听事件如下:

结对编程1-模块化_第1张图片

结对编程1-模块化_第2张图片

三、代码展示

1.已知正确题数[rightNumber],和总题数[answer.size()],求正确率,并将数据更新到label当中。

// 创建一个数值格式化对象
    NumberFormat numberFormat = NumberFormat.getInstance();
// 设置精确到小数点后1位
    numberFormat.setMaximumFractionDigits(1);
    String ratePercent = numberFormat.format((float) rightNumber / ((float) answer.size()) * 100);
    rate.setText(rate.getText() + ratePercent + "%");

2.检查用户的答案,如果正确的 话,正确数+1,否则,错误数+1,如果放空的话,视为错误。而且,还要将提示的label设为可见,这样才会显示出正确的答案

    // 检查用户的答案并计算正确题数
    public void checkAnswer() {
        double result = 0;
        double userInput = 0;
        for (int i = 0; i < answer.size(); i++) {
            if (tfUserAns.get(i).getText().trim().equals("")) {
                userInput = 1;
                result = 0;
            } else {
                userInput = Double.parseDouble(tfUserAns.get(i).getText().trim());
                result = Double.parseDouble(answer.get(i).trim());
            }
            hint.get(i).setVisible(true);
            // 回答正确的话:
            if (result - userInput == 0) {
                hint.get(i).setText("√");
                rightNumber++;
            } else {
                // 回答错误的话:
                wrongNumber++;
            }
        }
    }

 

四、运行效果

1.代码运行时的界面

结对编程1-模块化_第3张图片

2.button1,生成题目,并且开始计时

 结对编程1-模块化_第4张图片

3.停止计时,检查用户的答案,计算本次正确率,从文件中读取历史正确题数,算出总的正确题数和正确率

 结对编程1-模块化_第5张图片

 

 

五、小结感受

并没有感受到1+1>2的效果,因为虽然是两个人在完成一个项目,但是同一个问题两个人都有不一样的想法,所以,还是要花费很多时间在统一看法,统一风格这些方面上。

代码的编写感觉有点乱,一些方法没有很好的封装。

 

六、队伍评价和图片

优点:遇到难题时,能快速准确的找到解决问题的方案

缺点:代码不爱注释

建议:一些代码或许自己看得懂,但是给别人看的时候,注释是很重要的

 结对编程图片:

结对编程1-模块化_第6张图片

七、PSP记录表

PSP2.1

Personal Software Process Stages

Time Senior Student

Time

Planning

计划

10

10

· Estimate

估计这个任务需要多少时间

10

10

Development

开发

281

459

· Analysis

需求分析 (包括学习新技术)

4

15

· Design Spec

生成设计文档

10

5

· Design Review

设计复审

5

5

· Coding Standard

代码规范

5

5

· Design

具体设计

20

40

· Coding

具体编码

200

320

· Code Review

代码复审

7

9

· Test

测试(自我测试,修改代码,提交修改)

30

60

Reporting

报告

15

7

·

测试报告

10

2

·

计算工作量

2

2

·

并提出过程改进计划

3

3

 

 

 

 

你可能感兴趣的:(结对编程1-模块化)