第三週 任務三

#include <iostream>
using namespace std;
class Time
{
public:
 void set_time( );  
 void show_time( ); 
 inline void add_a_sec();  //增加1秒鐘
 inline void add_a_minute(); //增加1分鐘
 inline void add_an_hour(); //增加1小時
 void add_seconds(int); //增加n秒鐘
 void add_minutes(int); //增加n分鐘
 void add_hours(int); //增加n小時
private:
 bool is_time(int, int, int);
 int hour;
 int minute;
 int sec;
};


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<0 ||m>60 || s<0 ||s>60)
  return false;
 return true;
}

inline void Time::add_a_sec() 
{
 ++sec;   

 if (sec>59)  

  add_a_minute(); 

inline void Time::add_a_minute() 

 ++minute;
 if (minute>59) 

  add_an_hour();
}

inline void Time::add_an_hour()

{
 ++hour;
 if (hour>23)
  hour=0;  
}
void Time::add_seconds(int n)

{
 sec+=n;  

 if (sec>59) 

 {
  add_minutes(sec/60);

  sec%=60;    

}

void Time::add_minutes(int n)

{
 minute+=n;
 if (minute>59)  

 {
  add_hours(minute/60);
  minute%=60;
 }
}

void Time::add_hours(int n)
{
 hour+=n;
 if (hour>23)
  hour%=24; 

}

<pre name="code" class="cpp">int main( )
{
 Time t1; 
 Time &t2=t1;
 t1.set_time( ); 
 cout<<"現在時間是:";
 t2.show_time( );

 t1.add_a_sec();  //增加1秒鐘
 cout<<"增加1秒鐘後:";
 t1.show_time( );

 t1.add_a_minute(); //增加1分鐘
 cout<<"增加1分鐘後:";
 t1.show_time( );

 t1.add_an_hour(); //增加1小時
 cout<<"增加1小時後:";
 t1.show_time( );

 t1.add_seconds(30); //增加30秒鐘
 cout<<"增加30秒鐘後:";
 t1.show_time( );

 t1.add_minutes(100); //增加100分鐘
 cout<<"增加100分鐘後:";
 t1.show_time( );

 t1.add_hours(5); //增加5小時
 cout<<"增加5小時後:";
 t1.show_time( );
 return 0;
}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章