随机四则运算1.1版

时间:2023-01-08 11:44:03

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

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

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

可以控制下列参数

(1) 是否有乘除法

(2) 是否有括号

(3) 数值范围

(4) 加减有无负数

(5) 除法有无余数

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

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

(8) 打印中每行的间隔

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

随机四则运算1.1版

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),无小数位。

上图看看打印结果:

随机四则运算1.1版

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.1版

打印如下:

随机四则运算1.1版

其他功能不再演示 :

 

源代码码上:

随机四则运算1.1版随机四则运算1.1版
  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