C++ 定义一个计数器类,完成倒计时的功能。

1.首先,在构造函数内进行初始化,并规定小于零则重置为零。

Counter(int h,int m,int s)
	{
		if(h<0)
		{
			hour=0;
		}
		else if(m<0)
		{
			minute=0;
		}
		else if(s<0)
		{
			second=0;
		}
		else
		{
			hour=h;
			minute=m;
			second=s;
		}
	}

2.在函数countDown()内实现倒计时的功能。

void countDown()
	{
		for( i=hour;i>=0;i--)
		{
			for( j=minute;j>=0;j--)
			{
				for( k=second;k>=0;k--)
				{     
					long temp=time(NULL);
		            while(time(NULL)==temp);
		            if(--second<=0)
		            {
		                second=59;
		                if(--minute<=0)
		                {
		                    minute=59;
		                    if(--hour<=0)
		                    {
		                   		hour=23;
 						    }
		                }
		            }
					Sleep(1000);
					system("cls");
					cout << "The remaining time is   ";
					if(i<10)
						cout << "0";
					cout << i << " : ";
				    if(j<10)						
						cout << "0";
					cout << j << " : ";						
					if(k<10)						
						cout << "0";
					cout << k << endl;						
				}
			}
		}
		system("color  f4");			
		cout<<"Time is up !!!" <<endl;
		system("pause");						
	}

3.测试程序功能。

int main()
{
	//测试计数器类 
	system("color  f1");
	int hour_;
	int minute_;
	int second_;
	cout << "Please enter the time ! " << endl;
	cout << "hour : "  <<endl;
	cin >> hour_;
	cout << "minute : "<<endl;
	cin >> minute_;
	cout << "second : "<<endl;
	cin >> second_;
	cout << endl;
	Counter text1(hour_,minute_,second_);
	text1.countDown();
    return 0;
}

完整代码如下:

#include<iostream>
#include<cstdlib>
#include<windows.h>
#include<cstring>
#include<ctime>
#include<math.h>
using namespace std;
//计数器类
class Counter
{
public:
	Counter(int h,int m,int s)
	{
		if(h<0)
		{
			hour=0;
		}
		else if(m<0)
		{
			minute=0;
		}
		else if(s<0)
		{
			second=0;
		}
		else
		{
			hour=h;
			minute=m;
			second=s;
		}
	}
	void countDown()
	{
		for( i=hour;i>=0;i--)
		{
			for( j=minute;j>=0;j--)
			{
				for( k=second;k>=0;k--)
				{     
					long temp=time(NULL);
		            while(time(NULL)==temp);
		            if(--second<=0)
		            {
		                second=59;
		                if(--minute<=0)
		                {
		                    minute=59;
		                    if(--hour<=0)
		                    {
		                   		hour=23;
 						    }
		                }
		            }
					Sleep(1000);
					system("cls");
					cout << "The remaining time is   ";
					if(i<10)
						cout << "0";
					cout << i << " : ";
				    if(j<10)						
						cout << "0";
					cout << j << " : ";						
					if(k<10)						
						cout << "0";
					cout << k << endl;						
				}
			}
		}
		system("color  f4");			
		cout<<"Time is up !!!" <<endl;
		system("pause");						
	}
	
private:
	int hour;
	int minute;
	int second;
	int i,j,k;
		
};
int main()
{
	//测试计数器类 
	system("color  f1");
	int hour_;
	int minute_;
	int second_;
	cout << "Please enter the time ! " << endl;
	cout << "hour : "  <<endl;
	cin >> hour_;
	cout << "minute : "<<endl;
	cin >> minute_;
	cout << "second : "<<endl;
	cin >> second_;
	cout << endl;
	Counter text1(hour_,minute_,second_);
	text1.countDown();
    return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是一个简单的ESP8266倒计时代码,使用Arduino IDE编写: ```C++ #include <ESP8266WiFi.h> #include <Ticker.h> // 定义倒计时时间(以毫秒为单位) const unsigned long countDownTime = 10000; // 定义GPIO引脚 const int ledPin = 2; // 创建Ticker对象,用于定时执行任务 Ticker ticker; // 声明计数器变量 volatile unsigned long counter = 0; // 声明计时器是否完成的标志变量 volatile bool isCountDownComplete = false; void setup() { // 初始化串口 Serial.begin(9600); // 初始化LED引脚 pinMode(ledPin, OUTPUT); // 启动Ticker对象,每秒钟执行一次countDown函数 ticker.attach(1, countDown); } void loop() { if (isCountDownComplete) { // 如果倒计时完成,闪烁LED灯3次 for (int i = 0; i < 3; i++) { digitalWrite(ledPin, HIGH); delay(200); digitalWrite(ledPin, LOW); delay(200); } // 重置计数器和计时器完成标志 counter = 0; isCountDownComplete = false; } } void countDown() { // 将计数器加1 counter++; // 如果计数器达到设定时间,停止计时器并设置计时器完成标志 if (counter >= countDownTime) { ticker.detach(); isCountDownComplete = true; } } ``` 该代码使用了ESP8266的Ticker库,每秒钟执行一次countDown函数。在countDown函数中,计数器变量counter递增,如果计数器达到设定时间countDownTime,就停止计时器并设置计时器完成标志isCountDownComplete为true。在loop函数中,如果计时器完成标志为true,就闪烁LED灯3次,并重置计数器和计时器完成标志。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值