練習寫C++代碼(11)--實現簡單的時鐘類3

對減法進行修改,假定兩個時間相減只是爲了知道他們的時間差,用於定時。

定義一個People來使用Clock類,方法是顯示當前時間,設置鬧鐘,察看時間提示。


#include 
#include 
#include 
using namespace std;

///define class Clock
class Clock
{
public:
	Clock();
	Clock(int, int);
	~Clock();
	
	///test valid
	bool test();
        bool test(int h, int m);
	///show the time
	void showTime();
	///give a prompt
	void prompt();
	///create object use ctor
	Clock createObject();
	
	friend class People;
	///overload operator
	friend Clock operator+(const Clock& c1, const Clock& c2);
	friend Clock operator-(const Clock& c1, const Clock& c2);
	friend ostream &operator<<(ostream &os, Clock &c);

private:
	int hour;
	int minutes;	
};
///ctor
Clock::Clock()
{

}

Clock::Clock(int h, int m)
{
	hour = h;
	minutes = m;
}

Clock::~Clock()
{

}
///test valid
bool Clock::test()
{
	if (hour > 23 || hour < 0 || minutes > 59 || minutes < 0)
		return false;

	return true;
}

bool test(int h, int m)
{
	if (h > 23 || h < 0 || m > 59 || m < 0)
		return false;

	return true;
}
///show time
void Clock::showTime()
{
	cout<<"The time is:"<= t2)
		temp = t1 - t2;
	else
		temp = t1 + 24 * 60 -t2;

	return Clock(temp / 60, temp % 60);
}


ostream &operator<<(ostream &os, Clock &c)
{
	os<>h>>m;
	while (!test(h,m))
	{
		cout<<"Error input."<>h>>m;
	}
	return Clock(h,m);

}

class People
{
public:
	///ctor
	People();
	People(int, int);
	~People();

	///look the current time
	void lookTime();
	///set a time for meetting
	void setMeetingTime(int h, int m);
	///ask how long to meeting
	Clock howLong();

private:
	///current time
	Clock time;
	///meeting time
	Clock timing;
};

People::People()
{
	time.hour = time.minutes = timing.hour = timing.minutes = 0;
}
People::People(int h, int m)
{
	time.hour = h;
	time.minutes = m;
	timing.hour = timing.minutes = 0;
}

People::~People()
{

}

///look the current time
void People::lookTime()
{
	time.showTime();
}

///set a time for meetting
void People::setMeetingTime(int h, int m)
{
	timing.hour = h;
	timing.minutes = m;
}

///ask how long to meeting
Clock People::howLong()
{
	return (timing - time);
}

int main()
{
	///create a random
	srand((int)time(0));
	int num = rand() % (24 * 60);

	People people(num / 60, num % 60);
	people.lookTime();
	cout<<"Please enter your meeting time(two integers):";
	int h, m;
	cin>>h>>m;
	people.setMeetingTime(h, m);
	Clock c = people.howLong();
	cout<<"There are "<



接下來的改進:
1.寫在一個文件中比較冗餘,最好分開寫。
2.一些方法的增加和刪除,使代碼更加簡潔。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章