第四周实验报告 任务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; } }