201571030304/201571030311《小学四则运算练习软件》结对项目报告
任务1源码在Github的仓库主页链接地址:https://github.com/LVowe999/Demo_1_2_2
需求分析:
(1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分;
(2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:
(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习;
(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:
(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试;
(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。
(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。
软件设计:
核心功能代码展示:
事件监听代码:
public void onClick(View view) { if (view.getId() == R.id.start) { input(); shuru.setText(inopr); i=1; fenshu = 0; j++; if (j == 5) { j = 0; } } else if(view.getId()== R.id.daan){ if (Integer.valueOf(shurudaan.getText().toString()) == sum) { fenshu += 5; defen.setText(String.valueOf(fenshu)); } if(i<20) { input(); shuru.setText(inopr); i++; } switch (j) { case 0: diyilunfenshu.setMaxHeight(fenshu*2); break; case 1: dierlunfenshu.setMaxHeight(fenshu*2); break; case 2: disanlunfenshu.setMaxHeight(fenshu*2); break; case 3: disilunfenshu.setMaxHeight(fenshu*2); break; case 4: diwulunfenshu.setMaxHeight(fenshu*2); break; } shurudaan.setText(""); } // // break; } }
程序运行:
此次结对作业的PSP:
PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
Planning | 计划 | 10 | 8 |
Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 10 | 8 |
Development | 开发 | 95 | 110 |
Analysis | 需求分析 (包括学习新技术) | 5 | 10 |
Design Spec | 生成设计文档 | 5 | 5 |
Design Review | 设计复审 (和同事审核设计文档) | 5 | 5 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 5 | 5 |
Design | 具体设计 | 15 | 10 |
Coding | 具体编码 | 40 | 45 |
Code Review | 代码复审 | 5 | 10 |
Test | 测试(自我测试,修改代码,提交修改) | 15 | 20 |
Reporting | 报告 | 10 | 5 |
Test Report | 测试报告 | 5 | 3 |
Size Measurement | 计算工作量 | 3 | 1 |
Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 2 | 1 |
使用汉堡评价法给你的小伙伴一些点评:
在链接中并没有理解‘’汉堡评价法‘’的意义,我此次的结对伙伴是马宏伟,他对于程序的设计非常有想法,实施他的设计很好的实现了实验中的重要功能。与他合作改变了一些我以前在编程学习中所犯的低级错误,节省了本次实验的用时。和他合作我很愉快,从中也学到了很多。
结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会:
结对编程能够带来1+1>2的效果。结对编程有效的提升了个人能力的上限,节省更多的时间,提高效率。使个体之间相互学习,共同提高。