• 软件工程作业01


    题目:生成小学算数题

    设计思想:写一个定制生成数量的函数num(); 写一个生成算术题的函数function();function函数中可以直接生成随机数,用if语句进行分母为0或者减法过后结果为负数的情况的排除,运算符号也用随机数0到3来表示,返回值为String的式子。主函数中用一个String类型的数组保存算数题,用类似查询的方法来查重题目,不重复后输出题目。

    源代码:

    package suanshuti;
    
    import java.util.Scanner;
    
    public class Timu {
    
        static double re[]=new double[1000];
        static int num()
        {
            int num;
            Scanner in =  new Scanner(System.in);
            System.out.print("请输入题目的数量:");
            num = in.nextInt();
            return num;
        }
        static String fun(int r)
        {
            String fu ="";
            String shizi="";
            int a=(int)(Math.random()*(r+1));
            int b=(int)(Math.random()*(r+1));
            int c=(int)(Math.random()*(r+1));
            int d=(int)(Math.random()*(r+1));
            int e=(int)(Math.random()*4);
            if(e==0)
            {
                fu="+";
                while(a>b||c>d||b==0||d==0)
                {
                     a=(int)(Math.random()*(r+1));
                     b=(int)(Math.random()*(r+1));
                     c=(int)(Math.random()*(r+1));
                     d=(int)(Math.random()*(r+1));
                }
                shizi=a+"/"+b+" "+fu+" "+c+"/"+d+" = ?";
            }
            if(e==1)
            {
                fu="-";
                while(a>b||c>d||b==0||d==0)
                {
                     a=(int)(Math.random()*(r+1));
                     b=(int)(Math.random()*(r+1));
                     c=(int)(Math.random()*(r+1));
                     d=(int)(Math.random()*(r+1));
                }
                shizi=a+"/"+b+" "+fu+" "+c+"/"+d+" = ?";
            }
            if(e==2)
            {
                fu="*";
                while(a>b||c>d||b==0||d==0)
                {
                     a=(int)(Math.random()*(r+1));
                     b=(int)(Math.random()*(r+1));
                     c=(int)(Math.random()*(r+1));
                     d=(int)(Math.random()*(r+1));
                }
                shizi=a+"/"+b+" "+fu+" "+c+"/"+d+" = ?";
            }
            if(e==3)
            {
                fu="/";
                while(a>b||c>d||b==0||d==0)
                {
                     a=(int)(Math.random()*(r+1));
                     b=(int)(Math.random()*(r+1));
                     c=(int)(Math.random()*(r+1));
                     d=(int)(Math.random()*(r+1));
                }
                shizi=a+"/"+b+" "+fu+" "+c+"/"+d+" = ?";
            }
            return shizi;
        }
        static String function(int r)
        {
            String fu ="";
            String shizi="";
            int a=(int)(Math.random()*(r+1));
            int b=(int)(Math.random()*(r+1));
            int c=(int)(Math.random()*4);
            if(c==0)
            {
                fu="+";
                shizi=a+" "+fu+" "+b+" = ?";
            }
            if(c==1)
            {
                fu="-";
                //排除负数可能性
                while(a-b<0)
                {
                     a=(int)(Math.random()*(r+1));
                     b=(int)(Math.random()*(r+1));
                }
                shizi=a+" "+fu+" "+b+" = ?";
            }
            if(c==2)
            {
                fu="*";
                shizi=a+" "+fu+" "+b+" = ?";
            }
            if(c==3)
            {
                fu="/";
                //排除分母为0的可能性
                while(b==0)
                {
                    b=(int)(Math.random()*(r+1));
                }    
                shizi=a+" "+fu+" "+b+" = ?";
            }
            return shizi;
        }
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
            int num1,r,r1,m=0;
            num1=num();
            String Array[]=new String[num1];
            String Array1[]=new String[num1];
            while(m==0)
            {
            System.out.print("1:真分数 2:数整 3:退出 请输入:");
            Scanner in2 =  new Scanner(System.in);
            r1 = in2.nextInt();
            if(r1==1)
            {
                System.out.print("请输入算数题中出现的数的最大值:");
                Scanner in1 =  new Scanner(System.in);
                r = in1.nextInt();
                for(int i=0;i<num1;i++)
                {
                    Array1[i]=fun(r);
                    //查重
                    for(int z=0;z<i;z++)
                    {
                        if(Array1[z].equals(Array1[i]))
                        {
                            Array1[i]=fun(r);
                            z=0;
                        }
                    }
                    System.out.println(Array1[i]);
                }
            }
            if(r1==2)
            {
            System.out.print("请输入算数题中出现的数的最大值:");
            Scanner in1 =  new Scanner(System.in);
            r = in1.nextInt();
            for(int i=0;i<num1;i++)
            {
                Array[i]=function(r);
                //查重
                for(int z=0;z<i;z++)
                {
                    if(Array[z].equals(Array[i]))
                    {
                        Array[i]=function(r);
                        z=0;
                    }
                }
                System.out.println(Array[i]);
            }
            }
            if(r1==3)
            {
                m=1;
                System.out.print("谢谢使用!");
            }
            }
        }
    }

    结果截图:

  • 相关阅读:
    kerberos认证原理---讲的非常细致,易懂(转发)
    CDH安装之篇四:启用Kerberos认证(转发)
    RabbitMQ和Kafka(转发)(待续)
    Kafka的Log存储解析(转发)(待续)
    滴滴passport设计之道:帐号体系高可用的7条经验(含PPT)(转发)(待续)
    淘宝的消息中间件(2013) (转发)(待续)
    设计消息中间件时我关心什么?(解密电商数据一致性与完整性实现,含PPT)(转发)
    一种提高微服务架构的稳定性与数据一致性的方法(转发)
    大型网站架构系列:消息队列(转发)
    Kafka实战解惑(转发)
  • 原文地址:https://www.cnblogs.com/lhj1017/p/6485931.html
Copyright © 2020-2023  润新知