题目要求程序可以生成三十道小学四则运算题目。
因为要随机生成题目,则需要产生随机数,因此我上网搜索了生成随机数的方法,选择了使用Random类得到规定范围内的随机数。因为一个运算需要三个元素,两个参与运算的数字,一个运算符(加减乘除),因此需要获得三个随机数,其中一个随机数的范围为1~4,对应加减乘除四个运算符。在程序中需要特别注意的是除法的运算题目生成,由于是小学题目,因此要生成可以整除的运算式。因此在除法的运算阶段,我进行了判断,若当前产生的两个随机数不能实现整除或者除数为零,便重新获得两个随机数并判断是否可以整除且输出是否为零,若不行,再次进行判断,直到可以整除且除数不为零,由此保证随机生成的题目是小学生可以接受的难度。
程序输出的最终结果包括题目部分和答案部分,并且题目和答案都有对应的序号,方便进行做完题目之后对答案。
程序代码:
package 四则运算;
import java.util.Random;
public class yunsuan {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] d;
d=new int [30];
int a,b;
int e;
System.out.println("以下是产生的三十道题目:");
for(int i=0;i<30;i++) {
Random r=new Random();
a=r.nextInt(100)+1;
b=r.nextInt(100)+1;
switch(r.nextInt(4)+1) {
case 1:
System.out.println((i+1)+":"+a+"+"+b+"=");
d[i]=a+b;
break;
case 2:
System.out.println((i+1)+":"+a+"-"+b+"=");
d[i]=a-b;
break;
case 3:
System.out.println((i+1)+":"+a+"*"+b+"=");
d[i]=a*b;
break;
case 4:
while((e=a%b)!=0||b==0) {
a=r.nextInt(100)+1;
b=r.nextInt(100)+1;
}
System.out.println((i+1)+":"+a+"/"+b+"=");
d[i]=a/b;
break;
}
}
System.out.println("以下是上述三十道题目的答案:");
for(int j=0;j<30;j++) {
System.out.println((j+1)+":"+d[j]);
}
}
}
原文地址:https://www.cnblogs.com/ruangongyouxi/p/9749909.html