天天看點

c++對象學習之-時間類0

程式的頭檔案Time.h

#ifndef TIME_H_
#define TIME_H_

class Time
{
public:
	Time();
	Time(int h, int m = 0);
	void add_hour(int h);
	void add_minute(int m);
	void reset(int h = 0, int m = 0);
	Time operator+ (const Time & t) const;
	void display() const;
private:
	int hours;
	int minutes;
};

#endif
           

類方法實作檔案Time.cpp

#include <iostream>
#include "Time.h"

using namespace std;

Time::Time()
{
	hours = minutes = 0;
}

Time::Time(int h, int m)
{
	hours = h;
	minutes = m;
}

void Time::add_hour(int h)
{
	hours += h;
}

void Time::add_minute(int m)
{
	minutes += m;
	// hours += minutes / 60;
	add_hour(minutes / 60);
	minutes %= minutes % 60;
}

void Time::reset(int h, int m)
{
	hours = h;
	minutes = m;
}

Time Time::operator+ (const Time & t) const
{
	Time sum;
	sum.minutes = minutes + t.minutes;
	sum.hours = hours + t.hours + sum.minutes / 60;
	sum.minutes %= 60;
	return sum;
}

void Time::display() const
{
	cout << hours << " hours " << minutes << " minutes";
}
           

程式的主程式main.cpp

#include <iostream>
#include "Time.h"

using namespace std;

int main()
{
	Time p;
	Time rest(2, 40);
	Time work(5, 55);
	Time total;

	cout << "計劃時間是: ";
	p.display();
	cout << endl;

	cout << "休息時間是: ";
	rest.display();
	cout << endl;

	cout << "工作時間是: ";
	work.display();
	cout << endl;

	total = rest + work;
	cout << "總的時間是: ";
	total.display();
	cout << endl;

	Time morerest(3, 28);
	cout << "更多的休息時間是: ";
	morerest.display();
	cout << endl;

	total = morerest.operator+(total);
	cout << "又是總的時間: ";
	total.display();
	cout << endl;

	return 0;
}
           
c++對象學習之-時間類0

繼續閱讀