经过更改之后的代码文件如下,基本没有改动,只是分开几个文件,以及写了一个makefile。
这样只要在当前目录下输入指令 make就可以编译了。
///clock.h
#ifndef _CLOCK_H
#define _CLOCK_H
#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();
friend class People;
///overload operator
friend Clock operator-(const Clock& c1, const Clock& c2);
friend ostream& operator<<(ostream& os, const Clock& c);
private:
int hour;
int minutes;
};
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;
};
#endif
///clock.cpp
#include "clock.h"
#include
using namespace std;
///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:"<
<<"h"<
<<"m"<
= t2) temp = t1 - t2; else temp = t1 + 24 * 60 -t2; return Clock(temp / 60, temp % 60); } ostream& operator<<(ostream& os, const Clock& c) { os<
<<"h"<
<<"m"; return os; } 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); } ///main.cpp #include
#include
#include
#include"clock.h" using namespace std; 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 "<
<<" to meeting."<
下一次学习用C++进行普通文件的读写。试着学习读写压缩文件 *.zip。