| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3978 人关注过本帖
标题:c++动态时钟问题 为什么不能正确显示?
只看楼主 加入收藏
润润编程
Rank: 1
来 自:广东省
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-11-2
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:4 
c++动态时钟问题 为什么不能正确显示?

#include<iostream>
#include<stdlib.h>
#include<time.h>
#include <windows.h>
#include "dos.h"
using namespace std;
class Clock      //定义一个Clock类 里面有时、分、秒
{
public:
    Clock(int a = 0, int b = 0, int c = 0)//定义Clock类构造函数
    {
        Hour = a;
        Minute = b;
        Second = c;
    }
    friend Clock operator+(Clock&t1, Clock&t2);//声明运算符+重载函数
    void ShowTime();//
private:
    int Hour;  //时
    int Minute;//分
    int Second;//秒
};
void Clock::ShowTime()//Clock类函数 输出时分秒
{
    cout << Hour << ":" << Minute << ":" << Second << endl;

}
Clock operator+(Clock &t1, Clock&t2)//定义Clock类运算符+重载函数
{
    Clock t3;
    t3.Second = t1.Second + t2.Second;
    if (t3.Second >= 60)//如果秒大于或等于60秒则结果是取除于60的余数
    {
        t3.Second = t3.Second - 60;
        t3.Minute = t1.Minute + t2.Minute + 1;
        if (t3.Minute >= 60)//如果分大于60则减去模60
        {
            t3.Minute = t3.Minute - 60;
            t3.Hour = t1.Hour + t2.Hour + 1;
        }
        if (t3.Hour >= 24)//如果时大于60则减去模24
        {
            t3.Hour = t3.Hour - 24;
        }
    }
    else//如果秒没有大于或等于60秒
    {
        t3.Minute = t1.Minute + t2.Minute;
        t3.Hour = t1.Hour + t2.Hour + 1;
        if (t3.Minute >= 60)//如果分大于60则减去模60
        {
            t3.Minute = t3.Minute - 60;
            t3.Hour = t1.Hour + t2.Hour + 1;
        }
        if (t3.Hour >= 24)//如果时大于60则减去模24
        {
            t3.Hour = t3.Hour - 24;
        }
    }
    return t3;
}
void main()
{
    Clock t1(8, 30, 6), t2(0, 0, 1), t3;//定义3个Clock类对象
    t3 = t1 + t2;
    t3.ShowTime();//输出时分秒
    Sleep(1000);
    system("cls");
        while (1)
        {
            t3 = t3 + t1;
            t3.ShowTime();//输出时分秒
            Sleep(1000);
            system("cls");
        }

    system("pause");
}
搜索更多相关主题的帖子: private include public friend 动态 
2016-05-13 08:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:20 
当你说“为什么不能正确显示?”时,你得告诉别人何谓显示正确。
比如这么问,如下代码执行时显示 9:30:7,但我希望它显示为 8:30:7
Clock t1(8, 30, 6), t2(0, 0, 1), t3;
t3 = t1 + t2;
t3.ShowTime();//输出时分秒

2016-05-13 09:17
润润编程
Rank: 1
来 自:广东省
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-11-2
收藏
得分:0 
回复 2楼 rjsp
不好意思,我的意思是 模拟一个像电脑界面的动态时钟 (自动增加时分秒)不   能显示正确就是 它不是按每秒增加地显示。而是跳动地显示

编程破防线
2016-05-13 09:59
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 3楼 润润编程
    else//如果秒没有大于或等于60秒
    {
        t3.Minute = t1.Minute + t2.Minute;
        t3.Hour = t1.Hour + t2.Hour + 1; 这里为什么要加1???

2016-05-13 12:21
林希志
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2016-3-13
收藏
得分:0 
  while (1)
        {
            t3 = t3 + t1;//打错了 应该加改成t3=t3+t2;
            t3.ShowTime();//输出时分秒
            Sleep(1000);
            system("cls");
        }
2016-05-19 23:28
快速回复:c++动态时钟问题 为什么不能正确显示?
数据加载中...
 
   



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

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