• 20165223 结对编程之四则运算week1-阶段性总结


    目录

    一、结对对象

    • 担任角色
      • 驾驶员(Driver):20165223 蔡霓(是控制键盘输入的人)
      • 领航员(Navigator):20165218 赵冰雨(起到领航、提醒的作用)
    • 搭档本次结对博客:20165218
    • 本次结对码云链接:四则运算

    二、需求分析

    取自《结对编程项目-四则运算》

    • 题目内容

    实现一个命令行程序,要求:

    自动生成小学四则运算题目(加、减、乘、除)
    支持整数
    支持多运算符(比如生成包含100个运算符的题目)
    支持真分数
    统计正确率

    • 扩展需求
      • 文件:

        • 处理生成题目并输出到文件
        • 完成题目后从文件读入并判题
        • 多语言支持:简体中文, 繁體中文, English
      • 生成题目去重

    程序一次运行生成的题目不能重复,即任何两道题目不能通过有限次交换+和×左右的算术表达式变换为同一道题目。例如,23 + 45 = 和45 + 23 = 是重复的题目,6 × 8 = 和8 × 6 = 也是重复的题目。3+(2+1)和1+2+3这两个题目是重复的,由于+是左结合的,1+2+3等价于(1+2)+3,也就是3+(1+2),也就是3+(2+1)。但是1+2+3和3+2+1是不重复的两道题,因为1+2+3等价于(1+2)+3,而3+2+1等价于(3+2)+1,它们之间不能通过有限次交换变成同一个题目。(引用自:http://www.cnblogs.com/jiel/p/4810756.html

    • week1要求(本次结对要求)

      • 需求分析
      • 设计思路
      • 支持整数
      • JUnit测试
      • 扩展需求(*选)

    三、设计思路

    
    import java.util.Scanner;
    import java.util.Random;
    
    public class fourOperations
    {
        //选择所需要的四则运算
        public static void main(String[] args)
        {
            int type;
            int A, B, C;
            String Exit = "n";
            Scanner scanner = new Scanner(System.in);
            while ( Exit.equalsIgnoreCase("n"))
            {
                System.out.println("==========整数的四则运算==========");
                System.out.println("请选择要进行的四则运算");
                System.out.print("1(+) 2(-) 3(×) 4(÷) : " );
                type = scanner.nextInt();
                //进行四则运算
                switch (type)
                {
                    case 1:
                        System.out.print("请输入两个整数:");
                        A = scanner.nextInt();
                        B = scanner.nextInt();
                        C = A + B;
                        System.out.println( A + " + " + B + " = " + C);
                        break;
                    case 2:
                        System.out.print("请输入两个整数:");
                        A = scanner.nextInt();
                        B = scanner.nextInt();
                        C = A - B;
                        System.out.println( A + " - " + B + " = " + C);
                        break;
                    case 3:
                        System.out.print("请输入两个整数:");
                        A = scanner.nextInt();
                        B = scanner.nextInt();
                        C = A * B;
                        System.out.println( A + " × " + B + " = " + C);
                        break;
                    case 4:
                        System.out.print("请输入两个整数:");
                        A = scanner.nextInt();
                        B = scanner.nextInt();
                        C = A / B;
                        System.out.println( A + " ÷ " + B + " = " + C);
                        break;
                    //default排错
                    default:
                        System.out.print("输入的运算代表数字错误!");
                }
                //优化设计
                System.out.print("退出程序?(y/n): ");
                Exit = scanner.nextLine();
                Exit = scanner.nextLine();
            }
        }
    }
    
    

    四、功能截图

    • 测试要求内容
      • 正常测试(正常整数运算)
      • 异常测试(未能实现的小数分数运算)
      • 边界测试(临界点的测试,如0处的运算)
    • 测试截图
      【加法】

    【减法】

    【乘法】

    【除法】

    五、结对感受

    两人搭配,干活不累。第一次尝试双人结对编写代码,分别担任不同角色的两人在编写代码的时候更轻松了,不会像之前那样“不撞南墙不回头”一个人闷声敲代码浪费宝贵时间。这次的编程中也出现了些问题,但在两个人的努力下都较圆满的解决了。事实上目前的代码也还不够完善,我也要更加努力,在代码的编写上更进一步,希望下一周的结对编程中能学到更多,掌握更多。

  • 相关阅读:
    单词方阵【DFS】
    关于vs扩展下载慢的问题。(更改一下,补充)
    归并排序的应用
    用qt做了个简易音乐播放器(零基础真的是太难了)
    实操理解微软所说的“物理文件位置”和“逻辑文件位置”的区别
    获取指定数量的容器的各自的所有元素,并可对容器分页
    [备忘]silverlight中关于“复制到输出目录”和“生成操作”
    [备忘]silverlight中播放视频路径问题
    与并行相关的常见概念
    巧用vs的PostBuildEvent
  • 原文地址:https://www.cnblogs.com/moddy13162201/p/8849685.html
Copyright © 2020-2023  润新知