第三周实验报告(任务3)

来源:互联网 发布:分布估计算法代码 编辑:程序博客网 时间:2024/09/21 09:05

 要求:请在原类基础上,增加下列成员函数,要求前三个设计成内置函数,在main()数中增加适当的调用以展示扩充类定义后的功能(最好能一次运行)。
add_a_sec()  //增加1秒钟
add_a_minute() //增加1分钟
add_an_hour() //增加1小时
add_seconds(int) //增加n秒钟
add_minutes(int) //增加n分钟
add_hours(int) //增加n小时
提示:要考虑增加后超出取值范围的情形

源程序:

#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;};int main(){Time t1;Time &t2 = t1;t1.set_time();cout << "现在时间:";t2.show_time();t1.add_a_sec();cout << "增加1秒后:";t2.show_time();t1.add_a_minute();cout << "增加1分后:";t2.show_time();t1.add_an_hour();cout << "增加一小时后:";t2.show_time();t1.add_seconds(125);cout << "增加125秒后:" ;t2.show_time();t1.add_minutes(75);cout << "增加75分后:";t2.show_time();t1.add_hours(32);cout << "增加32小时后:";t2.show_time();return 0;}void Time::set_time( ) {char c1, c2;cout<< "请输入时间(格式hh:mm:ss)" << endl;;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;}void Time::add_a_sec(){    ++sec;if(sec > 59)add_a_minute();}void Time::add_a_minute(){    ++minute;if(minute > 59)add_an_hour();}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 = sec % 60;                     }  }    void Time::add_minutes(int n)   {      minute+=n;      if (minute>59)          { add_hours(minute/60);minute = minute % 60;    }  }    void Time::add_hours(int n)   {      hour+=n;      if (hour>23)          hour = hour % 24;          }     


运行结果:

原创粉丝点击