2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-中坚阶段

2017-2018-2 1723 『Java程序设计』课程

结对编程练习-四则运算-中坚阶段

如今的编写,进入了一段时间的中坚阶段,小伙伴的思路虽然很一致,但是总是存在着一定问题,这就造成了我们中坚阶段的很长一段时间的停止阶段;
加油!

结对编程的战友

20172316 赵乾宸:负责对于整数出题的编程;
20172319 唐才铭:负责对于分数出题的编程;
我:20172329 王文彬:负责对于计算和题目去重的编写;
测试为分别进行测试,最后由赵乾宸进行集体测试。
每个人都是驾驶员,是彼此的引航员,团队,分工明确是一部分,但是集体力量的结晶才是最伟大的!!!

相关过程的代码

生成题目的相关代码

import java.util.Scanner;

public class Compute2 {
    protected int a;
    protected String s1 = "", str = "";

    public Compute2() {
        Scanner scan = new Scanner(System.in);
        System.out.println("几级运算?");
        int n = scan.nextInt();
        Scanner qqq = new Scanner(System.in);
       /* System.out.println("生成几个题目?");
        int q = qqq.nextInt();
        Object[] p = new Object[q] ;
        for (int index = 0; index < q; index++) {*/
            int a1 = (int) (Math.random() * 100);
            int a2 = (int) (Math.random() * 100);
            int t1 = (int) (Math.random() * 4);
            switch (t1) {
                case 0: {
                    s1 = " + ";
                    break;
                }
                case 1: {
                    s1 = " - ";
                    break;
                }
                case 2: {
                    s1 = " * ";
                    break;
                }
                case 3: {
                    s1 = " / ";
                }
            }
            for (int i = 0; i < n - 1; i++) {
                int a = (int) (Math.random() * 100);
                int t = (int) (Math.random() * 4);
                String s = "";
                switch (t) {
                    case 0: {
                        s = " + ";
                        break;
                    }
                    case 1: {
                        s = " - ";
                        break;
                    }
                    case 2: {
                        s = " * ";
                        break;
                    }
                    case 3: {
                        s = " / ";
                    }
                }
                str += a + s;

            }

            str += a1 + s1 + a2;


        }
        public String getFormula () {
            return str;
        }
    }

测试:

计算的相关代码

关键代码解释

import java.util.Scanner;

public class Compute2 {
    protected int a;
    protected String s1 = "", str = "";

    public Compute2() {
        Scanner scan = new Scanner(System.in);
        System.out.println("几级运算?");
        int n = scan.nextInt();
        Scanner qqq = new Scanner(System.in);
       /* System.out.println("生成几个题目?");
        int q = qqq.nextInt();
        Object[] p = new Object[q] ;
        for (int index = 0; index < q; index++) {*/
            int a1 = (int) (Math.random() * 100);
            int a2 = (int) (Math.random() * 100);
            int t1 = (int) (Math.random() * 4);
            switch (t1) {
                case 0: {
                    s1 = " + ";
                    break;
                }
                case 1: {
                    s1 = " - ";
                    break;
                }
                case 2: {
                    s1 = " * ";
                    break;
                }
                case 3: {
                    s1 = " / ";
                }
            }
            for (int i = 0; i < n - 1; i++) {
                int a = (int) (Math.random() * 100);
                int t = (int) (Math.random() * 4);
                String s = "";
                switch (t) {
                    case 0: {
                        s = " + ";
                        break;
                    }
                    case 1: {
                        s = " - ";
                        break;
                    }
                    case 2: {
                        s = " * ";
                        break;
                    }
                    case 3: {
                        s = " / ";
                    }
                }
                str += a + s;

            }

            str += a1 + s1 + a2;


        }
        public String getFormula () {
            return str;
        }
    }
  • 出题时选择了“swich语句“,因为,这样可以进行人机互动,一方面可以实现我们所需要的输入一个阶数,可以完成对于该阶数的出题;
  • 其次,利用了累加“+=”进行输出,就会产生按照我们需求的题目;

实验中所遇到的问题

  • 问题1:在做好计算类以后,在测试的时候,发现结果是0?

  • 问题1解决方案:
    因为在计算类当中编写的时候没有注意对象的运用,使得在一个计算类的方法中重复利用了多个对象,使得彼此相互关联,之后,在测试类中调用时,就发生了调不出来的状况。

本来应该是这个样子:

但是因为方法直接有点问题,一开始一直提示,按照提示将方法都设置成为了静态,之后再测试类中再次调用的时候就出现了问题,现在一直在解决于这个问题;

原文地址:https://www.cnblogs.com/qh45wangwenbin/p/9010914.html