PTA-c++-时钟模拟

一个Time类,数据成员有时、分、秒。要求模拟秒表,每次走一秒,满60秒进位,秒又从零开始计数。满60分进位,分又从零开始计数。输出时、分和秒的值。(使用重载++运算符实现)

时间类定义:

class MyTime

测试程序样例:

/* 请在这里填写答案 */

int main()
{
	MyTime t1,t2(23,59,59),t3;
	cin>>t3;
	++t1;
	cout<<t1<<endl;
	++t2;
	cout<<t2<<endl;
	++t3;
	cout<<t3<<endl;
	return 0;
}

输入样例:

12 35 59

输出样例:

0:0:1
0:0:0
12:36:0

我的代码:

#include <iostream>
#include <string>
using namespace std;

class MyTime
{
    int hour,minute,second;
public:
    MyTime()
    {hour=0;minute=0;second=0;}
    MyTime(int ,int ,int );
    MyTime operator++( );
    friend istream & operator >>(istream &,MyTime &);
    friend ostream & operator <<(ostream &,MyTime &);
    
};

MyTime MyTime::operator ++()
{
    second++;
    if(second==60){second=0;minute++;}
    if(minute==60){minute=0;hour++;}
    if(hour==24){hour=0;}
    return MyTime(hour,minute,second);
}

MyTime::MyTime(int h,int m,int s)
{
    hour=h;minute=m;second=s;
}

istream &operator >>(istream &is,MyTime &t)
{
    is>>t.hour;    is>>t.minute;   is>>t.second;
    return is;
}
ostream &operator <<(ostream &os,MyTime &t)
{
    os<<t.hour<<":"<<t.minute<<":"<<t.second;
    return os;
}

 注意<< >>也要重新写一个与之匹配的重载函数 

猜你喜欢

转载自blog.csdn.net/loglian/article/details/106272886