C++小程式:鐘錶的C++實現

2020-08-13 20:36:50

C++小程式:鐘錶的C++實現

專案要求

設計一個小程式,讓編譯器實時輸出顯示當前的時間。

設計思路

要想用C++實現這樣的一個程式,第一步獲取時間,第二步是設計計時的方法,第三步是輸出顯示時間
我們通過庫函數<time.h>獲取實時的時間,來初始化定義的時分秒變數;下面 下麪我們設計計時方法:讓計算機每次執行程式碼語句前都停頓一秒,這樣,就可以達到計時的目的;然後就是在每次的回圈中將時間實時的顯示出來(計算機每次執行的速度很快,可以忽略每次執行所佔的時間導致的誤差)

程式碼準備

設計時鐘類

首先我們知道在一個時鐘中,必須有時針,分針,秒針,分別代表時分秒。我們在時鐘類(Clock)中定義三個私有的成員變數分別爲hour,min,sec;然後我們定義構造器,在構造器中,我們要從庫函數中獲取實時的時間,並且把用實時時間來初始化定義的變數。最後我們設計run函數來設計計時的方法。

設計主函數

主函數中的實現相對簡單,我們只需要接使用者定義好介面,完成函數呼叫就可以執行了。

程式碼展示

第一步;設計Clock類:
下面 下麪展示一些 內聯程式碼片

下屬程式碼中有幾點需要特殊說明:
time_t t=time(NULL)
struct tm ti=*localtime(&t)
這兩行程式碼我們可以得到實時的時間,再利用下面 下麪的賦值語句完成對變數時分秒的初始化
#include<iostream>
#include<time.h>
#include<iomanip>
#include<unistd.h>
using namespace std;
class Clock
{
public:
	Clock()
	{
		time_t t=time(NULL);
		struct tm ti=*localtime(&t);//struct tm *__cdecl localtime(const time_t *_Time)
		
		hour=ti.tm_hour;
		min=ti.tm_min;
		sec=ti.tm_sec;
	}
	void run()
	{
		while(1)
		{
			show();//完成顯示 
			tick();//完成數據更新 
		}
	 } 
private:
	void show()
	{
		system("cls");
		cout<<setw(2)<<setfill('0')<<hour<<":";
		cout<<setw(2)<<setfill('0')<<min<<":";
		cout<<setw(2)<<setfill('0')<<sec;
	}
	void tick()
	{
		sleep(1);
		if(++sec==60){
			sec=0;
			min++; 
			if(++min==60){
				min=0;
				hour++;
				if(++hour==24){
					hour=0;
				}
			}
		}
	}
	int hour;
	int min;
	int sec;
};

第二步設計主函數:
下面 下麪展示一些 內聯程式碼片

主函數執行相對簡單,定義好一個類物件,然後呼叫該物件的成員函數就可以執行了。
int main(){
	Clock c;
	c.run();
	system("pause");
	return 0;
}

這是我學C++寫的第一個正規的看起來逼格很高的程式,順便表達一下紀念之情。