结对编程阶段总结(第二周)
结对编程阶段总结(第二周)
需求分析
- 实现一个命令行程序,要求:
- 自动生成小学四则运算题目(加、减、乘、除)
- 支持整数
- 支持多运算符(比如生成包含100个运算符的题目)
- 支持真分数
- 统计正确率
设计过程
- 在第一周的基础上,我和我的结对伙伴继续一起努力,磕磕绊绊地完成了老师的要求。
- 最麻烦的其实还是对括号的要求。我们在网上很容易就找到了一些资料,但是最终还是发现老师给出的几份参考资料最有参考价值。没有好好看老师发的链接真的是非常重大的失误。
- 后来我选择抛弃原来的一些想法,对我们代码的思路进行重新的构造。
- 有了好的引导与实现方法,代码也就水到渠成的出来了。
关键部分
本周增加的分数计算部分
public fenshu add(fenshu op2)
{
int commonDenominator = denominator * op2.getDenominator();
int numerator1 = numerator * op2.getDenominator();
int numerator2 = op2.getNumerator() * denominator;
int sum = numerator1 + numerator2;
System.out.print("("+this.toString()+")" + " + " + "("+op2.toString()+")" + "=");
return new fenshu (sum, commonDenominator);
}
public fenshu subtract(fenshu op2)
{
int commonDenominator = denominator * op2.getDenominator();
int numerator1 = numerator * op2.getDenominator();
int numerator2 = op2.getNumerator() * denominator;
int difference = numerator1 - numerator2;
System.out.print("("+this.toString()+")" + " - " + "("+op2.toString()+")" + "=");
return new fenshu(difference,commonDenominator);
}
public fenshu multiply (fenshu op2)
{
int numer = numerator * op2.getNumerator();
int denom = denominator * op2.getDenominator();
System.out.print("("+this.toString()+")" + " * " + "("+op2.toString()+")" + "=");
return new fenshu (numer, denom);
}
public fenshu divide (fenshu op2)
{
fenshu op1 = op2.reciprocal();
int numer = numerator * op1.getNumerator();
int denom = denominator * op1.getDenominator();
System.out.print("("+this.toString()+")" + " / " + "("+op2.toString()+")" + "=");
return new fenshu (numer, denom);
运行过程截图
代码托管
对伙伴的评价
我与李天林同学的相处依然非常融洽,代码编写的过程也是两人一起努力构思、努力实现的结果。没有什么特别需要改进的地方,望继续保持。
结对学习照片
PSP表格
步骤 | 耗时 | 百分比 |
---|---|---|
学习相关思路 | 100min | 27.7% |
设计程序思路 | 60min | 16.6% |
代码实现 | 100min | 27.7% |
bug调试 | 80min | 22.2% |
博客总结 | 20min | 5.5% |