設計一個小程式,讓編譯器實時輸出顯示當前的時間。
要想用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++寫的第一個正規的看起來逼格很高的程式,順便表達一下紀念之情。