【C++】如何用C++做一个计时器?(较简单版)

前言

       朋友们,期末考完了,我回来了,但我好像没什么灵感,加上最近感冒,我这几天是发的以前发在b站的代码或比较简单的代码,请见谅。

        废话不多说,我们进入教程

        注:本教程基于Windows系统,Linux无法运行

教程

第一步 定义时间变量、输入变量和判断

        首先,定义分钟、秒的变量,然后输入变量,另外还得加一段判断,直到输入正确范围内的分钟和秒才计时开始(我这里分钟、秒的值的范围设的是0~59,判断用的goto,你们可以设不同的值,判断可以用bool变量和while语句)。

具体程序:

    int min=0,s=0;
    f:
    cout<<"输入分钟数、秒数:";
    cin>>min>>s;
    if(min<0||min>59){               //分钟数和秒数的判断 
        cout<<"\n\n\n分钟输入错误...\n\n\n";
        goto f;
    }
    if(s<0||s>59){
        cout<<"\n\n\n秒输入错误...\n\n\n";
        goto f;
    }
    cout<<"计时开始!";        //计时开始提示
    Sleep(500);
    system("cls"); 

注:程序中的Sleep和system需调用Windows系统特有的头文件<windows.h>

第二步 计时开始与结束

每隔一秒,即Sleep(1000)之后,秒数减1,当秒数为0时,如果分钟数大于0,分钟数减1,然后秒数增加59;当分钟、秒均为0时,计时结束,做出提示。

如果想使程序更美观,可以每隔一秒清屏一次,即system("cls"),再输出剩余分针数和秒数。(大家应该都知道system的使用,感觉这句提醒好像没什么用

具体程序:

    while(!(min==0&&s==0)){   //倒计时部分程序 
        printf("\n\n\n    剩余时间:%02d:%02d",min,s);
        Sleep(1000);    //每隔一秒减少剩余时间 
        if(s>0) s--;    //倒计时秒数判断,若秒数小于0,减少分钟数 
        else{
            s+=59;
            min--;
        }
        system("cls");       //windows.h的清屏指令,纯纯的让程序更好看 
    }
    cout<<"\n\n\n    计时结束!";   //计时结束的提示 

第三步 计时器的其他优化

1.看不见但听得见的转义字符'\a'

C++有一个转义字符'\a',能够发出声音,所以计时结束的时候,可以让程序再输出几次'\a',这样计时结束时,我们听到声音就可以知道计时结束。(或者直接在计时的过程中让程序输出'\a'

2.变颜色的system("color")(感觉这个也是大家都知道

通过 system("color MN") 来设置自己想要的字体颜色,有条件的话还可以试试做出计时过程中让程序不断变色

其中,这里的M是背景颜色,N是字体颜色,用16进制表示

黑=0,蓝=1,绿=2,浅绿=3,红=4,紫=5,黄=6,白=7

灰=8,淡蓝=9,淡绿=A,淡浅绿=B,淡红=C,淡紫=D,淡黄=E,亮白=F

全部程序

#include<bits/stdc++.h>
#include<windows.h>
using namespace std;
int main(){
    int min=0,s=0;
    f:
    cout<<"输入分钟数、秒数:";
    cin>>min>>s;
    if(min<0||min>59){               //分钟数和秒数的判断 
        cout<<"\n\n\n分钟输入错误...\n\n\n";
        goto f;
    }
    if(s<0||s>59){
        cout<<"\n\n\n秒输入错误...\n\n\n";
        goto f;
    }
    cout<<"计时开始!";        //计时开始提示
    Sleep(500);
    system("cls"); 
    while(!(min==0&&s==0)){   //倒计时部分程序 
        printf("\n\n\n    剩余时间:%02d:%02d",min,s);
        Sleep(1000);    //每隔一秒减少剩余时间 
        if(s>0) s--;    //倒计时秒数判断,若秒数小于0,减少分钟数 
        else{
            s+=59;
            min--;
        }
        system("cls");       //windows.h的清屏指令,纯纯的让程序更好看 
    }
    cout<<"\n\n\n    计时结束!";   //计时结束的提示 
    for(int i=1;i<=5;++i){
        cout<<"\a";Sleep(100);
    }
    return 0;
}

结束语

这段程序较简单,请见谅,但还是希望这段程序对大家有帮助,谢谢大家!

  • 34
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值