结对编程之四则运算——第二阶段报告
结对编程之四则运算——第二阶段报告
摘要:本周主要任务是解决判题问题,修改程序的漏洞,实现计时功能等
代码托管
需求分析
我将我做的的这一程序的定位是:能够让用户知道自己的计算水平的同时也能够让设计者认识到用户的水平。我并没有设计要让用户选择做几道题,而是他能够随时选择不做。这一想法是基于用户自身希望了解自己实力的前提为保障。
关键代码的解释以及编写时遇到的问题
判题问题
判题方面的问题是我上周遗留下来的问题,上周我一直纠结"="和"equals"这两个方法,但是实在无法实现我想要的结果,本周我在百度中寻找答案,发现了自己一个很可笑的错误,就是equals方法虽然是自带的,但每次使用一般都会重写这个类,以达到自己想要实现的目标。同时我还记起来了曾经学习到的compareTo方法,于是我重写了一个适用自己程序的compareTo方法。
解决方案
效果图
限时答题
这是我自己另外想做的功能,我在网上搜索,学习如何做一个定时器,但是在运行的过程中出现了一个问题。我不知道该如何实现通过计时器终止之前的操作,想了很多的方法,包括当时间一到,将回答赋值给一个不可能正确的值,然后使得用户错误,很遗憾我没有坚持下来,无法实现那个功能。只做了一个简单的功能,从而提醒用户加快速度
解决方案
效果图
实现多语言
在思考这一功能实现的方法上,我最先想到的就是运用equals方法,通过用户选择1,2,3或者是A,B,C,再运用if来判断从而实现。想法很简单但是对于我的程序来说这样做就有些负责,我的程序有一个很大的问题就是没有符合程序员编程时应该注意的原则,只实现了一个类,所以如果那样做的,冗长,不便于阅读。所以我以中文为主,英文为翻译而提供给用户
解决方案
效果图
查看前文的图片便知
BUG的修复
在这里感谢我的结对伙伴王译潇帮我找到了一些BUG
BUG-1
我没有考虑到如果用户输入了Level1-6范围之外的值怎么应对,如果我没有采取措施的话,这个程序只能重新运行,所以我做了一些处理
解决方案
效果图
BUG-2
没有考虑到如果用户一题都没有回答怎么办,也就是说当我在程序最后计算正确率的时候变成了0/0,分母出现了0就会出现了问题。于是我对程序进行了修改和完善。
解决方案
效果图
UML图
l的运行以及测试
Leve1与Level2
Level3与Level4
Level5与Level6
结对伙伴的评价
20162310王译潇同学是一个十分聪明的同学,结对编程过程中经常会提出一些令我震惊的问题,他十分擅长找BUG,在他的帮助下我们的程序更加的完善。至于他的问题,他缺少了一些务实的精神,应该要在这方面下点功夫
PSP2.1
| PSP2.1 | Personal Software Process Stages |预估耗时(小时) |实际耗时(小时)
| -------- | :----------------😐:----------------😐:---------------: |:-----:
| Planning | 计划 |1 | 1
|· Estimate |· 估计这个任务需要多少时间 | 5 |10
|· Analysis |· 需求分析 (包括学习新技术) | 2 |2
|· Design Spec |· 生成设计文档 | 1 |1
|· Design Review |· 设计复审 (和同事审核设计文档) |1 |1
|· Coding Standard |· 代码规范 (为目前的开发制定合适的规范) |1 |1
|· Design |· 具体设计 | 2 | 3
|· Coding |· 具体编码 | 5 | 6
|· Code Review |· 代码复审 |1 |1
|· Test |· 测试(自我测试,修改代码,提交修改) |1 |1
|Reporting | 报告 |1 |1
|· Test Report |· 测试报告 |2 |2.5
|· Size Measurement |· 计算工作量 |0.5 |0.5
|· Postmortem & Process |· 事后总结, 并提出过程改进计划 |3 |2