2020.10.08

一、今日学习内容

     二柱子四则运算:测试二

      可以控制操作数的个数、定制数值范围

package yunsuan;

import java.util.Scanner;

public class SiZeYunSuan1 {
    private static int N=30;//出题个数
    private static int n=2;//操作数个数
    private static int max=100;//最大取值
    private static int[] number=new int[100];
    private static int[] ope=new int[100];
    private static String[] str=new String[100];
    SiZeYunSuan1() {}
    //随机生成数字
    public static void Random(int N,int n,int max) {
        for(int i=0;i<N*n;i++) {
            number[i]=(int)(Math.random()*max+1);
        }
        for(int j=0;j<N*(n-1);j++) {
            ope[j]=(int)(Math.random()*4+0);
        }
    }
    //获取运算符
    public static String getOp(int index) {
        String string = "";
        switch (index) {
        case 0:
            string = "+";
            break;
        case 1:
            string = "-";
            break;
        case 2:
            string = "*";
            break;
        case 3:
            string = "/";
            break;
        }
        return string;
    }
    //输出题目
    public static void Output(int N,int n) {
        Scanner con=new Scanner(System.in);
        int i=0,j=0,answer;
        for(int p=0;p<N;p++) {
            String s1=" ";
            System.out.print("("+(p+1)+")");
            for(int m=0;m<n;m++) {
                if(m==(n-1)) {
                    System.out.println(number[i]+"=");
                    break;
                }
                System.out.print(number[i]+getOp(ope[j]));
                s1=s1+String.valueOf(number[i])+getOp(ope[j]);
                i++;j++;
            }
            str[p]=s1+String.valueOf(number[i]);
            answer=con.nextInt();
        }
    }
    //判断是否重复
    public static int judge() {
        int f=1;
        for(int i=0;i<N;i++) {
            for(int j=0;j<i;j++) {
                str[i]=new String();
                if(str[i].equals(str[j]))f=0;
            }    
        }
        return f;
    }
    public static void main(String[] args) {
        SiZeYunSuan1 yuansuan=new SiZeYunSuan1();
        Scanner con=new Scanner(System.in);
        int a,d,N,n,max;
        System.out.println("请输入题目数量:");
        N=con.nextInt();    
        System.out.println("请输入操作数个数:");
        n=con.nextInt();
        System.out.println("请输入最大取值范围:");
        max=con.nextInt();
        Random(N,n,max);
        a=yuansuan.judge();
        if(a==0) {Random(N,n,max);Output(N,n);}
        if(a==1) Output(N,n);
    }
}

        

二、遇到的问题

    运算中判断重复、以及判断重复的循环复杂程度还需要更加精炼

三、明日计划

    继续学习Java完成测试阶段二

posted @ 2020-10-08 20:21  小仙女W  阅读(103)  评论(0编辑  收藏  举报