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完成测试阶段二