第五週專案3 時間類的練習(2)
阿新 • • 發佈:2019-02-14
/* *Copyright(c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:5.4-3.2.cpp *作 者:劉金石 *完成日期:2016年3月29日 *版本 號:v1.0 *問題描述:時間類的練習,增加三個成員函式,分別給時分秒增加數值, 增加n秒後,秒數可能會超過60,調整秒數,使時間合法。同理, 增加分鐘和小時也會有類似的問題。 *輸入描述:時分秒增加的數目。 *輸出描述:輸出增加後時間。 */ #include<iostream> using namespace std; class Time { public: void set_time(); void show_time(); void add_seconds(); void add_minutes(); void add_hours(); private: bool is_time(int ,int ,int ); int hour,minute,sec; }; void Time::add_seconds() { int num,n; cout<<"請輸入增加的秒數:"<<endl; cin>>n; sec=sec+n; if(sec>60) { num=sec/60; sec=sec%60; minute=minute+num; } if(minute>60) { int num; minute=minute%60; num=minute/60; hour=hour+num; } if(hour>24) hour=hour%24; } void Time::add_minutes() { int num,n; cout<<"請輸入增加的分鐘:"<<endl; cin>>n; minute=minute+n; if(minute>60) { int num; minute=minute%60; num=minute/60; hour=hour+num; } if(hour>24) hour=hour%24; } void Time::add_hours() { int num,n; cout<<"請輸入增加的小時:"<<endl; cin>>n; hour=hour+n; if(hour>24) hour=hour%24; } void Time::set_time() { char c1,c2; cout<<"請輸入時間(格式hh:mm:ss)"; while(1) { cin>>hour>>c1>>minute>>c2>>sec; if(c1!=':'||c2!=':') cout<<"格式不正確重輸"<<endl; else if(!is_time(hour,minute,sec)) cout<<"時間非法!請重新輸入:"<<endl; else break; } } void Time::show_time() { cout<<"增加後的時間為:"<<endl; cout<<hour<<":"<<minute<<":"<<sec<<endl; } bool Time::is_time(int h,int m,int s) { if(h<0||h>24||m<0||m>60||s<0||s>60) return false; return true; } int main() { Time t1; t1.set_time(); t1.add_seconds(); t1.show_time(); t1.add_minutes(); t1.show_time(); t1.add_hours(); t1.show_time(); return 0; }
執行結果: