前端案例:HTML实现口算生成,可自定义行列
该代码功能:可随机生成2-3位数的数学算式,同时支持混合运算随机生成
代码如下
<!DOCTYPE html> <html> <head> <title>口算出题</title> <style> table{ border-collapse: collapse; margin: auto; text-align: center; } td{ border: 1px solid black; padding: 10px; } .print{ display: none; } </style> </head> <body> <h1>口算出题</h1> <label for="rows">行数:</label> <input type="number" id="rows" min="1" max="10" value="5"> <label for="cols">列数:</label> <input type="number" id="cols" min="1" max="10" value="4"> <br><br> <label for="digits">位数:</label> <select id="digits"> <option value="2">两位数</option> <option value="3">三位数</option> </select> <br><br> <label for="greaterThan100">两位数相加大于100:</label> <input type="checkbox" id="greaterThan100"> <br><br> <label for="addsub">连加连减:</label> <input type="checkbox" id="addsub"> <br><br> <button onclick="generate()">生成算式</button> <button onclick="printTable()">打印</button> <br><br> <table> <caption>小学口算算术题</caption> <tbody id="table"></tbody> </table> <div class="print" id="print"></div> <script> function generate() { let rows = parseInt(document.getElementById("rows").value); let cols = parseInt(document.getElementById("cols").value); let digits = parseInt(document.getElementById("digits").value); let addsub = document.getElementById("addsub").checked; let greaterThan100 = document.getElementById("greaterThan100").checked; let table = document.getElementById("table"); table.innerHTML = ""; for (let i = 0; i < rows; i++) { let tr = document.createElement("tr"); for (let j = 0; j < cols; j++) { let td = document.createElement("td"); let num1 = Math.floor(Math.random() * Math.pow(10, digits)); let num2 = Math.floor(Math.random() * Math.pow(10, digits)); let operator = Math.random() < 0.5 ? "+" : "-"; let num3 = Math.floor(Math.random() * Math.pow(10, digits)); if (addsub && Math.random() < 0.4) { let result = num1 + num2; let operator3; if (greaterThan100) { if (result <= 100) { result += 100; } if (result - num3 < 10) { operator3 = "+"; } else { operator3 = Math.random() < 0.5 ? "+" : "-"; } } else { if (result <= 100) { operator3 = "+"; } else { operator3 = Math.random() < 0.5 ? "+" : "-"; } } if (operator3 === "-" && result - num3 < 10) { num3 = Math.floor(Math.random() * (result - 10)); } td.innerHTML = num1 + operator + num2 + operator3 + num3 + " = _____"; } else { td.innerHTML = num1 + operator + num2 + " = _____"; } tr.appendChild(td); } table.appendChild(tr); } } </script> </body> </html>
阅读剩余
版权声明:
作者:Derek
链接:https://derekxx.cn/245.html
文章版权归作者所有,未经允许请勿转载。
THE END