结对编程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.已知正确题数[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.代码运行时的界面
2.按button1,生成题目,并且开始计时
3.停止计时,检查用户的答案,计算本次正确率,从文件中读取历史正确题数,算出总的正确题数和正确率
五、小结感受
并没有感受到1+1>2的效果,因为虽然是两个人在完成一个项目,但是同一个问题两个人都有不一样的想法,所以,还是要花费很多时间在统一看法,统一风格这些方面上。
代码的编写感觉有点乱,一些方法没有很好的封装。
六、队伍评价和图片
优点:遇到难题时,能快速准确的找到解决问题的方案
缺点:代码不爱注释
建议:一些代码或许自己看得懂,但是给别人看的时候,注释是很重要的
结对编程图片:
七、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 |