编程笔记 html5cssjs 005 小学数学四则运算练习
编程笔记 html5&css&js 005 小学数学四则运算练习
- 一、代码
- 二、解释
这段代码定义了一个页面,用于小学数学四则运算的练习。这可能有点难,实际如果需要可以通过更改代码来达到要求。
一、代码
<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><!-- 设置页面视口,适应不同设备的宽度,并设置初始缩放为1.0 --><meta name="viewport" content="width=device-width, initial-scale=1.0"><!-- 页面标题 --><title>小学数学四则运算练习</title><!-- 页面样式定义 --><style>/* 设置页面背景颜色、居中显示、垂直居中、字体大小、颜色和字体 family */body {/* 设置背景颜色为深灰色 */background-color: #333;/* 使用弹性布局使得内容居中 */display: flex;justify-content: center;align-items: center;/* 设置高度为视窗高度,使得内容垂直居中 */height: 100vh;/* 设置字体大小和颜色 */font-size: 60px;color: white;/* 设置字体为Arial或任意 sans-serif 字体 */font-family: Arial, sans-serif;/* 定义容器的文本居中 */.container {text-align: center;}.view {line-height: 100px; /* 设置固定行高 */height: 100px; /* 如果需要强制元素高度一致,可加上height */overflow: hidden; /* 防止内容超出元素高度 */}input[type="text"] {/* 设置字体大小为100px */font-size: 100px;/* 设置宽度为屏幕宽度的30% */width: 30%;/* 设置底部外边距为20px */margin-bottom: 20px;}</style>
</head>
<body>
<div class="container"><p>小学数学四则运算练习</p><!-- 用于显示习题的区域 --><div class="view" id="question">请按回车键生成习题</div><!-- 用于显示答案的区域 --><div class="view" id="answer"></div><!-- 用于显示计时的区域 --><div class="view" id="time"></div><!-- 用于显示结果的区域 --><div class="view" id="result"></div><!-- 用户输入答案的输入框,回车键触发答案检查 --><input type="text" id="user-answer" onkeydown="if (event.keyCode === 13) checkAnswer()"><!-- 提示用户如何使用输入框的文本 --><p>空框时按回车生成习题,输入答案后按回车键验证<br></p>
</div>
<script>// 定义一个数组包含可能的操作数let operands = Array.from({length: 10}, (_, i) =>// 这个函数生成一个随机数。首先使用Math.random()生成一个0到1之间的随机数,然后乘以i < 5 ? 9 : 99的结果,// 再使用Math.floor()取整,之后加上Math.random() < 0.5 ? 0.1 : 0。// 这个表达式会生成一个在0到9.9之间的随机数(如果i小于5),或者在0到99.9之间的随机数(如果i大于等于5)。Math.floor(Math.random() * (i < 5 ? 9 : 99)) + (Math.random() < 0.5 ? 0.1 : 0));function getRandomOperand() {return operands[Math.floor(Math.random() * operands.length)];}// 定义一个数组包含可能的运算符let operators = ['+', '-', '*', '/'];// operators.push('^'); // 添加乘方运算符,但在JS中需要处理function getRandomOperator() {return operators[Math.floor(Math.random() * operators.length)];}function generateExpression(depth = 0, maxDepth = 3) {// 创建一个表达式字符串,同时考虑运算优先级// 该函数用于生成一个随机的数学表达式字符串。函数接受两个参数:depth表示当前生成表达式的深度,默认为0;maxDepth表示生成// 表达式的最大深度,默认为3。函数通过递归的方式生成表达式,根据随机概率选择是否添加括号,并随机选择运算符和操作数。对于乘// 方运算符,确保其右边有操作数;对于其他运算符,两边都可能有操作数。当达到最大深度时,返回一个随机的操作数。最终生成的表达// 式以字符串形式返回。if (depth === maxDepth) {return getRandomOperand().toString();}let expression = '';
// 随机决定是否添加括号if (Math.random() < 0.3 && depth < maxDepth - 1) {expression += '(';expression += generateExpression(depth + 1);expression += ')';} else {expression += getRandomOperand();}let operator = getRandomOperator();if (operator === '^') { // 对于乘方运算,确保右边有操作数expression += '^';expression += generateExpression(depth);} else { // 其他运算符两边都可能有操作数expression += operator;expression += generateExpression(depth + 1);}return expression;}// 计算生成的表达式function calculateExpression(expressionStr) {// 将"^"替换为Math.pow以执行乘方运算expressionStr = expressionStr.replace(/\^/g, '**');// 使用eval计算结果,但请确保表达式来自可靠源,否则有安全风险return eval(expressionStr);}// 生成并计算一个表达式function generateQuestion() {/*** 生成并计算一个表达式,然后将表达式显示在文档中,并返回计算结果(保留两位小数)。* 该过程包括:* 1. 生成一个表达式。* 2. 计算这个表达式的结果。* 3. 将这个表达式显示在页面上。* 4. 返回表达式的计算结果,结果保留两位小数。** @returns {number} 表达式的计算结果,保留两位小数。*/let question = generateExpression(); // 生成一个表达式let answer = calculateExpression(question); // 计算生成的表达式document.getElementById('question').innerText = question; // 将表达式显示在页面上return Number(answer.toFixed(2)); // 返回计算结果,保留两位小数}let currentAnswer;let startTime;function startPractice() {/*** 生成问题并初始化答题界面* 无参数* 无返回值*/currentAnswer = generateQuestion();document.getElementById('answer').innerText = '';document.getElementById('time').innerText = '';document.getElementById('result').innerText = '';startTime = new Date().getTime();}function checkAnswer() {/*** 处理用户提交的答案,并进行判分。* 无参数。* 无返回值。*/let userAnswer = parseFloat(document.getElementById('user-answer').value); // 获取用户输入的答案let currentTime = new Date().getTime(); // 获取当前时间戳let elapsedTime = (currentTime - startTime) / 1000; // 计算答题所用时间,转换为秒// 检查用户输入是否为合法数字if (isNaN(userAnswer) !== true) {userAnswer = Number(userAnswer.toFixed(2)); // 如果是合法数字,则保留两位小数}// 如果用户输入不是合法数字,则重新开始练习if (isNaN(userAnswer)) {startPractice();} else if (userAnswer === currentAnswer) { // 如果用户答案与正确答案相同document.getElementById('answer').innerText = currentAnswer; // 显示正确答案document.getElementById('time').innerText = `用时:${elapsedTime.toFixed(2)}秒`; // 显示用时document.getElementById('result').innerText = '答案正确'; // 显示结果:正确} else { // 如果用户答案与正确答案不同document.getElementById('answer').innerText = currentAnswer; // 显示正确答案document.getElementById('time').innerText = `用时:${elapsedTime.toFixed(2)}秒`; // 显示用时document.getElementById('result').innerText = '答案错误'; // 显示结果:错误}document.getElementById('user-answer').value = ''; // 清空输入框}window.onload = function () {// 将焦点设置到ID为"user-answer"的元素上。document.getElementById("user-answer").focus();};
</script>
</body>
</html>
二、解释
这段HTML代码定义了一个页面,用于小学四则运算的练习。页面具有以下功能:
页面布局与样式:通过CSS定义了页面的整体样式,包括背景颜色、字体大小和颜色、居中显示等内容。
生成随机习题:通过JavaScript函数generateExpression生成一个随机的数学表达式,并将其显示在页面上。
计算答案:使用JavaScript函数calculateExpression计算生成的表达式的答案。
用户交互:用户可以在页面上的输入框中输入答案,然后按回车键验证答案的正确性。答案的验证由checkAnswer函数处理。
显示结果:根据用户答案的正确性,在页面上显示相应的结果。
计时功能:记录用户回答问题所花费的时间,并在页面上显示。
适应不同设备:通过<meta>标签设置页面视口,使页面在不同设备上都能正确显示。
以上是该HTML代码的主要功能。代码中使用了JavaScript和CSS来实现这些功能。
相关文章:
编程笔记 html5cssjs 005 小学数学四则运算练习
编程笔记 html5&css&js 005 小学数学四则运算练习 一、代码二、解释 这段代码定义了一个页面,用于小学数学四则运算的练习。这可能有点难,实际如果需要可以通过更改代码来达到要求。 一、代码 <!DOCTYPE html> <html lang"zh&quo…...
【大厂AI课学习笔记NO.71】AI算力芯片GPU/TPU等
AI算力芯片的发展历程 人工智能(AI)算力芯片的发展历程紧密地跟随着AI技术的发展脚步。从早期的基于传统中央处理器(CPU)的计算,到图形处理器(GPU)的广泛应用,再到专门为AI设计的处…...
浅谈Redis和分布式系统
浅谈Redis Redis用于存储数据,且在内存当中进行存储。 但是在日常编写代码中,定义一个变量也就属于在内存当中存储一个数据。 Redis主要会在分布式系统当中发挥重要作用,如果只是单机程序,直接通过变量存储数据的方式会比使用Re…...
微信小程序onLoad加载定义好的函数
这里小程序开发中容易犯的错误-1 给客户做一个程序。需要在页面加载的时候在onLoad(options){}中加载定义好的函数,代码如下 onLoad(options) {get_week_()},运行时老报错 后来修改为正确的代码 onLoad(options) {this.get_week_()//必须加this},再尝试运行&#x…...
C++进阶:详细讲解继承
现在也是结束了初阶部分的内容,今天开始就进入进阶部分了。一刻也没有为初阶的结束而哀悼,立刻赶来“战场”的是进阶部分里的继承 文章目录 1.继承的概念和定义1.1继承的概念1.2继承的定义1.2.1继承的格式1.2.2再讲访问限定符(详讲protected)1.2.3**继承…...
第十一篇 - 应用于市场营销视频场景中的人工智能和机器学习技术 – Video --- 我为什么要翻译介绍美国人工智能科技巨头IAB公司(1)
IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒体…...
基于决策树实现葡萄酒分类
基于决策树实现葡萄酒分类 将葡萄酒数据集拆分成训练集和测试集,搭建tree_1和tree_2两个决策树模型,tree_1使用信息增益作为特征选择指标,B树使用基尼指数作为特征选择指标,各自对训练集进行训练,然后分别对训练集和测…...
上位机图像处理和嵌入式模块部署(qmacvisual三个特色)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 了解了qmacvisual的配置之后,正常来说,我们需要了解下不同插件的功能是什么。不过我们不用着急,可以继续学习下…...
电脑解锁后黑屏有鼠标--亲测!!不需要重装系统!!
问题:上周电脑黑屏,只有鼠标,鼠标还不能右键!! 中招:win10系统最新版火绒安全 ,那你有概率获得开机黑屏套餐一份。 原因是:火绒把我们的explorer删除了导致黑屏,这个文…...
Spring 事务的种类 ? 传播机制 ?
在Spring框架中,事务管理可以分为编程式事务和声明式事务两种主要形式。每种形式都有其特点和使用场景。以下是这两种形式的具体介绍: 编程式事务 编程式事务是通过编写代码来实现事务管理的。在Spring中,编程式事务管理通常通过Transactio…...
深入了解 Java 方法和参数的使用方法
Java 方法 简介 方法是一块仅在调用时运行的代码。您可以将数据(称为参数)传递到方法中。方法用于执行特定的操作,它们也被称为函数。 使用方法的原因 重用代码:定义一次代码,多次使用。提高代码的结构化和可读性。…...
自动驾驶技术解析与关键步骤
目录 前言1 自动驾驶主要技术流程1.1 车辆周围环境感知1.2 车辆和行人检测分析1.3 运动轨迹规划 2 关键技术概述2.1 车辆探测与图片输入2.2 行人检测2.3 运动规划2.4 电子地图2.5 轨迹预测2.6 交通灯分析2.7 故障检测 结语 前言 自动驾驶汽车作为未来交通领域的重要发展方向&a…...
[Electron]中IPC进程间通信
Electron中IPC 进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。在 Electron 中,进程使用 ipcMain 和 ipcRenderer 模块,通过开发人员定义的“通道”传递消息来进行通信。 本文介绍以下几个方面: 1-渲染进程到…...
数学建模-动态规划(美赛运用)
动态规划模型的要素是对问题解决的抽象,其可分为: 阶段。指对问题进行解决的自然划分。例如:在最短线路问题中,每进行走一步的决策就是一个阶段。 状态。指一个阶段开始时的自然状况。例如:在最短线路问题中ÿ…...
bat文件给多个Android设备安装apk
本文是安装一个apk 1、确保以下3个文件在同一个目录下 1>要安装的apk,这里是mmb.apk 2>设备名单,保存在.txt文件中,一行一个设备名,设备名通过adb devices获取,截图中是两个设备 txt文件中的样式 3>要运行…...
[数据集][目标检测]光伏板太阳能板缺陷检测数据集VOC+YOLO格式2400张3类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2400 标注数量(xml文件个数):2400 标注数量(txt文件个数):2400 标注…...
深入浅出计算机网络 day.1 概论④ 计算机网络的定义和分类
不要退却,要绽放魅力 我的心会共鸣 和你 —— 24.3.9 一、计算机网络的定义 计算机网络早期的一个最简单定义 现阶段计算机网络的一个较好的定义 二、计算机网络的分类 按交换方式分类 按使用者分类 按传输介质分类 按覆盖范围分类 按拓扑结构分类,可…...
rust引用-借用机制扩展
rust引用-借用机制还是有限制的,比如我们要在多次函数调用中修改参数、跨线程传递参数并发修改的场景,单纯使用引用-借用机制就不灵了(这种场景和引用-借用设计思想是冲突的)。这时需要借助rust提供的Rc、Arc、Cell、RefCell对机制…...
JVM的工作流程
目录 1.JVM 简介 2.JVM 执行流程 3. JVM 运行时数据区 3.1 堆(线程共享) 3.3 本地方法栈(线程私有) 3.4 程序计数器(线程私有) 3.5 方法区(线程共享) 4.JVM 类加载 ① 类…...
kibana配置 dashbord,做可视化展示
一、环境介绍 这里我使用的kibana版本为7.17版本。 语言选择为中文。 需要已经有es,已经有kibana,并且都能正常访问。 二、背景介绍 kibana的可视化界面,可以配置很多监控统计界面。非常方便,做数据的可视化展示。 这篇文章&…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...
【无标题】湖北理元理律师事务所:债务优化中的生活保障与法律平衡之道
文/法律实务观察组 在债务重组领域,专业机构的核心价值不仅在于减轻债务数字,更在于帮助债务人在履行义务的同时维持基本生活尊严。湖北理元理律师事务所的服务实践表明,合法债务优化需同步实现三重平衡: 法律刚性(债…...
