(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.dlhighland.cn
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

