软件工程作业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 stubint 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);}}}}