编写一个程序,定义一个时间类Time,包含三个私有成员变量: hour, minute 和 second。
成员函数包括:
1、定义带三个参数的构造函数,每个参数设置默认值为0,在函数内部判断传递实参值如果不在合法范围,也就是小时不在0~23之间,分钟和秒不在0~59之间,那就将当前值赋值为默认值0.
2、定义并实现该类的复制构造函数。
3、定义并实现print()函数输出时间。
4、定义并实现increment()函数,将当前时间减少1秒。
5、定义并实现decrement()函数,将当前时间增加1秒。
回答:
#include<iostream>
using namespace std;
class Time{
private:
int hour,minute,second;
public:
Time(int h=0,int m=0,int s=0);
Time(const Time &a){
hour=a.hour;
minute=a.minute;
second=a.second;}
void print();
void increment();
void decrement();
};
int main(){
Time time1;
Time time2(time1);
time1. print();
time1. decrement();
time1. print();
time2.print();
time2.increment();
time2.print();
return 0;
}
void Time::print(){
cout<<hour<<":"<<minute<<":"<<second<<endl;
}
void Time::increment(){
if (second>0)
{
second--;
}
else if(second==0){
if (minute>0)
{
second=59;
minute--;
}
else if(minute==0){
if (hour>0)
{
minute=59;
second=59;
hour--;
}
else if(hour==0){
minute=59;
second=59;
hour=23;
}
}
}
}
void Time::decrement(){
if (second<59)
{
second++;
}
else if(second==59){
if (minute<59)
{
second=0;
minute++;
}
else if(minute==59){
if (hour<23)
{
minute=0;
second=0;
hour++;
}
else if(hour==23){
minute=0;
second=0;
hour=0;
}
}
}
}
Time::Time(int h,int m,int s){
cin>>h>>m>>s;
hour=h;minute=m;second=s;
if(hour<0||hour>23)hour=0;
if(minute<0||minute>59)minute=0;
if(second<0||second>59)second=0;
}