• 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

    返回目录


    参考资料:

    结对编程练习_四则运算

    判断互质

    返回目录

  • 相关阅读:
    微信小程序开发--页面之间的跳转
    iOS基础UI控件介绍-Swift版
    iOS技术栈-Swift版
    SpringBoot实战(四)获取接口请求中的参数(@PathVariable,@RequestParam,@RequestBody)
    SpringBoot实战(三)代码热部署
    SpringBoot实战(二)Restful风格API接口
    SpringBoot实战(一)HelloWorld
    Spring Boot浅谈(是什么/能干什么/优点和不足)
    CentOS的基本设置界面
    虚拟机VM安装Linux系统CentOS7
  • 原文地址:https://www.cnblogs.com/Tangcaiming/p/9011517.html
Copyright © 2020-2023  润新知