实现随机点名

JS实现随机点名系统 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> *{ bac 阅读详情

内容
分为上下两个部分,上方为显示区域,下方为控制区域。
显示区域显示基地所有成员的工号和姓名,控制区域由开始和结束两个按钮组成。
点击开始按钮,显示区域里的内容开始滚动,点击结束按钮,内容滚动停止,随机显示—位成员的工号和姓名。
原理
利用Math实现随机
代码

<!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>
</head>
	<style>
	*{
        margin: 0;
        padding: 0;
    }
    .body{
        width: 1000px;
        height: 500px;
        margin: 0 auto;
        border: 1px solid black;
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
    }
    .foot{
        width: 1000px;
        height: 200px;
        margin: 0 auto;
        border: 1px solid black;
        display: flex;
        justify-content: space-evenly;
        align-items: center;
    }
    .student{
        width: 120px;
        height: 30px;
        background-color: rgb(40, 40, 40);
        border: 1px solid rgb(40, 40, 40);
        text-align: center;
        color: white;
        line-height: 30px;
        margin: 20px 20px;
    }
    #start{
        width: 120px;
        height: 40px;
        border: 1px solid rgb(0, 166, 255);
        background-color: rgb(0, 166, 255);
        color: rgb(255, 255, 0);
        font-size: 25px;
    }
    #end{
        width: 120px;
        height: 40px;
        border: 1px solid orangered;
        background-color: orangered;
        color: white;
        font-size: 25px;
    }
    .active{
        background-color: yellow;
    }
	</style>
</head>
<body>
    <div class="container">
        <ul class="body" id="body"></ul>
        <div class="foot">
            <button id="start">开始</button>
            <button id="end">停止</button>
        </div>
    </div>
    <script>
        var arr = [
            '11451401刘一', '11451402陈二', '11451403张三', '11451404李四',
            '11451405王五', '11451406赵六', '11451407赵六', '11451408周八',
            '11451409吴九', '114514010郑十', '114514011侯某', '114514012答辩'
        ] 
        var body = document.getElementById('body')
        var start = document.getElementById('start')
        var end = document.getElementById('end')
        var timer
        for(var i=0;i<arr.length;i++){
            var oli = document.createElement('li') //向ul里添加li标签
            oli.innerHTML = arr[i]
            oli.className = 'student' //对li追加class标签
            body.appendChild(oli)
        }
        function cholose() {
            var random=Math.round(Math.random()*(arr.length));//设置随机选中
            for (var m = 0; m < arr.length; m++) {//为setInterval设置运行
                body.children[m].style.background = ''//防止随机改变颜色时上一个颜色留下
            }
            body.children[random].style.background = 'blue'//改变当前背景色
        }
        start.onclick = function(){
            timer = setInterval('cholose()', 300)//,执行'cholose',间隔100毫秒
        }
        end.onclick = function(){
            clearInterval(timer)
        }
    </script>
</body>
</html>

效果
在这里插入图片描述

从Excel表导入数据制作随机点名的网页html 从Excel表导入数据制作随机点名的网页html 表格素材 ctrl + shift + 向下的箭头 == 全选 建一个txt文件,把数据粘贴过来 三种方法换行改为空格 使用Notepad++ ctrl + f 后进入替换 \r\n //是替换的元素 使用全部替换使"换行"改为"空格 " 改好效果图 新建一个空白html文件 什么标签都不要写 在浏览器打开就得到 暴力法 直接手动一个一个改成这个样子 利用python改成数组形式 把上面转成的数据粘贴到da 阅读详情

相关推荐

随机点名系统网页版--适用于手机和电脑.html

实现一个简单的点名系统(无需使用第三方插件),需求分析:两个按钮实现随机点名的开始和结束,增加倒计时功能(开始后,可手动点击停止,不然程序将在10秒后自动停止)。

HTML:随机点名网页

公司年会抽奖必备

aimersong69的博客 6730

网页版点名器

网页版点名器.界面简洁又大气,名字采用数组录入,极易修改,甚至无基础,右键打开都能进行名字的录入,教师朋友装逼必备,丰富课堂,网页初学者当入门的综合案例也是不错的选择,有兴趣千万不要错过

随机点名网页-----秒表计时器

一个浏览器窗口就是一个window对象,这个窗口里面的HTML文档就是一个document对象,document对象就是window对象的子对象。innerText指的是从对象的起始位置到终点位置的全部内容,包括html标签。setInterval和clearInterval----用来重复调用函数和取消函数。该方法用于在网页加载完毕后立刻执行的操作,即当html加载完毕后,立刻执行某个方法等。ondblclick---双击某个对象时触发。onclick----点击某个对象时触发。showNum辅助函数。

繁星 1536

NVIDIA Jetson Xavier NX刷机+ROS安装+深度学习配置

.NVIDIA Jetson Xavier NX 完整说明流程 V1.0.0 – by Holden Date : 2021-03-19 文章目录.NVIDIA Jetson Xavier NX 完整说明流程1. Jetson Xavier NX简介2. Jetson Xavier NX刷机介绍2.1 工具准备工作2.2 下载镜像以及烧录工具2.3 烧录原生镜像到TF卡2.4 开机启动2.5 组件配置4. 镜像克隆制作5. 镜像重烧写6. NX调控命令 1. Jetson Xavier NX简介 ​ NVI

李老板Holden的博客 7619

【CUT&TAG分析-加了spike in的样品】

使用 Bowtie2 或 Subread (subjunc) 来构建大肠杆菌的索引。bowtie2比对时设置参数–local, 局部比对。

weixin_57975238的博客 1400

【如何编码实现一个随机点名器】

根据程序功能的不同,将其功能封装在不同的方法中;联系使用数组解决多个数据的存储问题!

m0_55749088的博客 2563

手把手教你用ComfyUI搭建高效AI绘画工作流:从基础到高级技巧

本文详细介绍了如何使用ComfyUI构建高效的AI绘画工作流,从基础配置到高级技巧全面覆盖。通过模块化设计,ComfyUI显著提升显存利用率和创作灵活性,适合从新手到专业用户。文章包含部署指南、工作流搭建、性能优化及行业应用案例,帮助读者快速掌握AI绘画核心技术。

7up55的博客 719

js实现随机点名

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

weixin_45575599的博客 2165

DDR内存设计必看:DFI接口协议详解与实战避坑指南(附时序图解析)

本文深入解析了DDR内存设计中连接内存控制器与物理层的DFI接口协议,聚焦于DDR4/DDR5设计的实际痛点。文章详细阐述了协议版本兼容性、时钟架构(匹配频率与频率比系统)、PCB信号完整性设计以及上电初始化与调试等关键环节,为硬件工程师提供了一套从理论到实战的完整避坑指南,并附有时序图解析以助理解。

weixin_29256771的博客 331

UI-TARS桌面版模型部署

在 UI-TARS 中配置 VLM(视觉语言模型)模型,无论是选择云端(Hugging Face)还是本地(vLLM)部署,都需要经过一系列步骤,下面为你详细展开介绍。

二琳爱吃肉的博客 4539

用js实现一个随机点名

html代码 <h1>随机点名系统</h1> <div id="time"></div> <div id="box"> <ul> <li>张三</li> <li>李四</li> <li>王五</li>...

DeviL_MCry的博客 2746

一文快速教你如何下载国自然模版

5. 成功进入“相关文件查看”页面后,点击左侧的“项目申请文件“,如果你此次申请的是“面上项目”,选择对应的下拉框,找到对应的模版下载即可。6. 🫑们发现,在当前页面点击“青年科学基金项目”,左侧出现的是“原国家杰出青年科学基金项目”。7. 进入下一页后,点击“青年科学基金项目”,便可以在右侧找到🫑们要找的模版啦。2. 成功登陆后,点击1处的“首页”,在首页界面,再点击2处的“项目批准”。8. 点击上图3处的“文件详情”,就可以找到可以下载的模版啦(如下图)。3. 从“项目批准”进入后,点击“管理”。

薰珞婷紫小亭子的博客 2399

点名器实现的随机原理(实现随机点名器)

以随机点名器举例: 第一步:存储全班同学姓名 ;addStudentName 创建一个存储多个同学姓名的容器(数组实现) 键盘输入每个同学的姓名,存储到容器中(数组) 第二步:让程序总览全班同学姓名;printStudentName 第三步:应用随机原理点名其中一人。randomStudentName package 数组实训之随机点名器; import java.util.Random; imp...

BinParker的博客 2746

5、自动化代码结构与运维系统的优化

本文探讨了自动化代码结构与运维系统的优化方法,涵盖审批流程的模块化设计、日志记录与工单系统的集成、通知方式的选择、错误处理的策略以及持续改进的实践。同时,深入分析了运维盲目性问题,通过故障案例揭示了关键指标缺失和日志未充分利用的弊端,提出了开发与运维角色转变的必要性。文章还介绍了如何生成有用的系统指标、建立良好的日志习惯以及实施日志聚合,以提升系统的可观测性和可靠性。最终通过总结和流程图展示了优化措施的核心要点,为构建高效、可靠的运维体系提供了指导。

pp12345的博客 71

趋势跟踪策略

/ 绘制K线图的下跌部分,使用绿色标记 stickline(close>=open,high,close,1,1,colorgreen);end // 在图表上绘制当前趋势的图标,如果trend=1或-1 drawicon(trend=1,stopprice,10);end // 绘制K线图的上涨部分,使用红色标记 stickline(close>=open,high,close,1,1,colorred);

2401_84919512的博客 355

web前端实现随机点名系统?安卓实现随机点名系统?Java实现随机点名?对 本篇全部实现,各位看官请好

本篇将用web前端:HTML+CSS+JS实现随机点名、Android实现随机点名、Java实现随机点名; 当然我这儿先实现说一下思路;细心的你会发现,无论我提到的哪种实现,其核心都是Java,HTML的核心代码还是JavaScript,安卓的实现逻辑代码当然还是Java了。 多不废话,咋们先来看看整体的逻辑:我们先把要随机显示的名字放到一个数组里面,然后产生一个数组长度大小的随机数,完事我们用这...

WayneHu的博客 2746

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java实现随机点名器

细节1:假设班级有5名同学,每轮中的每一位同学只能被点到一次,程序运行五次,第一轮点名结束。* 细节2:第6次运行的时候,我们自己不需要手动操作本地文件,要求程序自动开启第二轮点名。* 一个文件里面储存满了班级同学的姓名,每个姓名占一行。* 需求: 一个文件夹里储存了班级同学的姓名,每个姓名占一行。* 第一次运行程序:随机同学姓名1(只显示名字)* 第二次运行程序:随机同学姓名2(只显示名字)* 第二次运行程序:随机同学姓名2。

qq_69957794的博客 1404

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

用Vue实现随机点名

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> li { margin: 10px;

boysYong的博客 3779

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python实现课堂随机点名程序,带界面

python实现的课堂随机点名程序,程序代码来源于某乎上一位博主的项目源码,文章地址: https://zhuanlan.zhihu.com/p/568928266 本人出于学习目的,基于该博主的代码,进行了一定的修改,以实现想要的点名效果,主要是界面显示方面,调整了一些布局和按钮的显示大小和位置等。若有侵权,联系删除。 点名的姓名名单默认存放在和代码文件同一个目录下,名称叫做names.txt 文件中姓名的格式为一个姓名一行: 代码也支持动态选择一个txt文件

c1007857613的专栏 1万+

运用JS 实现随机点名 (随机点名)

<div id="box"></div> <input type="button" id="btn"> </body> <script> var obox = document.getElementById("box") var obtn = document.body.children[1]; var stuName = ["张三","李四","王二","钱五","赵六","黄一"]; ...

qq_26705343的博客 3941

随机点名器的实现!!!

今天要用java实现一个随机点名器,步骤如下: 1、存储学生姓名,添加功能 2、预览所有的学生姓名,遍历数组、有预览功能 3、随机数作为索引,到数组中找到元素,实现随机点名功能 4、将每个功能都独立出来,调用方法即可 5、 package 随机点名机器; import java.util.Random; import jav...

hxl665java的博客 8402

js实现简单随机点名器

之前做了js倒计时,现在做一个随机点名器,这个更简单,没什么技术含量,直接上代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>点击按钮随机点名-样式布局参考</title> <style> * { padding: 0px; margin: 0px;

youzigrowing的博客 5391

JavaScript实现随机点名

&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;JS实现随机点名&amp;lt;/title&

Dev-Liangjian的博客 2769

JavaScript实现随机点名器

JavaScript实现随机点名器效果图 js实现随机点名器的思路 利用setTimeout()计时器实现随机的效果,功能函数 function show(){ var box=window.document.getElementById("box"); var num=Math.floor((Math.random()*100000))%namelist.length; ...

weixin_43894771的博客 4007

随机点名器用前端代码实现

在html中实现随机点名 ----代码实现效果如下: 注意: 1.jar包的导入 2.随机索引的生成 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>随机点名器</title> <!--引入JQery的jar包--> <script src="js/jquery-3.3.1.min.js">

awei19950103的博客 1529
上一篇: 发送验证码
下一篇: 实现动态表格
Meg_Fu
博客等级 码龄4年 8粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值