第五週專案3-時間類(2)
阿新 • • 發佈:2019-01-27
問題及程式碼:
/* *Copyright (c) 2016,煙臺大學計算機學院 *All rights reserved. *檔名稱:zwj.cpp *作 者:張偉晶 *完成日期:2016年3月27日 *版 本 號:v1.0 * *問題描述:原類為一個時間類,輸入合法的時間後就會輸出,在原類的基礎上,在類內增加下列成員函式:add_seconds,add_minutes,add_hours *輸入描述:合法的時間 *程式輸出:時,分,秒都增加n之後輸出,注意考慮秒數,分鐘數大於60的情況和小時數大於24的情況。 */ #include<iostream> using namespace std; class time { public: void set_time(); void add_seconds(int s); void add_minutes(int m); void add_hours(int h); void show_time(); private: bool is_time(int ,int ,int); int hour; int minute; int sec; }; void time::add_seconds(int s) { sec+=s; if(sec>=60) { minute++; sec=sec-60; } } void time::add_minutes(int m) { minute+=m; { if(minute>=60) { hour++; minute=minute-60; } } } void time::add_hours(int h) { hour+=h; 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<<hour<<":"<<minute<<":"<<sec<<endl; } bool time::is_time(int h,int m,int s) { if(h<0||h>24||m>60||m<0||s<0||s>60) return false; return true; } int main() { int h,m,s; time t1; t1.set_time(); t1.show_time(); cout<<"please input add_h,m,s:"; cin>>h>>m>>s; t1.add_hours(h); t1.add_minutes(m); t1.add_seconds(s); t1.show_time(); return 0; }
執行結果:
知識點總結:
成員函式
學習心得:
不熟練,繼續練習;