前言
朋友们,期末考完了,我回来了,但我好像没什么灵感,加上最近感冒,我这几天是发的以前发在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;
}
结束语
这段程序较简单,请见谅,但还是希望这段程序对大家有帮助,谢谢大家!