2020.10.5

二柱子

  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 }

原文地址:https://www.cnblogs.com/Nojava/p/13772129.html