你的位置:首页 > Java教程

[Java教程]随机四则运算1.1版


之前写的四则运算1.0版,现在继续扩充 :

《四则运算》题目的功能,要求:

题目避免重复;可以定制数量和打印方式;

可以控制下列参数

(1) 是否有乘除法

(2) 是否有括号

(3) 数值范围

(4) 加减有无负数

(5) 除法有无余数

(6) 是否支持分数(真分数、假分数…)

(7) 是否支持小数(精确到多少位?)

(8) 打印中每行的间隔

先上图看主要界面,及功能区,如下:

1:

     一如既往的用JS来写,自认为在界面上可以做到更美观,功能也可以完全做到,

那么找几个功能来演示,那么就从默认条件吧:

先上代码,然后再看如何实现的:

 1 function default_fun(){                    /////////////默认条件函数 2     ifture_dx_1=1; 3     ifture_dx_2=2; 4     ifture_dx_3=0; 5     ifture_dx_4=0; 6     ifture_dx_5=5; 7      8     Ture_numble_01=0; 9     Ture_numble_02=50;10     Ture_numble_2=1;11     Ture_numble_3=0;12 13     Main_function();14   }

 各个value分别表示的是:

ifture_dx_1=1 对应 “是否有乘除法”
ifture_dx_2=2 对应“ 是否有括号
ifture_dx_3=3 对应“加减是否有无负数 
ifture_dx_4=0 对应“除法有无余数

ifture_dx_5=5 对应“是否支持假分数 (Ture_numble_01=0;Ture_numble_02=50;)表示的是对应数字的给出范围 Ture_numble_2=1 对应”打印行间隔 Ture_numble_3=0 对应“小数位数

     以上 都是  默认条件    :  有乘除法 , 有括号,有负数,无余数,支持假分数,随机数范围(0———50),无小数位。

上图看看打印结果:

2:

先贴个确定函数代码:

 1 function True_fun(){                           //////////确定条件函数 2     if (true==document.getElementById("dx_1").checked){ 3       ifture_dx_1=1; 4      } 5     if (true==document.getElementById("dx_2").checked){ 6       ifture_dx_2=2; 7      } 8     if (true==document.getElementById("dx_3").checked){ 9       ifture_dx_3=3;10      }11     if (true==document.getElementById("dx_4").checked){12       ifture_dx_4=4;13      }14     if (true==document.getElementById("dx_5").checked){15       ifture_dx_5=5;16      }17     18     Ture_numble_01= parseInt(document.getElementById("numble_01").value);19     Ture_numble_02=parseInt(document.getElementById("numble_02").value);20     Ture_numble_2= parseInt(document.getElementById("numble_2").value);21     Ture_numble_3=parseInt(document.getElementById("numble_3").value);22     23      Main_function();24   }

获取checkebox是否被点击,以及input输入框的输入值。

3:

接下来演示第一个功能,这就不贴代码了   后面贴上源代码   

打印如下:

其他功能不再演示 :

 

源代码码上:

 1 <!DOCTYPE html> 2 <html lang="zh-cn"> 3 <head> 4   <meta charset="utf-8"> 5   <title>四则运算</title> 6 </head> 7 <body bgcolor="#F4A460"> 8 <h1 align="center">四则运算</h1> 9 <hr /> 10 <h4>随机生成二十到四则运算题:</h4><br/> 11 <form action=""> 12   <p>请选择条件:</p> 13   <input type="checkbox" id="dx_1" value="1">是否有乘除法 14   <input type="checkbox" id="dx_2" value="b">是否有括号 15   <input type="checkbox" id="dx_3" value="c">加减有无负数 16   <input type="checkbox" id="dx_4" value="d">除法有无余数 17   <input type="checkbox" id="dx_5" value="e">是否支持假分数 <br/> <br/> 18   数字范围:<input type="number" id="numble_01" min="-100" max="100" />&nbsp;到 &nbsp; 19   <input type="number" id="numble_02" min="-100" max="100" /> &nbsp;&nbsp;&nbsp;&nbsp; 20   打印中行的间隔:<input type="number" id="numble_2" min="2" max="20" />&nbsp; 21   支持几位小数:<input type="number" id="numble_3" min="0" max="10" /><br><br> 22   <button type="reset">条件重置</button> 23   <button type="button" onclick="default_fun()">默认条件</button> 24   <button type="button" onclick="True_fun()">确定</button> 25   <hr/> 26 </form> 27 <script> 28   var ifture_dx_1=null,ifture_dx_2=null,ifture_dx_3=null,ifture_dx_4=null,ifture_dx_5=null; 29   var Ture_numble_01=0,Ture_numble_02=0,Ture_numble_2=2,Ture_numble_3=0; 30  31   function True_fun(){                           //////////确定条件函数 32     if (true==document.getElementById("dx_1").checked){ 33       ifture_dx_1=1; 34      } 35     if (true==document.getElementById("dx_2").checked){ 36       ifture_dx_2=2; 37      } 38     if (true==document.getElementById("dx_3").checked){ 39       ifture_dx_3=3; 40      } 41     if (true==document.getElementById("dx_4").checked){ 42       ifture_dx_4=4; 43      } 44     if (true==document.getElementById("dx_5").checked){ 45       ifture_dx_5=5; 46      } 47      48     Ture_numble_01= parseInt(document.getElementById("numble_01").value); 49     Ture_numble_02=parseInt(document.getElementById("numble_02").value); 50     Ture_numble_2= parseInt(document.getElementById("numble_2").value); 51     Ture_numble_3=parseInt(document.getElementById("numble_3").value); 52      53      Main_function(); 54   } 55   function default_fun(){                    /////////////默认条件函数 56     ifture_dx_1=1; 57     ifture_dx_2=2; 58     ifture_dx_3=0; 59     ifture_dx_4=0; 60     ifture_dx_5=5; 61      62     Ture_numble_01=0; 63     Ture_numble_02=50; 64     Ture_numble_2=1; 65     Ture_numble_3=0; 66  67     Main_function(); 68   } 69  function Max_fun(){                            /////////////求最大值函数                    70      if(Ture_numble_01<Ture_numble_02){ 71       return Ture_numble_02; 72      } 73      else{ 74       return Ture_numble_01; 75      } 76     } 77  function Min_fun(){                 /////////////   求最小值函数                      78      if(Ture_numble_01<Ture_numble_02){ 79       return Ture_numble_01; 80      } 81      else{ 82       return Ture_numble_02; 83      } 84     } 85  function Get_num(min,max){              ///////////给出范围内整数函数 86   return Math.floor(Math.random()*(max-min))+min; 87  } 88  function if_brackets(num){             //////////是否添加括号函数 89      if(ifture_dx_2==2&&num<0){ 90       return "("+num+")"; 91      }else{ 92       return num; 93      } 94   } 95  96  function if_xiaoshu(x,y){               ///////////取小数函数 97   var a=x/y,b=x%y,c=x-y; 98   if(ifture_dx_4==4){ 99     if(c<0){100       return 0+":"+"因为分子比分母小,所以值为0";101     }else{102       return a.toFixed(0)+":余数为"+b;103     }104   }else{105       return a.toFixed(Ture_numble_3);106     }107   108   }109 </script>110 <script>111   var x,y,i=0;112   var value,a,b,c,flag=0;113   function Main_function(){114     if(Min_fun()<0){115       flag=1;116     }117     for(i=0;i<20;i++){118       x=Get_num(Min_fun(),Max_fun());119       do{120         y=Get_num(Min_fun(),Max_fun());121       }while(y==0);122       if(ifture_dx_1==1){                 ////////////是否有乘除法123         value=parseInt(10*Math.random()%4);  124       }else{125         value=parseInt(10*Math.random()%2);126       }127       a=x+y;128       b=x-y;129       c=x*y;130     switch(value)131     {132       case 0:for(var j=0;j<Ture_numble_2;j++){133          document.write("<br>");134         }135          if(ifture_dx_3==3&&flag==1){136           while(a>0){137             x=Get_num(Min_fun(),Max_fun());138             a=x+y;139             }140           document.write(i+1+"题"+":"+if_brackets(x)+"+"+if_brackets(y)+"="+a+"<br>");141           }else{142             document.write(i+1+"题"+":"+if_brackets(x)+"+"+if_brackets(y)+"="+a+"<br>");143           }144          break;145       case 1:for(var j=0;j<Ture_numble_2;j++){146          document.write("<br>");147         }148          if(ifture_dx_3==3){149           while(b>0){150             x=Get_num(Min_fun(),Max_fun());151             b=x-y;152             }153           document.write(i+1+"题"+":"+if_brackets(x)+"-"+if_brackets(y)+"="+b+"<br>");154           }else{155             document.write(i+1+"题"+":"+if_brackets(x)+"-"+if_brackets(y)+"="+b+"<br>");156           }157          break;158       case 2:for(var j=0;j<Ture_numble_2;j++){159           document.write("<br>");160         }161          document.write(i+1+"题"+":"+if_brackets(x)+"*"+if_brackets(y)+"="+c+"<br>");162          break;163       case 3:for(var j=0;j<Ture_numble_2;j++){164         document.write("<br>");165         }166           if (ifture_dx_5!=5){167            while(b>0){168             x=Get_num(Min_fun(),Max_fun());169             b=x-y;170             }171            document.write(i+1+"题"+":"+if_brackets(x)+"/"+if_brackets(y)+"="+if_xiaoshu(x,y)+"<br>");172          }else{173             174            document.write(i+1+"题"+":"+if_brackets(x)+"/"+if_brackets(y)+"="+if_xiaoshu(x,y)+"<br>");175          }   176          break;177       default:break;178     }179   }180 181 }182  183   184 </script>185 </body>186 </html>

View Code