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 }