早教吧作业答案频道 -->其他-->
定义时钟clock类,满足以下要求:(1)有hour,minute,second私有成员变量。(2)定义构造函数和析构函数。(3)重载运算,实现对时间的改变,要求用类的成员函数实现。(4)重载运算符“+”
题目详情
定义时钟clock类,满足以下要求:(1)有hour,minute,second私有成员变量。(2)定义构造函数和析构函数。(3)重载运算,实现对时间的改变,要求用类的成员函数实现。(4)重载运算符“+”,函数原形为clock operator+(const clock&clock,const int second),含义为时钟加上second秒,用友元函数实现。(5)同4,加变减,用普通函数实现。急求!!
▼优质解答
答案和解析
#include
class Clock
{
public:
Clock(const int h,const int m,const int s);
~Clock();
Clock& operator ++();
Clock& operator --();
Clock friend operator+(const Clock &clock, const int second);
Clock operator-(const int s);
Clock& operator=(Clock &clock);
void Show(){printf("%02d:%02d:%02d",hour,minute,second);}
private:
int hour;
int minute;
int second;
};
Clock::Clock(const int h,const int m,const int s)
{
hour=h,minute=m,second=s;
}
Clock::~Clock()
{
}
Clock& Clock::operator ++()
{
if(++second >=60)
{
minute+=second/60;
second%=60;
hour+=minute/60;
minute%=60;
}
return *this;
}
Clock& Clock::operator --()
{
second+=59;
minute+=second/60+59;
second%=60;
--hour+=minute/60;
minute%=60;
return *this;
}
Clock operator+(const Clock &clock, const int second)
{
static Clock ck(0,0,0);
ck.second=clock.second+second;
ck.minute=clock.minute+ck.second/60;
ck.second%=60;
ck.hour=clock.hour+ck.minute/60;
ck.minute%=60;
return ck;
}
Clock Clock::operator-(const int s)
{
static Clock ck(0,0,0);
ck.second=second-s%60+60;
ck.minute=minute+ck.second/60+59-s/60%60;
ck.second%=60;
ck.hour=hour+ck.minute/60-1-s/3600;
ck.minute%=60;
return ck;
}
Clock& Clock::operator=(Clock &clock)
{
hour=clock.hour;
minute=clock.minute;
second=clock.second;
return *this;
}
int main()
{
Clock ck(1,2,3);
ck.Show();
ck--;
ck.Show();
ck++;
ck.Show();
ck=ck-500;
ck.Show();
ck=ck+500;
ck.Show();
return 0;
} 上面是错的,不要崇拜哥
class Clock
{
public:
Clock(const int h,const int m,const int s);
~Clock();
Clock& operator ++();
Clock& operator --();
Clock friend operator+(const Clock &clock, const int second);
Clock operator-(const int s);
Clock& operator=(Clock &clock);
void Show(){printf("%02d:%02d:%02d",hour,minute,second);}
private:
int hour;
int minute;
int second;
};
Clock::Clock(const int h,const int m,const int s)
{
hour=h,minute=m,second=s;
}
Clock::~Clock()
{
}
Clock& Clock::operator ++()
{
if(++second >=60)
{
minute+=second/60;
second%=60;
hour+=minute/60;
minute%=60;
}
return *this;
}
Clock& Clock::operator --()
{
second+=59;
minute+=second/60+59;
second%=60;
--hour+=minute/60;
minute%=60;
return *this;
}
Clock operator+(const Clock &clock, const int second)
{
static Clock ck(0,0,0);
ck.second=clock.second+second;
ck.minute=clock.minute+ck.second/60;
ck.second%=60;
ck.hour=clock.hour+ck.minute/60;
ck.minute%=60;
return ck;
}
Clock Clock::operator-(const int s)
{
static Clock ck(0,0,0);
ck.second=second-s%60+60;
ck.minute=minute+ck.second/60+59-s/60%60;
ck.second%=60;
ck.hour=hour+ck.minute/60-1-s/3600;
ck.minute%=60;
return ck;
}
Clock& Clock::operator=(Clock &clock)
{
hour=clock.hour;
minute=clock.minute;
second=clock.second;
return *this;
}
int main()
{
Clock ck(1,2,3);
ck.Show();
ck--;
ck.Show();
ck++;
ck.Show();
ck=ck-500;
ck.Show();
ck=ck+500;
ck.Show();
return 0;
} 上面是错的,不要崇拜哥
看了 定义时钟clock类,满足以...的网友还看了以下:
已知被控对象差分方程:y(k)-0.6y(k-1)=0.u(k-1)(P7.2)(1)试写出系统在k 2020-03-30 …
高等代数重根问题,麻烦老师有空看看我们知道定理”如果不可约多项式p(x)是f(x)的k重因式(k≥ 2020-06-10 …
高等代数重因式一个定理推论的证明,如果不可约多项式p(x)是f(x)的k(k≥1)重因式,那么p( 2020-06-10 …
证明题!如果a是f′′′(x)的一个k重跟,证明g(x)=(x-a)/2[f′(x)+f′(a)] 2020-06-12 …
设a是n(n>=1)次实系数多项式p(x)的k(k>=1)重根,试证明a是p'(x)的k-1重根 2020-07-31 …
高等代数重因式我们都知道这个定理:”如果不可约多项式p(x)是f(x)的k重因式(k≥1),那么它 2020-08-02 …
运算符重载假定K是一个类名,并有定义"Kk;intj;",已知K中重载了操作符(),且语句"j=k( 2020-11-01 …
英语作文重庆是一座美丽的山城,直辖10周年,我们经历了各种伟大的变化请以NewChongqingin 2020-11-12 …
英语作文重庆是一座美丽的山城,直辖10周年,我们经历了各种伟大的变化请以NewChongqingin 2020-11-14 …
动态规划问题有N个物品,都有自己的重量,将其分成k组,求这k组重量和的最大值的最小值.例如,n=3, 2020-12-31 …