二柱一下打印出好多份不同的题目,让孩子做了。老师看了作业之后,对二柱赞许有加。别的老师闻讯, 问二柱能否扩大他的影响力,编个软件,给二年级到四年级都用,多了一些小小的要求:

1、题目避免重复;

2、可定制(数量/打印方式);

3、可以控制下列参数: 是否有乘除法、是否有括号、 数值范围、加减有无负数、除法有无余数、否支持分数 (真分数, 假分数, …)、是否支持小数 (精确到多少位)、打印中每行的间隔可调整;

  1 package firs;
  2
  3 import java.util.Random;
  4 import java.util.Scanner;
  5
  6 public class Calculation {
  7 public static void main(String[] args) {
  8     Random random = new Random();
  9     Scanner sca=new Scanner(System.in);
 10     int a ;
 11     int b ;
 12     int c ;
 13     int x=1;
 14     int n;
 15     int m;
 16     int j=0;
 17     int q[][]=new int[1000000][3];
 18     System.out.println("请输入所要打印的题数");
 19     n=sca.nextInt();
 20     System.out.println("请输入每行打印的题数");
 21     m=sca.nextInt();
 22     for(int i=0;i<=n;i++)
 23     {
 24         c=random.nextInt(4);
 25         if(c==0)
 26         {
 27              for(;;)
 28              {
 29                  int w=0;
 30                  a = random.nextInt(100)+1;
 31                  b = random.nextInt(100)+1;
 32                  for(int k=0;i<x;i++)
 33                  {
 34                      if(q[k][0]==a&&q[k][1]==b&&q[k][3]==c)
 35                      {
 36                          w=1;
 37                      }
 38                  }
 39                  if(w==0)
 40                  {
 41                      break;
 42                  }
 43              }
 44              System.out.print(x+".   "+a+" + "+b+"   ");
 45
 46              q[x][0]=a;
 47              q[x][1]=b;
 48              q[x][2]=c;
 49              x++;
 50              if(j<m)
 51              {
 52                  j++;
 53              }
 54              if(j==m)
 55              {
 56                  j=0;
 57                  System.out.println(" ");
 58              }
 59         }
 60         if(c==2)
 61         {
 62             for(;;)
 63             {
 64                 for(;;)
 65                  {
 66                      int w=0;
 67                      a = random.nextInt(100)+1;
 68                      b = random.nextInt(100)+1;
 69                      for(int k=0;i<x;i++)
 70                      {
 71                          if(q[k][0]==a&&q[k][1]==b&&q[k][3]==c)
 72                          {
 73                              w=1;
 74                          }
 75                      }
 76                      if(w==0)
 77                      {
 78                          break;
 79                      }
 80                  }
 81                  if(a>b)
 82                  {
 83                      System.out.print(x+".   "+a+" - "+b+"   ");
 84                      q[x][0]=a;
 85                      q[x][1]=b;
 86                      q[x][2]=c;
 87                      x++;if(j<m)
 88                      {
 89                          j++;
 90                      }
 91                      if(j==m)
 92                      {
 93                          j=0;
 94                          System.out.println(" ");
 95                      }
 96                      break;
 97                  }
 98             }
 99         }
100         if(c==3)
101         {
102             for(;;)
103             {
104                 for(;;)
105                  {
106                      int w=0;
107                      a = random.nextInt(100)+1;
108                      b = random.nextInt(100)+1;
109                      for(int k=0;i<x;i++)
110                      {
111                          if(q[k][0]==a&&q[k][1]==b&&q[k][3]==c)
112                          {
113                              w=1;
114                          }
115                      }
116                      if(w==0)
117                      {
118                          break;
119                      }
120                  }
121                  if(a*b<100&&a!=0&&b!=0)
122                  {
123                      System.out.print(x+".   "+a+" x "+b+"   ");
124                      q[x][0]=a;
125                      q[x][1]=b;
126                      q[x][2]=c;
127                      x++;
128                      if(j<m)
129                      {
130                          j++;
131                      }
132                      if(j==m)
133                      {
134                          j=0;
135                          System.out.println(" ");
136                      }
137                      break;
138                  }
139             }
140         }
141         if(c==1)
142         {
143             for(;;)
144             {
145                 for(;;)
146                  {
147                      int w=0;
148                      a = random.nextInt(100)+1;
149                      b = random.nextInt(100)+1;
150                      for(int k=0;i<x;i++)
151                      {
152                          if(q[k][0]==a&&q[k][1]==b&&q[k][3]==c)
153                          {
154                              w=1;
155                          }
156                      }
157                      if(w==0)
158                      {
159                          break;
160                      }
161                  }
162                  if(a%b==0&&b!=0&&a!=0)
163                  {
164                      System.out.print(x+".   "+a+" / "+b+"   ");
165                      q[x][0]=a;
166                      q[x][1]=b;
167                      q[x][2]=c;
168                      x++;
169                      if(j<m)
170                      {
171                          j++;
172                      }
173                      if(j==m)
174                      {
175                          j=0;
176                          System.out.println(" ");
177                      }
178                      break;
179                  }
180             }
181         }
182     }
183 }
184 }
02-12 22:53