zoukankan      html  css  js  c++  java
  • 软件工程概论作业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);
             }
         }
        }
    
    }
  • 相关阅读:
    哈希表及其应用分析
    程序员常用的查找算法
    程序猿必备排序算法及其时间复杂度分析
    递归和回溯求解8皇后问题
    链表种类及其常用操作
    为什么要使用稀疏矩阵??
    微服务项目持续集成部署流程简介
    微服务项目的docker自动化部署流程
    (高考标准分)数据拟合==>多项式方程==>excel公式算成绩(标准分)
    awk用名称对应关系批量重命名
  • 原文地址:https://www.cnblogs.com/youzeshuang/p/6511722.html
Copyright © 2011-2022 走看看