(20 分) 定义一个时间类 Time,它能表示 24 小时制的时、分、秒,具体要求如下:
(1) 提供默认构造函数 Time(),将时、分、 秒都初始化成 0。
(2) 提供构造函数 Time(int h, int m, int s)。
(3) 提供成员函数 set(int h, int m, int s),功能是调整时间。
(4)能够分别获取时、分、秒信息。
(5) 提供成员函数 display(),显示时间值。
(6) 提供成员函数 equal(Time &other_time),比较是否与时间 other_time 相等。
(7) 提供成员函数 increment(),使时间增加一秒。
(8) 提供成员函数 less_than(Time &other_time),比较是否早于时间 other_time。
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点。 //《面向对象程序设计(C++)》期末考试试题(综合大作业)(原创张军(QQ:360901061)) #include "stdafx.h" #include <iostream>; using namespace std; class Time { public: // (1) 提供默认构造函数 Time(),将时、分、 秒都初始化成 0。 Time() { _h = 0; _m = 0; _s = 0; } // (2) 提供构造函数 Time(int h, int m, int s)。 Time(int h, int m, int s) { check(h, m, s); _h = h; _m = m; _s = s; } bool check(int h, int m, int s){ //判断输入值合法性 if (h<0 || h>23 || m < 0 || m >59 || s<0 || s > 59){ throw string("时间格式不合法"); } } //(3) 提供成员函数 set(int h, int m, int s),功能是调整时间。 void set(int h, int m, int s){ check(h, m, s); _h = h; _m = m; _s = s; } //(4)能够分别获取时信息。 int getH(){ return _h; } //(4)能够分别获取分信息。 int getM(){ return _m; } //(4)能够分别获取秒信息。 int getS(){ return _s; } //(5) 提供成员函数 display(),显示时间值。 void display(){ cout << _h << " 时 " << _m << " 分 " << _s << " 秒 " << endl; } //(6) 提供成员函数 equal(Time &other_time),比较是否与时间 other_time 相等。 bool equal(Time other_time){ if (_h == other_time._h && _m == other_time._m && _s == other_time._s){ return true; } else{ return false; } } //(7) 提供成员函数 increment(),使时间增加一秒。 void increment(){ _s++; if (_s == 60) { _m++; _s = 0; if (_m == 60) { _h++; _m = 0; if (_h == 24) { _h = 0; _m = 0; _s = 0; } } } } //(8) 提供成员函数 less_than(Time &other_time),比较是否早于时间 other_time。 bool less_than(Time other_time){ if (_h < other_time._h) { return true; } else if (_h == other_time._h && _m < other_time._m) { return true; } else if (_h == other_time._h && _m == other_time._m && _s < other_time._s) { return true; } else { return false; } } //表示 24 小时制的时、分、秒 private: int _h; int _m; int _s; }; int main() { //Time t; Time t(22, 59, 59); //Time t2(10, 11, 12); //t.increment(); //t.set(15, 16, 17); t.display(); //cout << t.getH() << endl; //cout << t.equal(t2) << endl; //cout << t2.less_than(t) << endl; system("pause"); return 0; }
本文为张军原创文章,转载无需和我联系,但请注明来自张军的军军小站,个人博客http://www.zhangjunbk.com