软件工程作业01
写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量。
思路:随机生成两个数进行计算,设立一个随机的参量用来判断是生成整数还是分数;生成分数时先生成分母,然后将分子的上限设置为分母,这样就会生成真分数;
package demo; import java.util.Random; import java.util.Scanner; public class work { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int a,b; char c; int MAX=100; int MIN=1; char max[]={'+','-','/','*'}; Random random1=new Random();//随即一个整数 Random random2=new Random();//随机另一个整数 Random random3=new Random();//随机符号 Random random4=new Random();//随机生成的类型分数或整数 Random random5=new Random();//随机分母 Random random6=new Random();//随机分子 System.out.println("请输入要生成的式子的数量"); Scanner input=new Scanner(System.in); int number=input.nextInt(); for(int i=0;i<number;i++) { int choice=random4.nextInt(3)%(3-1+1)+1; if(choice==1) { a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN; b=random2.nextInt(MAX)%(MAX-MIN+1)+MIN; c=max[random3.nextInt(4)]; System.out.print(a+""+c+""+b+"="); System.out.println(a+b); }//两个整数 if(choice==2) { a=random5.nextInt(MAX)%(MAX-2+1)+2; b=random6.nextInt(a)%(a-MIN+1)+MIN; int a1=random5.nextInt(MAX)%(MAX-2+1)+2; int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN; c=max[random3.nextInt(4)]; double aa=(double) a; double bb=(double) b; double b11=(double) b1; double a11=(double) a1; double p=aa/bb; double q=a11/b11; double p1=p+q; System.out.print("("+b+"/"+a+")"+c+"("+b1+"/"+a1+")"+"="); System.out.println(p1); }//两个分数 if(choice==3) { a=random1.nextInt(MAX)%(MAX-MIN+1)+MIN; int a1=random5.nextInt(MAX)%(MAX-2+1)+2; int b1=random6.nextInt(a1)%(a1-MIN+1)+MIN; c=max[random3.nextInt(4)]; double aa=(double) a; double b11=(double) b1; double a11=(double) a1; double p=b11/a11; double q=aa+p; System.out.print(a+""+c+"("+b1+"/"+a1+")"+"="); System.out.println(q); } } } }