代码
首先我们需要几个头文件
#include<iostream>
#include<unistd.h>
#include<stdlib.h>
#include<windows.h>
#include<cctype>
using namespace std;
然后两个函数原型
void time_up();
void time_down();
1.正计时部分代码实现
void time_up()
{
timeup_input:
system("title 计时器-正计时");
cout<<"计时即将开始。"<<endl;
sleep(0.1);
MessageBox(NULL,TEXT("计时开始。点击确定以开始正计时。"),TEXT("提示"),MB_OK|MB_ICONASTERISK);
system("cls");
for(int i=0;i>=0;i++)
{
cout<<i/60<<":"<<i%60<<endl;
sleep(0.9);//这里根据自己的系统来调节
system("cls");
}
}
知识详解
time_input:是goto命令的一个标签
MessageBox()是对话框
不会的点这里c++游戏小技巧8:MessageBox弹窗_c++messagebox-CSDN博客
2.倒计时部分代码实现
void time_down()
{
timedown_input:
system("title 计时器-倒计时");
float min;
float sec;
cout<<"请输入分钟:";
cin>>min;
if(min!=(int)min)
{
cout<<"分钟数应为整数!";
MessageBox(NULL,TEXT("分钟数应为整数!!!"),TEXT("警告"),MB_OK|MB_ICONERROR) ;
system("cls");
goto timedown_input;
}
cout<<"请输入秒数:";
cin>>sec;
if(sec!=(int)sec)
{
cout<<"秒数应为整数!";
MessageBox(NULL,TEXT("秒数应为整数!!!"),TEXT("警告"),MB_OK|MB_ICONERROR) ;
system("cls");
goto timedown_input;
}
min=(int)min;
sec=(int)sec;
int sec2;
sec2=min*60+sec;
cout<<"";
system("cls");
cout<<sec2/60<<":"<<sec2%60<<endl;
sleep(0.9);
system("cls");
while(sec2--!=0)
{
cout<<sec2/60<<":"<<sec2%60<<endl;
sleep(0.9);
system("cls");
}
cout<<"计时结束\a";
int abc=MessageBox(NULL,TEXT("计时结束"),TEXT("提示&问题"),MB_RETRYCANCEL|MB_ICONASTERISK);
if(abc==IDRETRY)
{
cout<<"";
system("cls");
goto timedown_input;
}
sleep(5000);
}
这里的知识就没有可讲的了~
3.主函数
int main()
{
system("color f0");
system("title 计时器");
system("mode con lines=30 cols=80");
cout<<"请输入1或2,1将开始正计时,2将开始倒计时,其他任意键退出:";
int a;
cin>>a;
switch(a)
{
case 1:time_up();
case 2:time_down();
default:cout<<"再见";
}
sleep(5000);
return 0;
}
这里用了一个switch语句,不会的点这里C语言/C++【switch语句详解(用法、规则、流程图、实例)】_c++ switch-CSDN博客
4.完整代码
#include<iostream>
#include<unistd.h>
#include<stdlib.h>
#include<windows.h>
#include<cctype>
using namespace std;
void time_up();
void time_down();
int main()
{
system("color f0");
system("title 计时器");
system("mode con lines=30 cols=80");
cout<<"请输入1或2,1将开始正计时,2将开始倒计时,其他任意键退出:";
int a;
cin>>a;
switch(a)
{
case 1:time_up();
case 2:time_down();
default:cout<<"再见";
}
sleep(5000);
return 0;
}
void time_up()
{
timeup_input:
system("title 计时器-正计时");
cout<<"计时即将开始。"<<endl;
sleep(0.1);
MessageBox(NULL,TEXT("计时开始。点击确定以开始正计时。"),TEXT("提示"),MB_OK|MB_ICONASTERISK);
system("cls");
for(int i=0;i>=0;i++)
{
cout<<i/60<<":"<<i%60<<endl;
sleep(0.9);
system("cls");
}
}
void time_down()
{
timedown_input:
system("title 计时器-倒计时");
float min;
float sec;
cout<<"请输入分钟:";
cin>>min;
if(min!=(int)min)
{
cout<<"分钟数应为整数!";
MessageBox(NULL,TEXT("分钟数应为整数!!!"),TEXT("警告"),MB_OK|MB_ICONERROR) ;
system("cls");
goto timedown_input;
}
cout<<"请输入秒数:";
cin>>sec;
if(sec!=(int)sec)
{
cout<<"秒数应为整数!";
MessageBox(NULL,TEXT("秒数应为整数!!!"),TEXT("警告"),MB_OK|MB_ICONERROR) ;
system("cls");
goto timedown_input;
}
min=(int)min;
sec=(int)sec;
int sec2;
sec2=min*60+sec;
cout<<"";
system("cls");
cout<<sec2/60<<":"<<sec2%60<<endl;
sleep(0.9);
system("cls");
while(sec2--!=0)
{
cout<<sec2/60<<":"<<sec2%60<<endl;
sleep(0.9);
system("cls");
}
cout<<"计时结束\a";
int abc=MessageBox(NULL,TEXT("计时结束"),TEXT("提示&问题"),MB_RETRYCANCEL|MB_ICONASTERISK);
if(abc==IDRETRY)
{
cout<<"";
system("cls");
goto timedown_input;
}
sleep(5000);
}