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.多种情况考虑不周

        

            

  • 相关阅读:
    那些年,学swift踩过的坑
    JAVA经BigDecimal圆角的解决方案及注意事项
    Jquery简介选择的
    Oracle性能优化顺序表名称来选择最有效的学习笔记
    jQuery Validate插入 reomte使用详细的说明
    公钥私人 ssh避password登陆
    Telnet,SSH1,SSH2,Telnet/SSL,Rlogin,Serial,TAPI,RAW
    mysqlbackup 还原特定的表
    OpenJDK 阅读源代码 Java 实现字节流输入类
    Android Application Thread CPU GC Operatiing and OOM Question 0603-随手笔记
  • 原文地址:https://www.cnblogs.com/1605-3QYL/p/8258916.html
Copyright © 2011-2022 走看看