zoukankan      html  css  js  c++  java
  • 四则运算一

    像二柱子那样,花二十分钟写一个能自动生成三十道小学四则运算题目的 “软件”,要求:除了整数以外,还要支持真分数的四则运算(需要验证结果的正确性)、题目避免重复、可定制出题的数量

     设计思想:主要是随机的式子如何产生问题,和对产生的随机数的不同限制,题目避免重复的问题

    建立一个式子类来对上述要求进行回应:

    主要代码:

      class Zhengshu//整数类
        {
        String re1="";//初始化 “结果” String类型的
        int re;
        String function(int r ,int q, int fun)// r最小值,q最大值,fun 选择
        {
            //1有乘除法 2加减无负数 3除法无余数(12,1,0)
            String fu ="";
            String shizi="";
            int a=(int)(Math.random()*(r)%(r-q+1)+q);
            int b=(int)(Math.random()*(r)%(r-q+1)+q);
            int c=(int)(Math.random()*4);
            if(fun==1)
            {
                if(c==0)
                {
                 while(a+b>100){
                        a=(int)(Math.random()*(r)%(r-q+1)+q);
                        b=(int)(Math.random()*(r)%(r-q+1)+q);
                    }
                    fu="+";
                    shizi=a+" "+fu+" "+b;
                    re=a+b;
                    re1=String.valueOf(re);
                }
                if(c==1)
                {    
                    fu="-";
                    //排除负数可能性
                    while(a-b<0)
                    {
                        a=(int)(Math.random()*(r)%(r-q+1)+q);
                        b=(int)(Math.random()*(r)%(r-q+1)+q);
                    }
                    shizi=a+" "+fu+" "+b;
                    re=a-b;
                    re1=String.valueOf(re);
                }
                if(c==2)
                {
                while(a>10||b>10){
                        a=(int)(Math.random()*(r)%(r-q+1)+q);
                        b=(int)(Math.random()*(r)%(r-q+1)+q);
                    }
                    fu="×";
                    shizi=a+" "+fu+" "+b;
                    re=a*b;
                    re1=String.valueOf(re);
                }
                if(c==3)
                {
                while(a>10||b>10){
                        a=(int)(Math.random()*(r)%(r-q+1)+q);
                        b=(int)(Math.random()*(r)%(r-q+1)+q);
                    }
                    fu="÷";
                    //排除分母为0的可能性和余数的可能性
                    while(b==0||a==0)
                    {
                        a=(int)(Math.random()*(r)%(r-q+1)+q);
                        b=(int)(Math.random()*(r)%(r-q+1)+q);
                    }   
                    re=a;
                    shizi=a*b+" "+fu+" "+b;
                    re1=String.valueOf(re);
                }
            }
                return shizi;//返回字符串
        }
        }

     for(int j=0;j<geshu;j++)
        {
     
            Array[i]=a.function(100,1,1);//返回第一个字符串(字符串)
           
            /*if(i>0)//不满足条件,i的初值为零
            {
                for(int z=0;z<i;z++)
                {
                    if((Array[z].equals(Array[i])))
                    {
                        Array[i]=a.function(100,1,1);
                        z=-1;
                    }   
                }
            }*/
     
            //out.println(i+1+": "+Array[i]+" = "+' '); //输出i+1表示第几道题;输出表达式加上“=”  
            
            %>

    运行结果截图:

    个人上课未完成的原因:

      1.在生成规定的表达式时遇到了困难没有及时的解决

    2.多种情况考虑不周

        

            

  • 相关阅读:
    Kotlin开发 扩展函数在Android开发中的一些实用例子
    Kotlin开发 使用lambda实现接口回调
    Android开发 Camera2的CaptureRequest属性整理--完善中
    Android开发 Bitmap图像处理详解
    Android开发 Camera预览画面镜像问题
    Android开发 ViewPage2
    windows 服务器更新程序下载-修复漏洞
    JAVA实现数据等分,一个List分成多个List
    List<CourseRecord>转HashMap<Long, List<CourseRecord>>
    模拟服务器1.0——WebServer 、ClientHandler 接收请求、做出响应
  • 原文地址:https://www.cnblogs.com/1605-3QYL/p/8258916.html
Copyright © 2011-2022 走看看