个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

目录

前言

随机点名

搭建主体框架

简述

执行代码

添加功能

块级元素随机输出姓名

Math.random()

Math.round()

按钮控制开始/结束

onclick()

clearInterval()

简述

完整代码

执行结果

片尾彩蛋


前言

身为程序员的你 ,在老师使用工具随机摇人的时候,你是心里紧张的默念“抽不到我,抽不到我”,还是在琢磨老师的随机点名是如何实现的呢?今天这篇文章将为你揭露点名的“真相”......

随机点名

搭建主体框架

简述

首先建一个块级元素用来展示随机抽取的过程和最后的结果,下面写个按钮控制开始和结束。块级元素和按钮的属性可以按照自己的喜好修改。

执行代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#content{width: 600px;height: 400px;background: rgb(205, 255, 223);margin: 100px auto;text-align: center;position: relative;line-height: 400px;color: rgb(43, 150, 226);font-size: 80px;}   #start{background: #ccc;width: 200px;height: 100px;font-size: 40px;color:red;border-radius: 12px;position: absolute;margin-left: -90px;left: 50%;}</style>
</head>
<body><div id="content"><span>点击开始</span></div><button id="start">开始</button>
</body>
</html>

执行结果

添加功能

块级元素随机输出姓名

Math.random()

返回一个浮点数,伪随机数在范围从0 到小于1,也就是说,从 0(包括 0)往上,但是不包括 1(排除 1)

Math.round()

取整

setInterval()

可按照指定的周期(以毫秒计,1000 毫秒= 1 秒)来调用函数或计算表达式。

简述

首先将参与点名的同学的名字放进一个数组里,然后我们可以通过Math.random()函数随机生成数组的索引,通过随机生成0~数组长度(不包括),所以将Math.random()乘以数组长度,在对其求整就可以实现随机生成数组的索引,再通过索引用setInterval() 函数(100毫秒为周期)输出对应的学生的姓名,

实现代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>#content{width: 600px;height: 400px;background: rgb(205, 255, 223);margin: 100px auto;text-align: center;position: relative;line-height: 400px;color: rgb(43, 150, 226);font-size: 80px;}   #start{background: #ccc;width: 200px;height: 100px;font-size: 40px;color:red;border-radius: 12px;position: absolute;margin-left: -90px;left: 50%;}</style>
</head>
<body><div id="content"><span id="ts">点击开始</span></div><button id="start">开始</button><script>var arr = ["张老三","李四","王老五","老六"];var $ts = document.getElementById('ts');var timer;function print(){timer = setInterval(function(){var num = random(arr.length - 1);$ts.innerHTML = arr[num];},100)}function random(b){var randomNum = Math.round(Math.random() *b);return randomNum;} print();</script>
</body>
</html>

运行结果

按钮控制开始/结束

onclick()

当按钮被点击时执行Javascript代码

clearInterval()

显示当前时间 ( setInterval() 函数会每秒执行一次函数,类似手表)。使用 clearInterval() 来停止执行

简述

定义一个初始值为true的布尔值,点击按钮后如果布尔值为真那么执行随机输出函数,将按钮内的值改为"结束",布尔值赋值为false,如果为假就结束输出,将按钮内的值改为"开始",布尔值赋值为true。

完整代码

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>随机点名</title><style>#content{width: 600px;height: 400px;background: rgb(205, 255, 223);margin: 100px auto;text-align: center;position: relative;line-height: 400px;color: rgb(43, 150, 226);font-size: 80px;}   #start{background: #ccc;width: 200px;height: 100px;font-size: 40px;color:red;border-radius: 12px;position: absolute;margin-left: -90px;left: 50%;}</style>
</head>
<body><div id="content"><span id="ts">点击开始</span></div><button id="start">开始</button><script>var arr = ["张老三","李四","王老五","老六"];var $start = document.getElementById('start');var $content = document.getElementById('content');var $ts = document.getElementById('ts');var timer;var testNum = true;$start.onclick = function(){if(testNum){print();$start.innerHTML = '结束';testNum = false;}else{stop();start.innerHTML = '开始';testNum = true;}}function print(){timer = setInterval(function(){var num = random(arr.length - 1);$ts.innerHTML = arr[num];},100)}function stop(){clearInterval(timer);      }function random(b){var randomNum = Math.round(Math.random() *b);return randomNum;}        </script>
</body>
</html>

执行结果

抽取前:

抽取中:

抽取结果:

片尾彩蛋

如果你有“选择困难症”,你可以在做选择前把选择的内容放进一个数组里替换上面的数组,让电脑来帮你做选择,避免自己纠结,岂不美哉!!!

1024程序节|你知道老师上课随机点名是怎么实现的吗相关推荐

  1. 利用HTML实现上课随机点名

    记录学习的第二天! 高中数学老师一枚,为增强上课的趣味性,激发学生的学习欲望,专门用HTML5写了一个上课随机点名系统.通过实践检验,效果良好! 虽然学校一体机配备有点名软件,但老师自己写的小玩意可以 ...

  2. python随机点名程序 图形化_python写一个随机点名软件,python随机点名,最近有个随机点名软件...

    python写一个随机点名软件,python随机点名,最近有个随机点名软件 最近有个随机点名软件的需求,故写了一个,上代码:github地址# -*- coding: utf-8 -*-# @Time ...

  3. python随机点名程序 图形化,python写一个随机点名软件的实例

    最近有个随机点名软件的需求,故写了一个,上代码:github地址 # -*- coding: utf-8 -*- # @Time : 18-12-31 下午4:21 # @Author : Felix ...

  4. 笔记本电脑连接宽带的时候报错(调制解调器报告了一个错误)(1024程序节纪念一下自己的最坑)

    经历:,电脑关机后莫名其妙无法连接到宽带了,起初以为是电脑有线网卡驱动的问题,然后还是用驱动人生安装新版的网卡驱动,然而结果确实残酷的(更新失败!!),然后我重启继续,发现仍然不行, 解决过程: 最后 ...

  5. 贝叶斯公式与随机点名中的学生可信度

      今天的Java上机练习有一道非常有意思的题: 使用贝叶斯公式求解,随机点名多少次,学生的可信度降到了0.01以下,该同学需要经过多少次,可信度才能上升到0.85. 假定初始同学可信的概率是0.8, ...

  6. python小案例随机点名_python用tkinter实现一个简易能进行随机点名的界面

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  7. python大学随机点名名_python用tkinter实现一个简易能进行随机点名的界面

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  8. 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  9. 课堂随机点名神器,超简单快捷设置教程

    [点名精灵]点名软件是一款课堂随机点名神器,老师可以通过此软件轻松实现随机点名,有效的保证公平公正的点名服务. 软件使用教程: ①:先导入班级花名册,通过excel表格一键导入(可查看导入示例) ②: ...

最新文章

  1. 别让扁平化设计平淡无奇
  2. 干货:TensorFlow1.2~2.1各个GPU版本CUDA和cuDNN对应版本整理
  3. JFlow CCFlow工作流引擎北京培训邀请函
  4. 快速理解和使用 ES7 await/async
  5. C语言程序设计 文件操作函数
  6. 4.Model Validation
  7. vim 强制保存只读文件
  8. ACMMM 2021《LSG》性能SOTA!用GNN和GAN的方式来强化Video Captioning的学习!
  9. Kaggle 数据清洗挑战 Day 1 - 手把手教你五步处理缺失值
  10. 《Arduino实战》——1.7 为代码编写注释
  11. Oracle树结构查询按层级排序
  12. vb.net中如何结束一个线程
  13. Java实现简单工厂模式
  14. 数学建模 最优化方法:动态规划 学习笔记
  15. 从假装在腾讯,到真的360 —— 一个应届准PM的独白(面经干货)
  16. Zemax OpticsBuilder
  17. git 码云上传本地项目
  18. 【论文笔记_自知识蒸馏_2021】Revisiting Knowledge Distillation via Label Smoothing Regularization
  19. WIN10的桌面和虚拟桌面的切换快捷键太方便了
  20. SystemUi通知栏

热门文章

  1. LG-P2657 [SCOI2009]windy数
  2. 2.基于holychip(HC89F30xC系列)的使用
  3. Activiti流程定义缓存源码分析8-流程缓存自定义原理
  4. stm32 esp8266配网-smartConfig和BT串口方式配网
  5. 英语中常见从句的简化
  6. 安卓自定义视频播放器,有进度条暂停播放等功能
  7. 某盘客户端工具,这速度绝了!请低调使用
  8. Fwd: Nginx Rewrite研究笔记
  9. python正弦波叠加方波_无穷多个(幅值)和(频率)不等的正弦波叠加就能形成周期方波。_学小易找答案...
  10. GNN模型系列(一)——Vanilla GNNs