第四周实验报告 任务2

来源:互联网 发布:域名价值在线评估 编辑:程序博客网 时间:2024/05/18 02:13
#include <iostream>   #include "mytime.h"     using namespace std;    int main( )  {      Time t1;     Time &t2=t1;      t1.set_time( );      t2.show_time( );     t1.add_seconds(3600);      t2.show_time( );        system("PAUSE"):     return 0;  }    //mytime.cpp   #include <iostream>   #include "mytime.h"     using namespace std;    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 > 23 || m < 0 || m > 59 || s < 0 || s > 59)          return false;      return true;  }         void Time::add_seconds(int s)  {      for (int i = 0; i < s; ++i)          add_a_sec();//每循环一次增加一次   }  void Time::add_minutes(int m)  {     for (int i = 0; i < m; ++i)          add_a_minute();  }  void Time::add_hours(int h)  {      for (int i = 0; i < h; ++i)         add_an_hour();  }    //mytime.h     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;  };  inline void Time::add_a_sec()  {      ++sec;     if (!is_time(hour, minute, sec))      {          sec = 0;         add_a_minute();      }  }  inline void Time::add_a_minute()  {      ++minute;       if (!is_time(hour, minute, sec))     {         minute = 0;         add_an_hour();      }  }  inline void Time::add_an_hour()  {    ++hour;      if (!is_time(hour, minute, sec))      {          hour = 0;      }  }