自动出题小程序

小学生自动出题小程序并不难,用随机数产生随机数字,规定范围并且适当判断后输出即可,避免题目重复,可以使用数组将每组输出的数字储存在数组中,下次产生的随机数与数组中的数字元素作比较即可,如果重复则再次产生随机数,反之则输出并且再次储存。

代码如下:

自动出题小程序
 1 package Test; 2  3 import java.util.*; 4  5 public class TestPlus { 6 static Scanner in=new Scanner(System.in); 7 public TestPlus() { 8 // TODO Auto-generated constructor stub 9  }10 static int getNumber() //获取除数与被除数11  {12 return (int)(Math.random()*100+1);13  }14 static int getKey() //用0~3的随机数来表示四则运算符15  {16 return (int)(Math.random()*10%4);17  }18 static void output(int count,int num1,int key,int num2) //输出方法19  {20 char ch = 0;21 switch(key)22  {23 case 0:ch=‘+‘;break;24 case 1:ch=‘-‘;break;25 case 2:ch=‘*‘;break;26 case 3:ch=‘/‘;break;27 default:break;28  }29 System.out.print(count+"、"+num1+ch+num2+"= ");30  }31 static boolean handle(int num1,int key,int num2) //判断产生的数字是否符合要求32  {33 boolean b=true;34 switch(key)35  {36 case 0:break;37 case 1:38  {39 if(num1<num2)40 b=false;41 }break;42 case 2:43  {44 if(num1*num2>=100)45 b=false;46 }break;47 case 3:48  {49 if(num1%num2!=0)50 b=false;51 }break;52 default:break;53  }54 return b;55  }56 public static void main(String[] args) {57 // TODO Auto-generated method stub58 int a[][]=new int[100000][3]; //创造数组储存已输出的数字59 int num1,key,num2,count=1;60 boolean flag=true;61 int r,sum;62 sum=in.nextInt();63 r=in.nextInt();64 do65  {66 boolean tempFlag=true;67 num1=getNumber();68 key=getKey();69 num2=getNumber();70 if(count>=2)71 for(int i=0;i<count-1;i++) //判断新产生的数字是否和以前的题目重复72 if(a[i][0]==num1&&a[i][1]==key&&a[i][2]==num2)73  {74 tempFlag=false;75 break;76  }77 if(handle(num1,key,num2)&&tempFlag)78  {79  output(count,num1,key,num2);80 a[count-1][0]=num1;a[count-1][1]=key;a[count-1][2]=num2;81 if(count%r==0)82  System.out.println();83 if(count>=sum)84 flag=false;85 count++;86  }87 }while(flag);88  }89 90 }

 

相关文章