第三题:(和第十章的相似)
第四题:
Time.h
class Time
{
public:
void Set(int hours,int minutes,int seconds);
void Increament();
void Write() const;
bool Equal( Time otherTime) const;
bool LessThan( Time otherTime) const;
Time();
Time(int initHrs, int initMins, int initSecs);
private:
int hrs;
int mins;
int secs;
};
Q4.cpp (main.cpp)
#include<iostream>
#include"Time.h"
using namespace std;
int main()
{
Time time1(5,10,30);
Time time2;
int LoopCount=0;
cout<<"time1 ";
time1.Write();
cout<<"time2 ";
time2.Write();
cout<<endl;
if(time1.Equal(time2))
cout<<"Equal "<<endl;
else
cout<<"Not Equal "<<endl;
time2=time1;
cout<<"time1 ";
time1.Write();
cout<<"time2 ";
time2.Write();
cout<<endl;
if(time1.Equal(time2))
cout<<"Equal "<<endl;
else
cout<<"Not Equal "<<endl;
time2.Increament();
cout<<"New time2 ";
time2.Write();
cout<<endl;
if(time1.LessThan(time2))
cout<<"less than time2 ";
else
cout<<"not less than time2 "<<endl;
if(time2.LessThan(time1))
cout<<"less than time1 ";
else
cout<<"not less than time1 "<<endl;
time1.Set(23,59,55);
cout<<"Increamenting Time1 from 23:59:55: "<<endl;
for(LoopCount=1;LoopCount<=10;LoopCount++)
{
time1.Write();
cout<<" ";
time1.Increament();
}
cout<<endl;
cin.get();
return 0;
}
Time.cpp
#include<iostream>
#include"Time.h"
using namespace std;
void Time::Set(int hours,int minutes,int seconds)
{
hrs=hours;
mins=minutes;
secs=seconds;
}
void Time::Increament()
{
secs++;
if(secs>59)
{
secs=0;
mins++;
if(mins>59)
{
mins=0;
hrs++;
if(hrs>23)
{
hrs=0;
}
}
}
}
void Time::Write() const
{
if(hrs<10)
cout<<'0';
cout<<hrs<<": ";
if(mins<10)
cout<<'0';
cout<<mins<<": ";
if(secs<10)
cout<<'0';
cout<<secs<<endl;
}
bool Time::Equal( Time otherTime) const
{
return (hrs==otherTime.hrs && mins==otherTime.mins && secs==otherTime.secs);
}
bool Time::LessThan( Time otherTime) const{
return (hrs<otherTime.hrs || hrs==otherTime.hrs
&& mins<otherTime.mins || mins==otherTime.mins
&& secs<otherTime.secs || secs==otherTime.secs);
}
Time::Time()
{ hrs=0;
mins=0;
secs=0;
}
Time::Time(int hours,int minutes,int seconds){
hrs=hours;
mins=minutes;
secs=seconds;
}
运行结果: