自动出题小程序
Posted haheihei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动出题小程序相关的知识,希望对你有一定的参考价值。
小学生自动出题小程序并不难,用随机数产生随机数字,规定范围并且适当判断后输出即可,避免题目重复,可以使用数组将每组输出的数字储存在数组中,下次产生的随机数与数组中的数字元素作比较即可,如果重复则再次产生随机数,反之则输出并且再次储存。
代码如下:
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 stub 58 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 do 65 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
以上是关于自动出题小程序的主要内容,如果未能解决你的问题,请参考以下文章