| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 512 人关注过本帖
标题:有点想不出来
只看楼主 加入收藏
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
结帖率:77.78%
收藏
已结贴  问题点数:20 回复次数:4 
有点想不出来
// 定义一个时间类,包含hour,minute,second 数据成员,定义合适的构造函数对其进行初始化,并定义输出函数将其输出,
//  并对单目运算符++(前自增、后自增)进行重载,能对对象执行加一操作,完成秒数上加一的功能,如time t1(13,25,36),
//  执行t1++ ()后,其数据成员为13,25,37

#include<iostream.h>
class time
{
private:
    int hour;
    int minute;
    int second;
public:
    time();
    time(int h,int m,int s);
    time operator++();
    time operator++(int);
    friend ostream &operator<<(ostream &out,time x);
};

time::time()
{
    hour=12;
    minute=0;
    second=0;
}

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

time time::operator++()
{
    this->second++;
    if(this->second==60)
    {
        this->second=0;
        this->minute++;
    }
    return *this;
}

time time::operator++(int)
{
    time temp=*this;
    this->second++;
    if(this->second==60)
    {
        this->second=0;
        this->minute++;
    }
    return temp;
}

ostream &operator<<(ostream &out,time x)
{
    if(x.minute>=10)
    {
        if(x.second>=10)
            out<<x.hour<<":"<<x.minute<<":"<<x.second;
        else
            out<<x.hour<<":"<<x.minute<<":0<<x.second";
    }
    else
    {
        if(x.second>=10)
            out<<x.hour<<":"<<"0"<<x.minute<<":"<<x.second;   
        else
            out<<x.hour<<":"<<"0"<<x.minute<<":0<<x.second";
    }
    return out;
}


void main()
{
    time t1(13,25,59),t2;
    cout<<t1<<endl;
    t2=++t1;
    cout<<t2<<endl;
}
搜索更多相关主题的帖子: private include public friend minute 
2009-12-02 10:58
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:0 
我想输出:
当秒钟到59秒时  输出的是00  分钟加1
当分钟是59分时  输出的是00  时钟加1
当时钟是23小时59分59秒  输出的是0:00:00  
这个思想谁能帮我想想  
我想不出来   *this控制不了
2009-12-02 11:02
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:10 
以下是引用guchao2009在2009-12-2 11:02:04的发言:

我想输出:
当秒钟到59秒时  输出的是00  分钟加1
当分钟是59分时  输出的是00  时钟加1
当时钟是23小时59分59秒  输出的是0:00:00  
这个思想谁能帮我想想  
我想不出来   *this控制不了
这个59和60有区别吗?你直接把程序里面的60改成59不就可以了吗?
2009-12-02 12:59
guchao2009
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:101
专家分:106
注 册:2009-4-13
收藏
得分:0 
你没有看懂啊  
实现的是秒加1
2009-12-02 13:34
qlc00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:157
专家分:540
注 册:2007-11-26
收藏
得分:10 
if(x.minute>=10)
    {
        if(x.second>=10)
            out<<x.hour<<":"<<x.minute<<":"<<x.second;
        else
            out<<x.hour<<":"<<x.minute<<":0<<x.second";//你这个地方的引号放错了地方应该是<<":0"<<x.second;
    }
    else
    {
        if(x.second>=10)
            out<<x.hour<<":"<<"0"<<x.minute<<":"<<x.second;   
        else
            out<<x.hour<<":"<<"0"<<x.minute<<":0<<x.second";//你这个地方的引号放错了地方应该是<<":0"<<x.second;

    }

Anything is possible!
2009-12-02 15:07
快速回复:有点想不出来
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014823 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved