SDUTOJ 2711 4-2 电子时钟中的运算符重载

#include<iostream>
#include<stdio.h>
using namespace std;
class Time
{
private:
    int h, m, s;
public:
    Time();
    Time(int,int,int);
    void display();
    void tick();
    Time operator ++();
    bool operator >(Time);
};
bool Time::operator >(Time a)
{
    if(h*3600+m*60+s>a.h*3600+a.m*60+a.s)
        return true;
    else
        return false;
}
Time Time::operator ++()
{
    if(++s>=60)
    {
        s=0;
        if(m++>=60)
        {
            m=0;
            h++;
        }
    }
    return *this;
}
void Time::display()
{
    printf("%02d:%02d:%02d\n",h,m,s);
}
Time::Time()
{
    h=12;
    m=0;
    s=0;
}
Time::Time(int a,int b,int c)
{
    if(b>=60||b<0)b=0;
    if(c>=60||c<0)c=0;
    h=a;
    m=b;
    s=c;
}
int main()
{
    int a[6];
    for(int i=0;i<6;i++)
        cin>>a[i];
    Time t1(a[0],a[1],a[2]),t2(a[3],a[4],a[5]);
    if(t1>t2)
        cout<<"The begin time is not earlier than the end time!"<<endl;
    else
    {
        while(t2>t1)
        {
            t1.display();
            ++t1;
        }
        t1.display();
    }
    return 0;
}

时间: 2024-09-30 04:53:56

SDUTOJ 2711 4-2 电子时钟中的运算符重载的相关文章

4-2电子时钟中的运算符重载

4-2 电子时钟中的运算符重载 Time Limit: 1000MS Memory limit: 65536K 题目描述 通过本题目的练习可以运算符重载的方法: 设计一个时间类Time,私有数据成员有hour(时).minute(分).second(秒): 公有成员函数有:setHour(int)设置数据成员hour的值,非法的输入默认为12:setMinue(int)设置数据成员minute的值,非法输入默认为0:setSecond(int)设置数据成员second的值,非法输入默认为0:se

第九周项目1-复数类中的运算符重载(续)

在复数类中的运算符重载基础上 (1)再定义一目运算符 -,-c相当于0-c. (2)定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年05月14日 * 版本号:v1.0 */ #include <iostream> using

第九周项目2-Time类中的运算符重载(续)

在Time类中的运算符重载基础上 (1)定义对时间对象的自增和自减一目运算符 (2)定义Time类中的<<和>>运算符重载,实现时间的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年05月14日 * 版本号:v1.0 */ #include <iostream> using n

第九周项目3-分数类中的运算符重载(续)

在分数类中的运算符重载基础上 (1)定义分数的一目运算+和-,分别代表分数取正和求反,将"按位取反运算符"~重载为分数的求倒数运算. (2)定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年05月14日 * 版本号:v1.0 *

第八周项目3-分数类中的运算符重载

实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算.可以在第4周分数类代码的基础上开始工作. /* * Copyright (c) 2015,烟台大学计算机学院 * All right reserved. * 作者:邵帅 * 文件:Demo.cpp * 完成时间:2015年04月29日 * 版本号:v1.0 */ #include <iostream> using namespace std; class CFraction { private:

第八周项目 二 【项目2-Time类中的运算符重载】

[项目2-Time类中的运算符重载] 实现Time类中的运算符重载. [cpp] view plaincopyprint? class CTime { private: unsigned short int hour;    // 时 unsigned short int minute;  // 分 unsigned short int second;  // 秒 public: CTime(int h=0,int m=0,int s=0); void setTime(int h,int m,i

设计CTime类,并且在CTime类中使用运算符重载

程序代码: #include <iostream> using namespace std; class CTime//时间类 { private: unsigned short int hour; //时 unsigned short int minute; //分 unsigned short int second; //秒 public: CTime(int h=0,int m=0,int s=0);//构造函数 void setTime(int h,int m,int s);//设置时

在Lua中进行运算符重载

在C++里面运算符是可以重载的,这一点也是C++比较方便的一个地方.在Lua中其实也是可以模拟出运算符的重载的. 在Lua中table中元素的运算都是和一个叫做元表有关的,在一个table型的变量上都有一个元表,在元表中存放着该变量的 元函数,在进行运算是,就是利用元表中的这些元函数进行的,比如对两个元素进行加法操作,实际上就是调用在元表中 的一个元函数__add()来实现的.所以通过对这种情况的了解,我们可以很方便的对table元素的元表进行重新的设定, 从而实现重载运算符的目的. 并且tab

第九周项目二-Time类中的运算符重载(续)

<span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: 35px;">在Time类中的运算符重载基础上</span><br style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 15px; line-height: