百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

教师如何制作随机点名系统,活跃课堂气氛

ztj100 2025-03-19 04:28 5 浏览 0 评论

上课点名抽学生回答问题,做游戏……由老师口头点名,点谁回答总有点老师本人的情绪,且显得毫无趣味,但做一个点名系统,就不一样了,电脑随机抽出的名字,不仅公平,还会给孩子们带来一种不一样的感受。

那么怎么做呢?

其实目前做这个很简单,没有一点编写代码经验的人都能做到。只需要告诉deepseek,你想做做什么,需达到些什么功能,它就能帮助你编辑好代码。而且还能测试。

如上图,就是让deepseek帮助编写的html点名系统,测试完成,复制出代码,粘贴到记事本上,另存为html网页文件就ok了。注意另存时编码必须utf-8

大家可以去试一试。也可以直接复制下方代码,到记事本上,另存为html文件。并找一个背景音乐,取名"点名音乐.mp3"和html文件放在一起。运行html,下载模板,把学生名字改成自己班上的。再上传上去,就能完美使用了。

郑老师随机点名系统

郑老师随机点名


准备就绪


数据导入功能

说明:请使用CSV格式文件,包含【班级】和【姓名】两列

<script>

// 修复点1:添加完整初始化数据

const initialData = [

['班级', '姓名'],

['郑老师任教一班', '李星晨'],

['郑老师任教一班', '李程峻'],

// ...其他初始数据...

['郑老师任教二班', '王二']

];

// 修复点2:完善本地存储逻辑

let classes = loadFromLocalStorage() || processRawData(initialData);


// 核心功能变量

let currentNames = [];

let isRunning = false;

let intervalId = null;

let timeoutId = null;


const elements = {

nameDisplay: document.getElementById('nameDisplay'),

startBtn: document.getElementById('startBtn'),

classSelect: document.getElementById('classSelect'),

music: document.getElementById('music'),

fileInput: document.getElementById('fileInput')

};

// 修复点3:添加事件监听器绑定

function bindEvents() {

elements.startBtn.addEventListener('click', toggleRoll);

elements.classSelect.addEventListener('change', updateNames);

elements.fileInput.addEventListener('change', handleFile);

}

// 主逻辑

function updateNames() {

currentNames = classes[elements.classSelect.value] || [];


elements.nameDisplay.textContent = "班级已准备";

elements.nameDisplay.style.color = "#2c3e50";

}

function getRandomName() {

return currentNames.length > 0

? currentNames[Math.floor(Math.random() * currentNames.length)]

: "暂无数据";

}

// 数据存储功能

function saveToLocalStorage() {

localStorage.setItem('classData', JSON.stringify(classes));

}

function loadFromLocalStorage() {

const data = localStorage.getItem('classData');

return data ? JSON.parse(data) : null;

}

// 文件处理

function processRawData(rows) {

return rows.slice(1).reduce((acc, [className, name]) => {

className = (className || '未命名班级').toString().trim();

name = (name || '无名学生').toString().trim();

acc[className] = acc[className] || [];

acc[className].push(name);

return acc;

}, {});

}

function handleFile(e) {

const file = e.target.files[0];

const reader = new FileReader();


reader.onload = (event) => {

const csvData = event.target.result;

const rows = csvData.split('\n').map(row => {

const [a, b] = row.split(',').map(c => c.replace(/["'\s]/g, ''));

return [a || '未命名班级', b || '无名学生'];

});


classes = processRawData(rows);

saveToLocalStorage();


elements.classSelect.innerHTML = Object.keys(classes)

.map(c => ``).join('');


updateNames();

alert(`成功导入 ${Object.values(classes).reduce((a,b) => a+b.length,0)} 个学生数据`);

};


reader.readAsText(file);

}

function downloadTemplate() {

const csvContent = "班级,姓名\n五1班,赵一\n五1班,钱一";

const blob = new Blob([csvContent], { type: 'text/csv' });

const link = document.createElement('a');

link.href = URL.createObjectURL(blob);

link.download = '班级模板.csv';

link.click();

}

// 开始/暂停逻辑

function toggleRoll() {

isRunning = !isRunning;


elements.startBtn.textContent = isRunning ? ' 暂停抽选' : ' 开始点名';

elements.startBtn.style.backgroundColor = isRunning ? '#4ecdc4' : '#ff6b6b';


if (isRunning) {

elements.music.play().catch(() => console.log('音乐播放被阻止'));

intervalId = setInterval(() => {

elements.nameDisplay.textContent = getRandomName();

}, 50);


timeoutId = setTimeout(() => {

if(isRunning) toggleRoll();

}, 3000);

} else {

clearTimeout(timeoutId);

elements.music.pause();

clearInterval(intervalId);

elements.nameDisplay.style.color = '#1e90ff';

}

}

// 修复点4:完善初始化流程

function init() {

bindEvents(); // 绑定事件监听器

updateNames(); // 初始化当前班级


// 加载本地存储提示

if(localStorage.getItem('classData')) {

alert('已加载上次保存的学生名单');

} else {

saveToLocalStorage(); // 保存初始数据

}

}


init(); // 执行初始化

</script>

相关推荐

pandas筛选数据的20种高级用法(pandas dataframe筛选)

什么是Pandas库?作用是什么?Pandas库在数据处理和分析中具有广泛的应用,主要包括以下几个方面...

二文进阶Pandas数据可视化(python数据可视化pyecharts)

欢迎来到Pandas的进阶高级教程!在这篇教程中,我们将深入学习Pandas的高级功能和技巧,帮助你更加熟练地处理和分析数据。1.数据合并与连接在实际数据分析中,我们常常需要将多个数据集合并或连接在...

Python Seaborn 衍生变量的可视化

Seaborn是一个基于matplotlib的Python库,用于创建统计图形。衍生变量是指从原始数据中计算得出的新变量。使用Seaborn可视化衍生变量,通过绘制衍生变量的图表,可以...

[R语言] R语言快速入门教程(r语言零基础教程)

本文主要是为了从零开始学习和理解R语言,简要介绍了该语言的最重要部分,以快速入门。主要参考文章:...

分享几个令人相见恨晚的Pandas函数

作者:俊欣来源:关于数据分析与可视化又是新的一周,今天小编给大家来分享几个好用到爆的Pandas函数,或许不那么为人所知,但是相信会给大家在数据分析与挖掘的过程中起到不小的帮助。...

pandas 常用函数清单(pandas常用方法)

文件读取...

一文搞定Pandas核心概念之DataFrame

...

再见 VBA!神器工具统一 Excel 和 Python

欢迎关注...

pandas知识课堂:apply和agg函数,如何传递参数?

在数据处理过程中,我们在使用apply和agg函数的时候,一般都是直接使用自定义函数的名称,即默认带入自定义函数中的只有1个隐式参数(每个分组)。比如下面的例子:df=pd.read_excel(...

【Python数据分析系列】循环遍历DataFrame每行并处理结果新增列

这是我的第389篇...

Pandas每日函数学习之apply函数(pandas中apply)

...

如何在Pandas DataFrame中迭代行?多种方法解析与性能考量

在数据处理和分析中,Pandas是一个广泛使用的Python库,而DataFrame作为其核心数据结构,我们常常会遇到需要迭代其行的情况。本文将围绕StackOverflow上一个高关注度的问题(浏...

Pandas中的宝藏函数(apply)(pandas函数库手册)

来源:AI入门学习作者:小伍哥apply()堪称Pandas中最好用的方法,其使用方式跟map()很像,主要传入的主要参数都是接受输入返回输出。...

腾讯 Go 性能优化实战(腾讯网络优化)

作者:trumanyan,腾讯CSIG后台开发工程师项目背景网关服务作为统一接入服务,是大部分服务的统一入口。为了避免成功瓶颈,需要对其进行尽可能地优化。因此,特别总结一下golang后台服务...

流媒体服务新手入门教程02--m7s环境搭建

m7s后端采用golang语言开发,并提供了前端页面。前端采用vue开发,在2.x的时候是开源的,3.x则闭源了。但是其接口简单友好,可以根据自己的业务开发自己的前端。借助golang良好的跨平台环境...

取消回复欢迎 发表评论: