软件工程概论作业01

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

}
原文地址:https://www.cnblogs.com/youzeshuang/p/6511722.html