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

Posted tangcaiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

返回目录


参考资料:

结对编程练习_四则运算

判断互质

返回目录


















以上是关于20172319 结对编程练习_四则运算第二周阶段性总结的主要内容,如果未能解决你的问题,请参考以下文章

2017-2018-2 20172310『Java程序设计』课程 结对编程练习_四则运算_第二周

20172312『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

20172326『Java程序设计』课程结对编程练习_四则运算第二周阶段总结

20175312 2018-2019-2 《Java程序设计》结对编程练习_四则运算(第二周:整体性总结)

20172315『Java程序设计』课程 结对编程练习_四则运算第二周阶段总结

20165104孟凡斌-结对编程练习(第二周)