二柱子
1 import java.util.*; 2 public class math{ 3 static int d;//出题个数 4 static int e;//操作数个数 5 static int f;//操作数取值范围 6 static int u=0;//错题个数; 7 static int[] D=new int[100];//随机数 8 static int[] C=new int[100];//运算法则 9 static int[] M=new int[100];//错误的随机数 10 static int[] F=new int[100];//错误的运算法则 11 public static void main(String[] args) { 12 Scanner con=new Scanner(System.in); 13 System.out.println("请输入出题个数,操作数个数,操作数取值范围"); 14 d=con.nextInt(); 15 e=con.nextInt(); 16 f=con.nextInt(); 17 random(); 18 chuti(); 19 mistake(); 20 21 } 22 public static int panduan(int a[],int i) {//判断重复 23 int f=0; 24 for(int j=0;j<i;j++) { 25 for(int k=0;k<i;k++) { 26 if(a[i]==a[k]) 27 f=1; 28 } 29 } 30 return f; 31 } 32 public static void chuti() {//出题 33 int z; 34 int f; 35 u=0; 36 int w=0; 37 int q=0; 38 int mis=0; 39 int g=0; 40 Scanner con=new Scanner(System.in); 41 for(int i=0;i<d;i++) { 42 int result=0; 43 C[i]=(int)(Math.random()*4+1); 44 //f=panduan(a,i); 45 //if(f==1) continue; 46 switch(C[i]) { 47 case 1:{ 48 for(w=0;w<e;w++) { 49 result+=D[w+q]; 50 if(w==(e-1)) { 51 System.out.print(D[w+q]+"="); 52 break; 53 } 54 System.out.print(D[w+q]+"+"); 55 } 56 z=con.nextInt(); 57 if(z==result) System.out.println("答案正确"); 58 else { 59 mis++; 60 System.out.println("答案错误"); 61 for(w=0;w<e;w++) { 62 M[g]=D[w+q]; 63 F[u]=1; 64 g++; 65 } 66 u++; 67 } 68 q+=e; 69 break; 70 } 71 case 2:{ 72 for(w=0;w<e;w++) { 73 result=D[q]; 74 result-=D[w+q]; 75 if(w==(e-1)) { 76 System.out.print(D[w+q]+"="); 77 break; 78 } 79 System.out.print(D[w+q]+"-"); 80 } 81 z=con.nextInt(); 82 if(z==result) System.out.println("答案正确"); 83 else { 84 mis++; 85 System.out.println("答案错误"); 86 for(w=0;w<e;w++) { 87 M[g]=D[w+q]; 88 F[u]=2; 89 g++; 90 } 91 u++; 92 } 93 q+=e; 94 break; 95 } 96 case 3:{ 97 for(w=0;w<e;w++) { 98 result=D[q]; 99 result*=D[w+q]; 100 if(w==(e-1)) { 101 System.out.print(D[w+q]+"="); 102 break; 103 } 104 System.out.print(D[w+q]+"*"); 105 } 106 z=con.nextInt(); 107 if(z==result) System.out.println("答案正确"); 108 else { 109 mis++; 110 System.out.println("答案错误"); 111 for(w=0;w<e;w++) { 112 M[g]=D[w+q]; 113 F[u]=3; 114 g++; 115 } 116 u++; 117 } 118 q+=e; 119 break; 120 } 121 case 4:{ 122 for(w=0;w<e;w++) { 123 result=D[q]; 124 result/=D[w+q]; 125 if(w==(e-1)) { 126 System.out.print(D[w+q]+"="); 127 break; 128 } 129 System.out.print(D[w+q]+"÷"); 130 } 131 z=con.nextInt(); 132 if(z==result) System.out.println("答案正确"); 133 else { 134 mis++; 135 System.out.println("答案错误"); 136 for(w=0;w<e;w++) { 137 M[g]=D[w+q]; 138 F[u]=4; 139 g++; 140 } 141 u++; 142 } 143 q+=e; 144 break; 145 } 146 } 147 } 148 System.out.println("本次答题共做"+d+"道题,错误"+mis+"道,错误率为:"+(100/d)*mis+"%"); 149 } 150 151 public static void random() {//生成随机数 152 for(int i=0;i<(d*e);i++) { 153 D[i]=(int)(Math.random()*f+1); 154 } 155 } 156 public static void mistake() { 157 Scanner con=new Scanner(System.in); 158 int d=0; 159 int mis=0; 160 int q=0; 161 int j=0; 162 System.out.println("错题重做"); 163 for(int i=0;i<u;i++) { 164 int result=0; 165 switch(F[i]) { 166 case 1:{ 167 for(j=0;j<e;j++) { 168 result+=M[j+q]; 169 if(j==e-1) { 170 System.out.print(M[j+q]+"="); 171 break; 172 } 173 System.out.print(M[j+q]+"+"); 174 } 175 q+=e; 176 d=con.nextInt(); 177 if(d==result) System.out.println("答案正确"); 178 else { 179 mis++; 180 System.out.println("答案错误"); 181 } 182 break; 183 } 184 case 2:{ 185 for(j=0;j<e;j++) { 186 result=M[q]; 187 result-=M[j+q]; 188 if(j==e-1) { 189 System.out.print(M[j+q]+"="); 190 break; 191 } 192 System.out.print(M[j+q]+"-"); 193 } 194 q+=e; 195 d=con.nextInt(); 196 if(d==result) System.out.println("答案正确"); 197 else { 198 mis++; 199 System.out.println("答案错误"); 200 } 201 break; 202 } 203 case 3:{ 204 for(j=0;j<e;j++) { 205 result=M[q]; 206 result*=M[j+q]; 207 if(j==e-1) { 208 System.out.print(M[j+q]+"="); 209 break; 210 } 211 System.out.print(M[j+q]+"*"); 212 } 213 q+=e; 214 d=con.nextInt(); 215 if(d==result) System.out.println("答案正确"); 216 else { 217 mis++; 218 System.out.println("答案错误"); 219 } 220 break; 221 } 222 case 4:{ 223 for(j=0;j<e;j++) { 224 result=M[q]; 225 result/=M[j+q]; 226 if(j==e-1) { 227 System.out.print(M[j+q]+"="); 228 break; 229 } 230 System.out.print(M[j+q]+"÷"); 231 } 232 q+=e; 233 d=con.nextInt(); 234 if(d==result) System.out.println("答案正确"); 235 else { 236 mis++; 237 System.out.println("答案错误"); 238 239 } 240 break; 241 } 242 } 243 } 244 System.out.println("错题重做中共错题"+mis+"道"); 245 } 246 }