精华内容
下载资源
问答
  • 实现多功能的方法要不做成微信小程序。或者是做成web项目上传云服务器。但是考虑成本和维护。就先做一个不带数据库和后台的页面。赛制和环节通过点击之页面上的button组合需要的赛制环节模式。 需要说明的是 首先 这...

    先简单一下这个计时器背景

    大学时期打了几年的辩论赛。一直有这个情怀在。看到那些孩子们孩子用很多年前的计时软件。就考虑闲暇时做一个新的计时器。但首先存在一个问题。实现多功能的方法要不做成微信小程序。或者是做成web项目上传云服务器。但是考虑成本和维护。就先做一个不带数据库和后台的页面。赛制和环节通过点击之页面上的button组合需要的赛制环节模式。

    需要说明的是

    首先 这不是我的原生开发。这是我在gitee上拿到一个开源的项目 进行加工。优化了一下页面效果和逻辑。添加了一些逻辑。本来想用vue再加工一下。但是还要上班工作量大了点。下次周末再来优化。

    先上几张截图

    主界面
    信息配置的模态框
    普通模式界面
    计时效果
    自由模式界面

    时间到提示

    这里感谢下原作者

    在这里插入图片描述
    首先作者是一名高中学生。这一点我真的佩服。虽然原作者只是用了jq 原生js 和bootstrap 。没用框架。但是作为一名还未读大学的孩子。确实能写到这种程度还是很佩服的。(我高中那会就会C语言的if和for)。当然这也不是这个孩子的原生开发。还有之前的作者MrAMS。一个github上的做作者。

    还需要改进的地方

    那确实太多了,比如计时的动画提示,还有赛制信息没做。准备加个后台存数据。之前原来版本用了perl更新数据。我觉得麻烦了点,改成了本地存储。但未来还是要用到数据库和后台的。等有空用vue改写一下。然后价格后台啥的,之前看到一个自带ai评分的一个项目。准备拿来一起试试。既然是为了情怀改写的代码,那当然有空要继续做下去

    源码地址

    有空会一直更新代码的 也欢迎曾经是辩手的程序员们一起加入进来。为了热爱 也为了情怀
    gitee源码地址,可以直接克隆下载
    或者复制该地址:https://gitee.com/beck0514001/my-demo-project/tree/debateTimer/

    展开全文
  • 自己制作一个计时器、倒计时器

    千次阅读 2020-11-30 10:12:00
    时间的观念在现在的时代越来越重要,考试要定时完成,炒菜做饭要计时完成,甚至连煮包泡面都要计时才能更加美味。...本程序的编写环境是VC++6.0,目前此程序实现了计时器和倒计时器功能。每次只能执行一个功能

    计时器和倒计时器的设计与实现

    摘 要
    时间的观念在现在的时代越来越重要,考试要定时完成,炒菜做饭要计时完成,甚至连煮包泡面都要计时才能更加美味。制作计时器对我们越来越重要。

    本计时器中的倒计时使用的for函数输出把时间用00:00:00这种格式输出,使用Sleep来让整个程序暂停一秒,来完成计时一秒的功能,然后用/r覆盖掉上一行输出一秒后的剩余倒计时,在倒计时变为00:00:00时,输出时间到并用/a响铃。计时器采用类似的计时方法,不一样的是这次使用system(“cls”)清屏,然后重新输出下一次时间,用函数kbhit确定是否有键盘敲击,如果有将其录入,当这个值和所确定的停止值相同时,将退出for函数,停止计时,并输出时间。

    本程序的编写环境是VC++6.0,目前此程序实现了计时器和倒计时器的功能。每次只能执行一个功能。
    关键词: vc6.0,C语言,函数,计时器,倒计时器。

    1 引言

    1.1关于工程实践

    在我看来,整个工程实践中是让我们了解程序设计的整个流程,以及怎么实现这项功能,如何利用所学的c语言知识,来完成一个属于自己的小程序,小软件,在其中遇到的问题将其总结,最后将成为很好的学习笔记。

    1.2 课题背景

    经过一个学期的C语言课程学习,我们已经掌握了基本的C语言编程,而如何使用这些编程知识,让其变得有用十分重要。于是我们想到了开发一个计时倒计时的小程序。

    在人们生活中,时间是很重要的一种东西。无论什么都离不开时间。倒计时和计时更是如此。通过倒计时计算考试时间,计算煮饭煮菜的时间,通过计时计算跑步时间,计算做题讲课的时间。时间观念对我们来说越来越重要,制作计时器对我们也越来越重要,所以让我们来看看如何制作一个计时装置,即一个计时器和一个倒计时器。

    2 需求分析

    2.1程序目标

    完成一个简单的计时器和倒计时器,要求实现最基本的计时和倒计时程序,当用户打开程序后通过提示输入数字1 2 3进行三种操作。

    (1)输入数字1进行倒计时操作,通过输入00:00:00这种格式的时间倒计时,在时间到的时候提示“时间到!”,同时响铃。
    (2)输入数字2进行计时器操作,通过提示进入计时程序,并通过按Esc键停止计时,并输出计时时间。

    2.2 开发环境及工具

    2.2.1 运行环境

    Windows10
    也可以在一台内存大于800k内存的位系统电脑运行。

    2.2.2 编程软件介绍

    Microsoft Visual C++60.:调用系统文件#include <stdio.h>实现输入输出、#include <stdlib.h>使用退出exit函数、#include <time.h>读取系统时间通过结构体time_t实现、#include <Windows.h>

    3 系统总体结构设计

    3.1 基本简介

    本程序分为四个模块,除了程序的main函数以外,分别分为面板,计时和倒计时三部分。其中面板模块就是呈现给用户的主界面,计时模块负责实现记录在给定时间之间的时间长度,以及开始计时和结束计时的输入输出,而倒计时则是专门负责在倒计时的时间录入和时间到时的提示以及响铃。
    下面是程序流程图:
    程序流程图

    3.2 系统功能模块及设计

    3.2.1 数据结构设计

    主体程序中设计除了选择以外,输出“输入错误”的程序后可以重新输入选择。

    在这里插入图片描述

    3.2.2 面板模式介绍

    进入程序后,输出:

    “计时器&&倒计时器
    本程序是由网络空间安全学院学生工程实践研发
    ==== 计时方式 ====
    1. 倒计时器
    2. 计时器
    请输入你选择的代号:”

    几行字样。

    通过用户输入1 或 2来控制进入计时器还是倒计时器,如果用户不小心输入错误将提示“不好意思选错咯~”并在此进行选择,面板模块只是起到将其他模块链接起来的作用,在后期需要追加更多功能时也可以由面板模块连接。

    3.2.3 倒计时器模块介绍

    倒计时器将承担输入时间并进行倒计时的功能,用户将在此模块界面直接输入格式为“00:01:09”的时间进行倒计时,输入正确时间正确,将输出“倒计时开始!”,当时间变成“00:00:00”时,输出“时间到!”并响铃,之后按任意键退出程序。

    3.2.4 计时器模块介绍

    计时器将承担计算从用户输入开始标记到用户输入结束标记之间的时间的功能,用“计时时长为:00:00:05”的格式输出所计的时间。

    4 系统详细设计与实现

    4.1界面模块设计与实现

    作为最简单的计时和倒计时程序,使用vc6.0的默认程序窗口。

    4.2 模块设计与实现

    4.2.1主体模块设计与实现

    在主体之前定义其他模块的函数。通过while函数实现如果输入错误那么便接受用户的重新输入选择,通过switch函数选择进入计时器功能的函数还是倒计时器功能的函数。作为main函数,在之后追加函数或修改时更加容易。

    4.2.2 面板模块设计与实现

    进入程序后,由面板模块的函数通过printf函数输出边界图形字符以及欢迎界面,并介绍该程序选择方法(输入数字1 or 2)具体如下图。提示用户进行输入,之后通过while函数和switch函数进行选择。(while函数用于当输入错误时可以重新输入)
    在这里插入图片描述

    4.2.3 倒计时器模块的设计与实现

    倒计时器的代码在面部模式的函数中,通过printf输出提示输入倒计时时间(格式:00:01:08),当输入正确后,输出“倒计时开始”并输出“00:01:08”格式一秒一秒减少的时间,当时间变为“00:00:00”时,响铃并输出“时间到!”三字。

    在这里插入图片描述在这里插入图片描述

    4.2.4 计时器模块设计与实现

    模块分为两部分,一部分在主体函数里通过输入选择计时模式开始计时,然后进入计时器函数,用Sleep和system(”cls”)和while循环通过(00:00:00)格式下秒数分钟数,进行计时,通过函数kbhit、if、getch停止计时跳出循环,完成计时。

    在这里插入图片描述在这里插入图片描述

    5 系统测试与分析

    5.1 测试

    根据电脑所给的提示出现语法错误,缺少变量的定义大多的语法错误在通过书本或网络的参考下能够修改。主要是平时看书不仔细、不太注意而产生的。如没有注意具体数据使用。

    5.2 调试过程中遇到的主要问题

    if,while,switch三个循环中容易缺少括号,进行修改后括号更加容易出错。这直接导致在vc中编译时出现很多错误。
    time_t结构体出现在#include <time.h>头文件里。
    <conio.h>头文件用来 kbhit getch
    <Windows.h>头文件用来 sleep

    结论

    经过了四个星期的c语言程序设计终于在老师的细心指导和同学的热情帮助下基本完成了计时器和倒计时器的设计修改任务。
    程序设计期间,学习到很多课堂上没有的知识,还积累了很多实践经验,增强了动手能力和解决实际问题的能力。我通过网上查找到很多成功的关于计时器倒计时器的程序,通过对那些已经成功的程序进行分析找到自己的设计思路,制定设计流程。通过对网现存的计时器倒计时器的比对,我发现我自己做的程序显得十分简陋,但是这个程序也是我通过完整的设计流程设计出的程序。
    限于作者知识水平和经验有限,此程序还有许多有待完善和改正的地方,恳请各位老师和读者批评指正。

    参考文献

    [1] 黄明等.21世纪进阶辅导 C语言程序设计.大连理工大学出版社,2005
    [2] 马靖善等.C语言程序设计.清华大学出版社,2005

    附录:

    程序下载:

    程序下载地址(exe)

    代码

    #include <stdio.h>
    
    #include <stdlib.h>
    
    #include <time.h>
    
    #include<conio.h>//kbhit getch
    
    #include <Windows.h>//用于sleep
    
    int daojishi();
    
    int jishiqi();
    
    int main ()
    {  
        int c;
    
    	printf("╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");
    	printf("╠                          ╣\n");
    	printf("╠                          ╣\n");
    	printf("╠                          ╣\n");
    	printf("╠     计时器&&倒计时器     ╣\n");
    	printf("╠                          ╣\n");
    	printf("╠                          ╣\n");
    	printf("╠                          ╣\n");
    	printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n");
    
    	
    	printf("本程序是由网络空间安全学院学生工程实践研发\n");
    
        
    	printf("====计时方式====\n");  
        
    	printf("1. 倒计时器\n");  
        
    	printf("2. 计时器\n");  
    
        
    	printf("请输入你选择的代号:");  
        
    	scanf("%d", &c);  
    
    
        while(c!=1&&c!=2){
    	
    	printf("不好意思选错咯~\n");
    	
    	printf("====计时方式====\n");  
        
    	printf("1. 倒计时器\n");  
    
        printf("2. 计时器\n"); 
    	
        printf("请输入你选择的代号:");
    
    	scanf("%d", &c);
    	}
    
    
    	switch(c)  
        {  
        case 1: 
    		 daojishi();
    
            break;
    		
        case 2: 
    			jishiqi();
    
            break; 
    	
    	}
        
    	return 0;  
    
    }
    
    
    
    
    int daojishi()
     {
    	int i,j,k;
    
    	int hour=0,min=0,sec=0;
    
    
    	printf("请输入倒计时时间(例如:01:26:30):");
    
    
    	scanf("%d:%d:%d", &hour, &min, &sec);
    
    
    	if(hour>24 || hour<0 || min>60 || min<0 || sec>60 || sec<0)
    	{
    
    		printf("输入有误!\n");
    
    		return 0;
    
    	}	
    
    	printf("倒计时开始!\n");
    
    
    
    	for(i=hour; i>=0; i--)
    	 {
    
    		for(j=min; j>=0; j--)
    		{
    	
    			for(k=sec; k>=0; k--)
    			{
    
    				printf("\r%02d:%02d:%02d", i, j, k);
    
    				Sleep(1000);
    
    			}
    
    			sec = 59;
    
    		}	
    
    			min = 59;
    
    	}
    
    	printf("\a\n时间到!\n");//倒计时结束后响铃
    
    	exit(0);
    
    }
    
    
    
    int jishiqi()
    {
    	
    	int hour = 0, min = 0, sec = 0,n;    
    	
    	while (n!=32)
    		{
    
    			if(kbhit()){//键盘敲击 检查当前是否有键盘输入,如果有则赋值给n
    			
    			n=getch();
    			
    			while(n==32){
    			
    				exit(0);	
    			}
    		
    		}
    		
    
    		Sleep(1000);//暂停1s        
    	    
    		system("cls");//清屏
            
    		
    		printf("╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗\n");
    		printf("╠                          ╣\n");
    		printf("╠                          ╣\n");
    		printf("╠                          ╣\n");
    		printf("╠     计时器&&倒计时器     ╣\n");
    		printf("╠                          ╣\n");
    		printf("╠                          ╣\n");
    		printf("╠                          ╣\n");
    		printf("╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝\n");
    	
    		
    		printf("本程序是由网络空间安全学院学生工程实践研发\n");
    		
    		
    		printf("====计时方式====\n");  
    	    
    		printf("1. 倒计时器");
    
    		printf("\n");
    	    
    		printf("2. 计时器");  
    
    		printf("\n");
    		
    		printf("请输入你选择的代号:2");
    
    		printf("\n");
    		
    		printf("按空格停止计时");
    
    		printf("\n");
    
    
    	    sec++;      
    
    
    	    if (sec == 60)
    		{            
    		
    			min++;            
    		   
    			sec = 0;       
    		}        
    	    if (min == 60)
    		{            
    	
    			hour++;            
    		   
    			min = 0;        
    		}        
    	    if (hour == 24)
    		{            
    		   
    			hour = 0;        
    		}        
    	    
    		printf("%02d:%02d:%02d\n", hour, min, sec); //%02d输出长度为2,不足2前面补0    
    		
    		
    		if(kbhit()){//键盘敲击 检查当前是否有键盘输入,如果有则赋值给n
    			
    			n=getch();
    			
    			while(n==32){
    			
    				exit(0);	
    			}
    		
    		}
    
    	}
    
        return 0;
    }
    
    
    展开全文
  • 简介打点计时器是高中力学实验最重要的仪器,没有之一!本文带你了解打点计时器的分类、原理、构造和使用方法。在介绍之前,先请大家思考这个问题:“打点计时器”是用来做什么的?学习一个仪器,最重要的是要知道它...
    724361643b476fc81046e625aec33c82.png

    简介

    打点计时器是高中力学实验最重要的仪器,没有之一!

    本文带你了解打点计时器的分类、原理、构造和使用方法。

    在介绍之前,先请大家思考这个问题:“打点计时器”是用来做什么的?

    学习一个仪器,最重要的是要知道它能用来做什么。

    让我们来分析:

    • 首先,从名字上看,这是个计时的工具;
    • 其次,由于它能打点,所以可以记录位移的信息;
    • 既能计时,又能记录位移,那么它就可以计算速度加速度

    ——这就是打点计时器的作用!

    打点计时器是计时、记位移、计算速度和加速度的仪器。

    明白了吗?

    4dbe642e9d802203b2752072a6e747eb.png

    好了,下面具体介绍:

    高中涉及的打点计时器主要有两种类型:电磁打点计时器电火花计时器。电磁打点计时器

    电磁打点计时器是一种能按照相同的时间间隔,在纸带上连续打点的仪器。

    使用交流电:

    由学生电源供电,电压6v以下。由于使用交流电,所以频率为50赫兹,也就是说,每五十分之一秒(0.02秒)打一个点。

    主要结构:

    • 线圈
    • 振片
    • 振针
    • 复写纸
    • 限位孔
    • 永磁铁
    • 纸带

    电源

    3f53cce246a64d728b98ac5d21943b12.png

    电磁打点计时器

    工作原理:

    通电前,把纸带穿过限位孔,再把套在轴上的复写纸压在纸带下面。

    通电后,在线圈和永磁铁的作用下,振片便震动起来,带动其上的振针上下振动。振针撞击纸带,由于有复印纸的存在,纸带上会留下印记。

    如果纸带运动,纸带上就会有一行印记小点。

    如果把纸带的一端跟运动的物体连在一起,由物体带动纸带一起运动,纸带上各个点之间的距离就表示相应时间间隔中物体的位移

    研究这些点,就可以了解物体的运动情况。

    02

    电火花计时器

    原理与电磁打点计时器相同,不过在纸带上打点的不是振针和复写纸,而是电火花和墨粉。同样使用50赫兹交流电。

    b64b3c276bd084fd4804ceec688c1da2.png

    电火花打点计时器

    主要结构:

    • 墨粉纸盘
    • 纸盘轴
    • 放电针
    • 纸带
    • 电源

    工作原理:

    通电前,墨粉纸套在纸盘轴上,把纸带穿过限位孔。

    通电后,按下脉冲输出开关,计时器发出的脉冲电流经过放电针、墨粉纸盘到纸盘轴,产生火花放电,在纸带上留下一行点迹。

    03

    简单比较

    因为电磁式打点计时器的撞针在和纸带撞击的时候产生接触,有不小的阻力。电火花计时器工作时,纸带受到的阻力相对较小。

    当然,在高中阶段,电磁打点计时器和电火花计时器在实验中的作用是一样的,统称打点计时器,除非特别说明,一般情况两种计时器并不做区分。

    04

    使用方法

    打点计时器在高中阶段的使用非常广泛,一大半的力学实验都要用到打点计时器。

    基本功能:计时

    很简单,由于打点的频率为50赫兹,所以,每相邻两个点之间的间隔为0.02秒,记为T。任意两个点之间的时间根据间隔点数来计算,有n段间隔,时间就是nT。

    基本功能:记录位移

    纸带上记录了每个点的位置信息,如果想要知道任意两个点之间的距离,直接拿尺子测量即可。

    高级功能:计算速度

    注意,打点计时器本质上是计算某段时间内的平均速度

    b4a662842dc57e6f4731415aa369a5f2.png

    如图所示,随意取5个点,4个间隔。x1x2x3x4可以用直尺测量。

    要想求任意一段,比如点1点3的平均速度,只需要用点1点3的距离(x1+x2),除以点1点3的时间(2T=0.04s):

    43b85d4611a4133b9cb9da744bfe9d74.png

    v上方带一个横线,读作“拔”,表示是平均速度。

    高级功能:计算加速度

    如果运动是匀变速直线运动,打点计时器还可以测量加速度。

    根据加速的定义:

    cdc38bf4763d17b470daeb7a6b52ca24.png

    只需要计算出任意两个点的瞬时速度就可以计算加速度了。

    那么,我们先计算物体经过点2 的瞬时速度:

    回忆知识:匀变速直线运动某段时间(t1到t2)内的平均速度,等于,中点时刻(t1+t2)/2的瞬时速度。

    由于点2 正好是点1点3 的时间中点,所以点1点3 的平均速度就是点2 的瞬时速度。

    即:

    35dea8166bcd83a816c63a214fb7d503.png

    同理,求出点3的瞬时速度:

    2af85438d661b037e3b4a5f811469f74.png

    所以,加速度计算如下:

    7b54216f33dbaa1f6af383e217e1ff80.png

    更一般的,有公式:

    a87c26a840676287bccdf4dbabb07181.png

    05

    结语

    打点计时器在高中物理的应用还有很多,作者会在之后的文章中一一介绍。

    包括上面介绍的“使用打点计时器计算匀变速直线运动加速度”的具体推导过程在内的其他内容,请点击关注,浏览作者其他相关文章。

    f81a0b52de1be029d98eebf967f4e5bf.png
    d27e4aafb15ba67ab12912d5b7d1735d.png

    原创不易,关注不难!你的点赞,我的动力!——欢迎来到苏格爸的奇妙物理世界!

    展开全文
  • 延时器和计时器

    2020-03-08 16:08:15
    延时器和计时器延时器计时器3.判断某一天是星期几 延时器 setTimeout(回调函数,毫秒数) 功能:延迟指定的毫秒数,只执行一次回调函数 清除延时器:clearTimeout(延时器的返回值) <script type="text/javascript...

    延时器

    setTimeout(回调函数,毫秒数)
    功能:延迟指定的毫秒数,只执行一次回调函数
    清除延时器:clearTimeout(延时器的返回值)

    <script type="text/javascript">
    	setTimeout(function(){
    	    console.log(1s后);
    	},1000)
    </script>
    

    计时器

    setInterval(回调函数,毫秒数)
    功能:每隔指定的毫秒数,执行一次回调函数
    清除计时器:clearInterval(计时器的返回值)

    //body
    <div id="box">10</div>
    
    //js
    <script type="text/javascript">
    	var num = document.getElementById("box")
    	var n = num.innerHTML;
    	var t;
    	t = setInterval(function(){
    	  if(n<=5){
    	    clearInterval(t)
    	  }else{
    	    n --;
    	    num.innerHTML=n;
    	  }
    	},1000) 
    </script>
    

    案例

    1.倒计时功能,点击开始,开始后可随时按暂停,数字到0后会自动重置

    <!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>
        #box{width:200px;height:200px;border: solid 1px black;margin: 30px auto;font:80px/200px "";text-align: center}
        #btn{display: block;margin: 0 auto;width: 100px;height:40px;}
      </style>
    </head>
    <body>
      <div id="box">10</div>
        <input type="button" value="开始" id="btn">
      </body>
    <script>
    
    // 1.获取元素
    var box = document.getElementById("box")
    var btn = document.getElementById("btn")
    
    // 用来保存计时器的返回值,用作将来清除用
    var t1;
    
    // 2.获取两次初始值:n用作运算,num用作重置
    var n = box.innerHTML;
    var num = box.innerHTML;
    
    // 点击按钮的状态:true表示开始,false表示暂停,到0自动重置
    var count = true;
    
    // 3.点击事件
    btn.onclick = function(){
      // 4.判断状态,决定执行什么功能,初始状态是true,表示开始功能
      if(count){
          // 开始1.清除上一次计时器
          clearInterval(t1)
          // 开始2.开启计时器
          t1 = setInterval(function(){
              // 开始3.判断数字是否到终点
              if(n <= 0){
                  // 到终点要清除计时器
                  clearInterval(t1);
                  
                  // 判断状态是否为重置
                  // 重置1.重置按钮文字
                  btn.value = "开始2";
                  // 重置2.重置显示的数字
                  box.innerHTML = num;
                  // 重置3.重置计算的数字
                  n = num;
                  // 重置4.重置按钮的状态为初始的开始状态
                  count = true;
              }else{
                  // 没有到终点,正常减1
                  n--;
                  // 设置显示数字
                  box.innerHTML = n;
              }
          },1000)
          // 正常点击开始之后,下次的功能应该是暂停,所以修改按钮的显示文字为重置
          btn.value = "暂停";
          // 修改按钮的下次点击状态为false,表示暂停
          count = false;
    
      }else if(count == false){       //5.判断状态是否为暂停
          // 暂停1.清除计时器
          clearInterval(t1)
          // 暂停2.设置下次按钮的文字为继续
          btn.value = "继续";
          // 暂停3.设置按钮的下次被点击的状态为true,表示开始
          count = true;
      }
    }
    </script>
    </html>
    

    2.倒计时功能,与上面例子差不多,不同的是需要手动重置

    <!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>
        #box{width:200px;height:200px;border: solid 1px black;margin: 30px auto;font:80px/200px "";text-align: center}
        #btn{display: block;margin: 0 auto;width: 100px;height:40px;}
      </style>
    </head>
    <body>
      <div id="box">10</div>
        <input type="button" value="开始" id="btn">
      </body>
    <script>
    
    
    // 1.获取元素
    var box = document.getElementById("box")
    var btn = document.getElementById("btn")
    
    // 用来保存计时器的返回值,用作将来清除用
    var t1;
    
    // 2.获取两次初始值:n用作运算,num用作重置
    var n = box.innerHTML;
    var num = box.innerHTML;
    
    // 点击按钮的状态:0表示开始,1表示暂停,2表示重置
    var count = 0;
    
    // 3.点击事件
    btn.onclick = function(){
      // 4.判断状态,决定执行什么功能,初始状态是0,表示开始功能
      if(count == 0){
          // 开始1.清除上一次计时器
          clearInterval(t1)
          // 开始2.开启计时器
          t1 = setInterval(function(){
              // 开始3.判断数字是否到终点
              if(n <= 1){
                  // 到终点要清除计时器
                  clearInterval(t1);
                  // 设置显示数字为0
                  box.innerHTML = 0;
                  // 修改按钮的显示文件
                  btn.value = "重置";
                  // 修改按钮的下次点击状态为2,因为已经结束了,所以下次状态是:重置
                  count = 2;
              }else{
                  // 没有到终点,正常减1
                  n--;
                  // 设置显示数字
                  box.innerHTML = n;
              }
          },1000)
          // 正常点击开始之后,下次的功能应该是暂停,所以修改按钮的显示文字为重置
          btn.value = "暂停";
          // 修改按钮的下次点击状态为1,表示暂停
          count = 1;
    
      }else if(count == 1){       //5.判断状态是否为暂停
          // 暂停1.清除计时器
          clearInterval(t1)
          // 暂停2.设置下次按钮的文字为继续
          btn.value = "继续";
          // 暂停3.设置按钮的下次被点击的状态为0,表示开始
          count = 0;
    
      }else if(count == 2){       //6.判断状态是否为重置
          // 重置1.重置按钮文字
          btn.value = "开始2";
          // 重置2.重置显示的数字
          box.innerHTML = num;
          // 重置3.重置计算的数字
          n = num;
          // 重置4.重置按钮的状态为初始的开始状态
          count = 0;
      }
    }
    </script>
    </html>
    

    3.抽奖系统

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>抽奖系统</title>
        <style type="text/css">
            #cont{font:60px/200px "";text-align: center;height: 200px;}
            #btn{width:200px;height: 60px;font-size: 30px;display: block;margin: 20px auto;}
        </style>
    </head>
    <body>
      <div id="cont">请点击开始按钮,开始抽奖</div>
      <input type="button" name="btn" id="btn" value="开始" />
    </body>
    <script>
    //目标:实现抽奖系统
     //准备:给button标签绑定onclick事件
     var btnObj = document.getElementById('btn');
     var conObj = document.getElementById('cont');
     // 定时器返回值
     var times;
     // 设一个状态值
     var btnStatus=true;
         btnObj.onclick=function(){
        // 判断是否是第一次点击
        if(btnStatus){  // 点击开始
           //  console.log(111);
            // 1 准备班级学生姓名字符串
          var str = "张三,李四,王五,小明,小红,小雪";
             // 2 分割字符串为数组
          var studentArr = str.split(',');
            // console.log(studentArr);
             // 3 生成随机数,当做索引,获取一个数组元素
             // 获取数组长度
             var len = studentArr.length;
           // 4 使用定时器,多次生成随机数,获取人员姓名,并且追加到页面中
             times = setInterval(function(){
                       // 直接取整
                   var num = parseInt(Math.random()*len);
                   var studentName = studentArr[num];
                   //console.log(studentName);
                   // 5 将人员姓名追加到页面中
                   conObj.innerHTML = studentName;
             },100);
             // 更改开始按钮的字
             btnObj.value='就你了'
             // 修改点击的状态
             btnStatus = false;
           }else{  // 第二次点击,停止定时器
                 // 清除定时器
                 clearInterval(times);
                 // 修改点击的状态
                 btnStatus = true;
                 // 更换按钮的字
                 btnObj.value='再次抽奖'
           }
         }
    </script>
    </html>
    

    4.右下角的倒计时小广告

    //css
     #box{width: 200px;height: 250px;border:1px solid #000;position: fixed;right: 0;bottom: 0;}
     #close{width: 35px;height: 25px;font: 12px/2 "";color: gray;position: absolute;left: 0;top: 0;text-align: center;background-color: white;border: none;outline: none;}
     #adv{font: 12px/2 "";color: #fff;position:absolute;right: 0;top: 0;background: rgba(115, 115, 115);padding: 0 10px;}
     
     //body
    <div id="box">
      <input type="button" value="X" id="close">
      <span id="adv">广告还有<b id="num">10</b></span>
    </div> 
      
    
    <script type="text/javascript">
    	window.onload=function(){
    		var box = document.getElementById("box");
    		var num = document.getElementById("num");
    		var close = document.getElementById("close");
    		
    		var t;
    		var n=num.innerHTML;
    		
    		close.onclick = function(){
    		 // 重新定向网址,流氓软件做法
             // location.href = 'www.baidu.com';
    		  box.style.display = "none"
    		}
    		
    		t = setInterval(function(){
    		  if(n<=1){
    		    box.style.display = "none"
    		  }else{
    		    n--;
    		    num.innerHTML = n;
    		  }
    		  },1000)
    	}
    </script>
    
    展开全文
  •  如果程序在整个运行过程中需要一个计时器,在 WinMain 函数中或处理 WM_CREATE 消息时,调用 SetTimer 函数:在离开 WinMain 函数时或是处理 WM_DESTROY 消息时,调用 KillTimer 函数。基于调用 SetTimer 参数的...
  • 计时器可以提供运行基于时间的工作任务的功能,在计时器的管理下,特定的任务可在某一时间运行一次,也可以按指定的时间间隔反复运行。在众多厂商提供的计时器中应用得比较的有以下三种: java.util.Timer ...
  • 这个应用程式是Pomodoro计时器,可以将您的注意力集中到短时间,通常最多25分钟,而中间只有5分钟的休息时间,可以帮助您提高工作效率。 在两到三个番茄后,通常的做法是先休息10-15分钟,然后再开始一系列新番茄。...
  • 线程这个令人生畏的“洪水猛兽”,很多人谈起线程都心存畏惧。在Android开发过程中,线程真的很难吗?线程程序的“麻烦”源于它很抽象、与单线程程序运行模式不同,但只要掌握了它们的... 线程案例——计时
  • 微信小程序使用 setInterval 制作计时器后台延迟问题 之前参加2020年微信小程序应用开发大赛的时候写了一个用于校园足球的微信小程序——踢在浙大。 在小程序的设计过程中出现了一个裁判工具的功能,简单地说就是...
  • 本地计时器能以短得的作业处理时间间隔处理作业。由于群集有持久性要求,因此作业调度程序不能如此精确地处理作业。另一方面,作业调度程序更适合于在即使创建任务的初始服务器出现故障的情况下也必须执行的任务。...
  • python3 做一个计时器和点名软件

    千次阅读 2018-07-15 22:42:42
    说了开始了 写的比较累赘,主要是打算给和我一样的萌新看的。 首先我们要一个UI # 包含一个tk的模块,画UI需要用到 import tkinter as tk # 创建一个应用类,继承了基础的tkinter,也就可以用到一些预先...
  • 几乎充满了系统盘的剩余空间,而且还在不断膨胀,有的日志文件大小超过了2G,明显这很不正常,我打开这个超大的日志文件发现很相同的错误信息,是计时器作业的其中一个。 错误信息如下: 01/08/2009 10:34:...
  • •NE555计时器 •过滤器 •电抗 •线电阻率 •变压器比例 •电池寿命计算器 •模拟-数字转换器 •频率计算器 金融 • 货币换算 •增值税/税金计算器 •小费计算器 普通转换器 •数字 • 罗马数字 •前缀 •角度 •...
  • 数字逻辑 课程设计 多功能电子钟 Quartus II

    万次阅读 多人点赞 2014-09-27 15:00:31
    设计方案 1.系统功能描述 (1) 系统输入:系统状态及校时、定时转换的控制信号为k、set;...(3) 多功能数字钟控制器的状态图如图所示 图中:S0:显示计时器时间 T0:显示闹铃时间  S1:调计
  •  * (该倒计时器主要是用在比如考试系统倒计时上面!)。  * @author dukangcheng  *  */ public class CountDown{ private JLabel label;  public static void main(String[]args){   ...
  • 2012高考倒计时软件

    2012-02-12 12:03:41
    计时器参数】 标题=高考倒计时 内容=2012年高考 班级=河北武邑中学 0905班 时间=2012/6/7 08:00:00 徽标= 显示日期和时间=是 显示节日和节气=是 显示生肖图标=是 显示励志标语=是 励志语时间间隔=30 显示精确倒...
  • 此资源为单片机实训报告,有很技术,为计算机系的学生带来不少方便
  • UWB跑步计时系统

    2020-10-09 11:08:47
     基于此,采用UWB技术的学生体能训练考核系统解决了1000米、800米、200米、100米、50米跑步科目的多人同时训练、计圈、考核计时、计数的难题。 当训练考核人员携带的运动计时芯片标签在跑步时,UWB定位基站将接收到...
  • 一款专为小伙伴打造的手机时间规划工具,为小伙伴提供更强大的规划服务,在这里小伙伴可以自由规划自己的时间,为小伙伴提供更的时间管理功能,支持待办提醒,日程备忘等等,还为小伙伴提供计时的服务,非常方便!...
  • 在台灯普通照明功能的基础上,我们设计了一种更加自动化、智能化、人性化的台灯。使台灯能够更加贴心,更能懂人所想。 在设计中融合了微波雷达、光照强度等一些传感器,让台灯的使用变得更加便捷、有趣,同时产品的...
  • 一个称作时钟的计时器准确地发出定时电信号,该信号为处理器工作提供有规律的脉冲。测量计算机速度的术语引自电子工程领域,称作兆赫(MHz),兆赫意指每秒百万个周期。例如:普通时钟每秒一个滴答,而在8MHz的处理器...
  • Python+tkinter动态创建与销毁组件小案例 Python实现屏幕取色器功能 Python编写抽奖式随机提问程序 Python使用tkinter编写图片浏览程序 Python实现倒计时按钮 Python使用tkinter的Treeview组件实现表格功能 详解...
  • 《百度AI人脸识别与检测》专栏为项目专栏,从零到一,从无到有开发一个学生人脸识别签到系统;主要用到的技术有百度开放平台中的人脸检测、人脸识别、Python图形界面开发PyQt5、线程的管理、以及通过python调用百度...
  • Android开发中的线程编程技术 ... 【IT168技术】线程这个令人生畏的“洪水猛兽”,很多人谈起线程都心存畏惧。在Android开发过程中,线程真的... 线程案例——计时器  我在给我的学生线程的
  • 学生学籍管理系统

    千次阅读 2020-03-04 16:44:09
    最近觉得得把自己学习到东西,给写出来,分享给大家。...我们小组设计的学籍管理系统,不仅可以对学生的基本信息进行查询管理,管理员还可以对系统的基础数据进行管理,对学籍信息进行维护等功能。...
  • IT学生解惑真经

    千次阅读 2013-07-02 09:52:52
    IT学生有几百万都在为如何如何学习才能找到工作、融入社会而迷惑我们需要的不是灵丹妙药而是一本让你少走几年弯路的IT学生解惑真经肖舸杨中科左飞著这是一部写给在校计算机专业学生的书如果没有看到这本书你可能会...
  • 讲授性-7(需要老师比较的讲解,学生听讲理解、接受) 启发性-3(使用了2次关键的选择题,1次关键的问答题) 故事背景: 小熊想要编程做一个倒计时,但他现在编程水平还不太高,那就先做一个最简单的...
  • 学生选课系统的QPS其实远远不及秒杀系统,毕竟一个学校最多也就同时几千个人选课,因此在架构上可以不用设计的太麻烦,只要能抗住高并发,让学生都有操作空间就可。但本文想抛开现实,按照秒杀系统来好好设计一下...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,921
精华内容 1,568
关键字:

学生多功能计时器