结对编程项目-四则运算(第一周)

需求分析(描述自己对需求的理解,以及后续扩展的可能性)

1.代码要满足加减乘除的运算,包含括号,支持真分数

2.对象选择生成四则运算题目的数量

3.手动输入结果

4.题目要可以验证结果正确与否并统计正确率

5.要输出文件

6.可以支持多运算符

设计思路

1.先将代码的结构构建好,即先写输出题目的数量

2.通过for循环设计随机出现的题型,包括真分数题型

3.编写不同类型的题型并检验

4.编写题目出现后的输入及对应的语句,最后调用NumberFormat类统计正确的概率

5.考虑如何输入文件和避免重复题目的方法

6.测试

实现过程中的关键代码解释

1.String answer88 = String.valueOf(answer8);在完成真分数的设计时,由于分数类型带/符号,不能使用int来表示,只能用String类型,而且对于分数我加了一个分数类Fraction,所以需要将分数类的结果转为String,才能使输入值和正确答案的类型相同,从而进行比较。

2.关于百分数的生成,需要先将整型数转化为double,分子必须为double类型,分母可不必,使用NumberFormat形式来表示百分数,NumberFormat fmt = NumberFormat.getPercentInstance();

测试方法

通过输入数量决定生成题目的数量,并且题型随机,最后统计正确率。

运行过程截图

代码托管

遇到的困难及解决方法

1.真分数如何表示?

 解决方法:在网上找了一个分数类`Fraction`,里面有分数加减乘除法则。于是我们编写了一个测试类来尝试如何调用该类,测试成功后将其使用于四则运算上来进行表示分数。例如:

public class FractionTest {
    public static void main(String[] args) {
        Fraction f1 = new Fraction(1, 2);
        Fraction f2 = new Fraction(2, 4);
        System.out.println(f1);
        System.out.println(f2);
        System.out.println(f2.simplify());
        System.out.println(f1.add(f2));
}
}

2.如何写入文件?

 解决方法:此问题为下周任务。

对结对的小伙伴做出评价(重点指出需要改进的地方)

我的搭档是齐力锋同学,他负责顶层设计,我负责代码的编写。编码过程中,我们通常采用坐在一起,一起讨论,边讨论,边动手,我们进行了深刻的讨论,提出了如何不使用栈来写四则运算,极大程度上减少了脑力活动但是,在接下来的一周里我们会继续讨论如何使用栈来编写类。希望他能够花更多时间来进行复杂代码的实践。以免生疏。

PSP记录

Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
计划 120 120
估计这个任务需要多少时间 360 360
生成设计文档 0 0
设计复审 (和同事审核设计文档) 0 0
开发 30 10
需求分析 60 30
具体编码 240 300
测试 20 30
测试报告 60 120
事后总结, 并提出过程改进计划 20 20
posted @ 2017-05-14 20:38  润润大魔王  阅读(261)  评论(6编辑  收藏  举报