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