20172319 结对编程练习_四则运算第一周阶段性总结

20172319 2018.04.23-05.02

结对编程练习_四则运算

第一周阶段性总结

目录


结对对象:

  • 20172316赵乾宸(驾驶,领航员)
  • 20172319唐才铭(驾驶,领航员)
  • 20172319王文彬(驾驶,领航员)

返回目录


需求分析:

1.项目内容

以结对小组形式编写代码,实现以下功能:

1.自动生成题目
可独立使用(能实现自己编写测试类单独生成题目的功能)
可生成不同等级题目,类似于:
1级题目:2 + 5 =
10 - 5 =
之类的两个数,一个运算符的题目

2.题目运算(判题)
可独立使用
实现中缀表达式转为后缀表达式并计算
判断用户答题正误,并输出正确结果

3.支持真分数
可独立使用
实现分数算式的计算

4.题目去重(扩展需求,加分项)
可独立使用
实现对自动生成表达式的去重:如下
若生成:2 + 5 =
5 + 2 =
为同一题目

2.理解:

  • 能随机生成n道四则运算题目,n由用户输入
  • 支持整数和分数
  • 支持多运算符,运算符个数n可由用户输入
  • 能够判断正误,错误时能提醒并输出正确答案
  • 可以计算正确率

返回目录


设计思路:

  • 由于分工的不同,个人独立完成项目的各个部分,我负责的是支持真分数部分;
  1. 两个分数进行运算,题目还得是随机的,必须考虑每一个的分子分母都是随机的,因此设置了四个变量每一个变量相应的从(-50)——(50)之间取随机数
  2. 声明一个String类变量用以判断并输出运算符
 switch (e)  //  运算符号
        {
            case 0:
                s1 = " + ";
                break;
            case 1:
                s1 = " - ";
                break;
            case 2:
                s1 = " × ";
                break;
            case 3:
                s1 = " ÷ ";
                break;
        }

  然后toString输出等式

s2 = numerator1/denominator1 + s1 + numerator2/denominator2 + " = ";

  然而遇到了问题,输出的东西虽然是分数,但并不满足
  真分数,为了保证分数运算是真分数

while (true) {
            numerator1 = generactor.nextInt(51) - 50;
            denominator1 = generactor.nextInt(51) - 50;
            numerator2 = generactor.nextInt(51) - 50;
            denominator2 = generactor.nextInt(51) - 50;
            e = (int)(Math.random()*4);

            a = numerator1;
            b = denominator1;
            c = numerator2;
            d = denominator2;

            if (numerator1 >= denominator1 || numerator2 >= denominator2||denominator1==0||denominator2==0||numerator2==0) //  保证真分数(分子分母不为0,分子小于分母)
                continue;
            else {
                    do {
                        h = a % b;
                        i = c % d;
                        a = b;
                        c = d;
                        b = h;
                        d = i;
                    } while (h != 0 && i != 0);
        }

  运用了辗转相除法,保证分子与分母互质,从而保证
  真分数

  • 类图:

返回目录


结对评价:

  • 虽然彼此都有驾驶与领航,但只是某些方面的合作,个人的编码风格以及代码没有注释,导致有时候并不能看懂伙伴写的是什么,各个目的都可以单独实现,但暂时还没有连成一个整体。

返回目录


PSP:

| PSP2.1 | Personal Software Process Stages| 预估耗时(分钟)|实际耗时(分钟)
| -------- | :----------------😐:----------------😐:---------------: |:-----:
| Planning | 计划| 60| 60
| Estimate |估计这个任务需要多少时间 | 100 | 100
| Development | 开发 | 800 |
| Analysis | 需求分析 (包括学习新技术) | 100 | 60
| Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20
| Design UML | 设计项目UML类图 | 50 | 30
| Coding | 具体编码 | 30 |
| Code Review | 代码复审 | 50 |
| Test |测试(自我测试,修改代码,提交修改) | 30 |
|Size Measurement|计算工作量(实际时间| 30|
Postmortem & Process Improvement Plan|事后总结, 并提出过程改进计划| 30 |
| | 合计| 1240 |

返回目录


参考资料:

结对编程练习_四则运算

判断互质

返回目录

posted @ 2018-05-01 22:37  ⊙ω⊙  阅读(235)  评论(1编辑  收藏  举报