博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
四则运算一
阅读量:7041 次
发布时间:2019-06-28

本文共 1693 字,大约阅读时间需要 5 分钟。

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

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

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

主要代码:

  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]+" = "+'\n'); //输出i+1表示第几道题;输出表达式加上“=”  
        
        %>

运行结果截图:

个人上课未完成的原因:

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

2.多种情况考虑不周

    

        

转载于:https://www.cnblogs.com/1605-3QYL/p/8258916.html

你可能感兴趣的文章
gridview 控件,.net用法
查看>>
jvisualvm安装btrace插件,更新设置(java.net网站已关闭)
查看>>
Java IO : 流,以及适配器模式的应用
查看>>
一个月减肥计划
查看>>
UIGestureRecognizer手势识别器
查看>>
jar包制作
查看>>
华为服务器RH2288H V2连接 华为存储S2600T
查看>>
ActiveMQ快速入门
查看>>
HTTP请求头和响应头部包括的信息有哪些?
查看>>
Spring学习总结(2)——Spring的常用注解
查看>>
JSON
查看>>
贝叶斯相关(概率论)论文
查看>>
在ECS上搭建阿里云数据库RDS的只读实例
查看>>
Go语言开发(二十一)、GoMock测试框架
查看>>
Java基础学习总结(2)——接口
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Linux实用工具
查看>>
北大高材生被华为辞退:用不用你,与能力无关!
查看>>
21分钟Mysql入门教程
查看>>
Java的Struts多模块的应用
查看>>