1.程序设计思想:
用Math.random()方法生成0~1之间随机数,乘以所需的范围再取整即可,考虑到避免题目重复,我用所需范围折半相加取随机运算数结果,大大降低了重复概率,用整型变量quentity来接收用户想要出题的数量,因为加减乘除运算都要有,所以每一次出题用两个随机的运算数相加除4取余数,根据余数为0、1、2、3,确定用加、减、乘、除,然后用for循环完成每一次出题,还需要考虑当除法时候分母为0的时候,我设计的是当除数为0是i--,即重新取一次两个运算数再次判断再次运算,执行除运算的语句要把运算数进行强制类型转换,转换成double类型,用double类型的数接收除完之后的结果,然后用String.format("%.2f",d)方法来保留真分数和假分数的运算结果位数为2位。
2.源程序代码:
package practice; import java.util.Scanner; public class ChuTi { public static void main(String[] args) { int a; int b; int c; int quentity; System.out.println("请输入您想出题的数量:"); Scanner input=new Scanner(System.in); quentity=input.nextInt(); for(int i=1;i<=quentity;i++) { a=(int)(Math.random()*50+Math.random()*50); b=(int)(Math.random()*50+Math.random()*50); c=(a+b)%4; double d; switch(c) { case 0: { System.out.println(a+"+"+b+"="+(a+b));break; } case 1: { System.out.println(a+"-"+b+"="+(a-b));break; } case 2: { System.out.println(a+"*"+b+"="+(a*b));break; } case 3: { if(b==0) { i--; } else if(a<b) { d=(double)a/b; System.out.println(a+"/"+b+"="+String.format("%.2f",d)); } else { System.out.println(a+"/"+b+"="+a/b); } break; } } } } }
3.运行结果截图:
4.上课未按时完成的原因:
让加减乘除随机生成,没有想到用取余根据余数判断随机生成和执行哪个运算。