结对编程1-模块化
柳泽峰 201421122011
林伟钦 201421122025
Coding地址:
演示视频:
一、需求分析:
在作业一的基础上,实现图形界面,并且有以下的功能:
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 |
|
|
|
|