Java设计给小学生的自动出题系统

系统要求:

1、自动出题,涉及加减乘除四则运算

2、运算为两位数之间

3、减法不能出现负数

4、乘法结果不超过100

5、除法必须整除

6、用户决定出题量

7、用户决定几道题一换行

8、题目不允许重复

 

 1 /**
 2  * 班级:信1805-1
 3  * 学号:20183566
 4  * 姓名:董奥
 5  * */
 6 import java.util.Random;
 7 import java.util.Scanner;
 8 public class Test01 {
 9     public static void main(String[] args) {
10         int [][] arr=new int[10000][3];//存储每个题目,避免重复
11         int [] temp01=new int [3];
12         Scanner in=new Scanner(System.in);
13         System.out.println("*******给小学生的自动出题系统******");
14         System.out.println("请输入题量:");
15         int m=in.nextInt();
16         System.out.println("请选择几题一换行:");
17         int n=in.nextInt();
18         int x=1,y=0,num1,num2,cmp;
19         boolean flag=false;//定义布尔类型变量用来记录是否重复
20         for (int i = 0; i < m; i++) {
21             flag=false;
22             Random r = new Random();//生成随机数
23             int temp;
24             num1 = r.nextInt(100)+1;
25             num2 = r.nextInt(100)+1;//生成两数1~100以内,避免除0情况
26             cmp=r.nextInt(4);//生成0~4,表示加减乘除
27             temp01[0]=num1;//用temp01数组存储随机生成的三个数据
28             temp01[1]=num2;
29             temp01[2]=cmp;
30             for(int j=0;j<y;j++) {//查重
31                 if(arr[j]==temp01) {
32                     flag=true;        
33                     break;
34                 }
35             }
36             if(flag)//如果重复
37                 continue;
38             else//如果不重复,则存入数组
39             {
40                 arr[y][0]=num1;
41                 arr[y][1]=num2;
42                 arr[y][2]=cmp;
43                 y++;
44                 switch(cmp) {
45                 case 0://
46                     System.out.print("第"+x+"个题目:"+num1+"+"+num2+"=   ");        
47                     break;
48                 case 1://
49                     if(num1<num2) {
50                         temp=num1;
51                         num1=num2;
52                         num2=temp;
53                     }
54                     System.out.print("第"+x+"个题目:"+num1+"-"+num2+"=    ");
55                     break;
56                 case 2://
57                     if(num1<num2) {
58                         temp=num1;
59                         num1=num2;
60                         num2=temp;
61                     }
62                     while(num1*num2>=100)
63                         num1--;
64                     System.out.print("第"+x+"个题目:"+num1+"*"+num2+"=    ");
65                     break;
66                 case 3:
67                     if(num1<num2) {
68                         temp=num1;
69                         num1=num2;
70                         num2=temp;
71                     }
72                     while(num1%num2!=0)
73                         num2--;
74                     System.out.print("第"+x+"个题目:"+num1+"/"+num2+"=    ");
75                     break;
76                 }
77                 if(x%n==0)//换行
78                     System.out.println();
79                 x++;
80             }
81         }
82     }
83 }

 

posted @ 2019-09-17 17:06  大雪初晴丶  阅读(1131)  评论(0编辑  收藏  举报