zoukankan      html  css  js  c++  java
  • 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解决方案:
      因为在计算类当中编写的时候没有注意对象的运用,使得在一个计算类的方法中重复利用了多个对象,使得彼此相互关联,之后,在测试类中调用时,就发生了调不出来的状况。

    本来应该是这个样子:

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

  • 相关阅读:
    jvm-java内存模型与锁优化
    jvm-垃圾收集器与内存分配策略
    jvm-内存区域与内存溢出异常
    并发-AQS源码分析
    并发-Synchronized底层优化(偏向锁、轻量级锁)
    并发-CopyOnWrite源码分析
    并发-AtomicInteger源码分析—基于CAS的乐观锁实现
    【BZOJ】3052: [wc2013]糖果公园 树分块+带修改莫队算法
    【BZOJ】1086: [SCOI2005]王室联邦
    【BZOJ】4358: permu 莫队算法
  • 原文地址:https://www.cnblogs.com/qh45wangwenbin/p/9010914.html
Copyright © 2011-2022 走看看