OJ第三批——Problem O:B C++时间类的运算符重载

01_MySQL下载、安装与配置(以MySQL8.0.31版本为例) 1.点击下载好的mysql安装包 进入到mysql installer界面。2.选择MySQL Servers选项 一直下拉。 阅读详情

问题及代码:

 

Problem O: B C++时间类的运算符重载

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 214   Solved: 72
[ Submit][ Status][ Web Board]

Description

C++时间类的运算符重载
定义一个时间类Time,其数据成员为表示时间的小时(hour)、分(minute),秒(second)。
重载运算符“+”,使之能用于时间对象的加法运算;重载运算符“<<”,使之能用于时间对象的输出操作。
(1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意。
例如,t1+t2,i+t1,t1+i均合法(设i为整数表示秒数, t1,t2为时间类Time对象)。
(2)输出时间对象的方式为 小时:分:秒,例如 14:23:55、00:00:00、23:59:59等。

编写程序,分别求两个时间对象之和、整数和时间对象之和,时间对象和整数之和,并且输出。

请在下面的程序段基础上完成设计:
#include <iostream>
using namespace std;

class Time
{
public:
Time():hour(0),minute(0),second(0) {}
Time(int h,int m,int s) {
hour=(h>=24||h<0)?0:h;
minute=(m>=60||m<0)?0:m;
second=(s>=60||s<0)?0:s;
}
Time operator+(Time &);
Time operator+(int &);
friend Time operator+(int,Time &);
friend ostream& operator << (ostream& output, Time & c);
private:
int hour;
int minute;
int second;
};

//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************


//********************* end ********************

int main()
{
//测试Time类对象加Time类对象
int hour,minute,second;
cin>>hour>>minute>>second;
Time t1(hour,minute,second);
cin>>hour>>minute>>second;
Time t2(hour,minute,second);
Time t3=t1+t2;
cout<<"t1+t2=";
cout<<t3;

//测试时间对象加整数
int i;
cin>>hour>>minute>>second;
cin>>i;
t3=Time(hour,minute,second)+i;
cout<<"t1+i=";
cout<<t3;

//测试整数加时间对象
cin>>i;
cin>>hour>>minute>>second;
t1=Time(hour,minute,second);
t3=i+t1;
cout<<"i+t1=";
cout<<t3;

return 0;
} 

Input

一个时间类的小时 分 秒,另一个时间类的小时 分 秒(注意要符合实际)
一个时间类的小时 分 秒,一个整数(表示秒数)
一个整数(表示秒数),一个时间类的小时 分 秒

Output

两个时间之和、时间和整数之和,整数和时间之和。

Sample Input

1 2 3 4 5 6
0 0 0 200
59 14 59 1

Sample Output

t1+t2=5:7:9
t1+i=0:3:20
i+t1=15:0:0

HINT

 只提交自己定义的函数部分

 

 

#include <iostream>

using namespace std;

class Time
{
public:
    Time():hour(0),minute(0),second(0) {}
    Time(int h,int m,int s)
    {
        hour=(h>=24||h<0)?0:h;
        minute=(m>=60||m<0)?0:m;
        second=(s>=60||s<0)?0:s;
    }
    Time operator+(Time &);
    Time operator+(int &);
    friend Time operator+(int,Time &);
    friend ostream& operator << (ostream& output, Time & c);
private:
    int hour;
    int minute;
    int second;
};

//将程序需要的其他成份写在下面,只提交begin到end部分的代码
//******************** begin ********************
Time Time::operator+(Time &t1)
{
    int h,m,s;
    s=second+t1.second;
    m=minute+t1.minute;
    h=hour+t1.hour;
    if(s>59)
    {
        m=m+s/60;
        s=s%60;

    }
    if(m>59)
    {
        h=h+m/60;
        m=m%60;

    }
    if(h>23)
        h=h-24;
    return Time(h,m,s);
}

Time Time::operator+(int &s1)
{
    int h,m,s;
    s=second+s1;
    m=minute;
    h=hour;
    if(s>59)
    {
        m=s/60+m;
        s=s%60;
    }
    if(m>59)
    {
        h=h+m/60;
        m=m%60;

    }
    if(h>23)
        h=h-24;
    return Time(h,m,s);
}

Time operator+(int s2,Time &t2)
{
    int h,m,s;
    s=t2.second+s2;
    m=t2.minute;
    h=t2.hour;
    if(s>59)
    {
        m=s/60+m;
        s=s%60;

    }
    if(m>59)
    {
        h=m/60+h;
        m=m%60;

    }
    if(h>23)
        h=h-24;
    return Time(h,m,s);
}

ostream &operator <<(ostream & output,Time &c)
{
    output<<c.hour<<":"<<c.minute<<":"<<c.second<<endl;
    return output;
}

//********************* end ********************
int main()
{
//测试Time类对象加Time类对象
    int hour,minute,second;
    cin>>hour>>minute>>second;
    Time t1(hour,minute,second);
    cin>>hour>>minute>>second;
    Time t2(hour,minute,second);
    Time t3=t1+t2;
    cout<<"t1+t2=";
    cout<<t3;

//测试时间对象加整数
    int i;
    cin>>hour>>minute>>second;
    cin>>i;
    t3=Time(hour,minute,second)+i;
    cout<<"t1+i=";
    cout<<t3;

//测试整数加时间对象
    cin>>i;
    cin>>hour>>minute>>second;
    t1=Time(hour,minute,second);
    t3=i+t1;
    cout<<"i+t1=";
    cout<<t3;

    return 0;
}


 

运行结果:

Ollama内网离线部署大模型实战:从模型文件到私有化服务 本文详细介绍了如何在内网离线环境下,利用Ollama部署私有化大模型服务。内容涵盖从获取GGUF格式模型文件、手动安装Ollama、编写核心Modelfile配置文件,到创建运行模型、性能调优及安全加固的全流程实战指南,旨在帮助企业安全、可控地构建内部AI能力。 阅读详情

相关推荐

YOLOv8基础环境搭建cuda+anaconda+pytorch+pycharm

首先安装NVIDIA gpu的电脑安装显卡驱动,如果安装过了,或者想使用cpu的,可以跳过这一步。打开cmd,输入nvidia-smi查看GPU的CUDA版本,可以看到CUDA版本12.3,意味着只能安装小于12.3的CUDA版本。下载完成,进行安装,建议安装在非系统盘,以后会创建比较多的环境的话,剩下的默认安装即可。,需要注册一个NVIDIA账号,然后选择CUDA对应版本的cudnn即可。,以12.2.1版本举例,选好系统参数,点击下载,,以11.6版本举例,选好系统参数,点击下载,

qq_16602159的博客 2383

C++默认成员函数 & 日期类运算符重载

不过这一次,如果我们-=天数后,如果天数<0那么说明本月已经结束了,我们得看是否满足上一个月的天数所以,我们就不是判断是否是满足本月的天数了,而是上一个月,所以如果我们的_day<0我们就直接先天正月分,让_month--<然后我们在判断月份是否满足,调整年份,然后我们就继续对_day+=本月的天数。我们还是可以像+=一样,我们先对原来的天数-=想要-=的天数,然后我们判断天数和对应的月份是否合法,如果不合法,我们就需要对月份进行-=1了,如果_month<1那么我们还需要调整年,下面我们来看一下。

m0_73455775的博客 941

PLS-PM with R 偏最小二乘路径建模 (R语言)

1. 引入 1.1. 安装plspm包 plspm 是一个用于执行偏最小二乘路径建模分析的 r 程序包。 在 CRAN 上可以免费下载: Http://cran.r-project.org/web/packages/plspm/index.html. 此后,通过以下代码在r中安装并加载该程序包即可。 install.packages("plspm") library("plspm") 2. 一些简单概念 2.1. 潜变量和观测变量 不少变量如满意度、成功指数是无法通过观测得到

Wowlittlemoon的博客 1万+

C++时间类的运算符重载

 Description C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour)、分(minute),秒(second)。 重载运算符“+”,使之能用于时间对象的加法运算;重载运算符“ (1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意。 例如,t1+t2,i+t1,t1+i均合法(设i为整数表示秒数, t

u013602059的专栏 5151

如何产生ATPG IR-drop分析波形文件(DFT)

摘要:本文介绍了生成VCD波形的流程与要求,主要用于后端进行IR-drop分析。生成过程分为ATPG shift和speed ATPG capture两部分,分别对应不同的输入要求、模式设置和仿真参数。

murphyrong的博客 872

ADRV902x射频评估实战:手把手教你用TES GUI生成ARM bin与JESD204C配置文件

在射频前端系统设计中,ADRV902x系列收发器凭借其宽带性能和灵活配置能力,已成为5G基站、微波回传等场景的核心器件。然而当工程师面对非官方硬件平台时,如何高效利用Transceiver Evaluation Software(TES)完成关键配置,成为项目推进的第一道门槛。本文将彻底解析脱离ADS9母板后的完整离线工作流,从参数预设到文件生成,手把手解决真实工程中的配置痛点。在Demo模式下,所有硬件状态检测都会被跳过,但配置文件生成功能完全可用。作为基础模板,因其配置最为简洁,便于后续自定义修改。

weixin_33704591的博客 429

c++时间类的运算符重载

一个时间类的小时 分 秒,另一个时间类的小时 分 秒(注意要符合实际) 一个时间类的小时 分 秒,一个整数(表示秒数) 一个整数(表示秒数),一个时间类的小时 分 秒。(1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意。编写程序,分别求两个时间对象之和、整数和时间对象之和,时间对象和整数之和,并且输出。(2)输出时间对象的方式为 小时:分:秒,例如。两个时间之和 时间和整数之和 整数和时间之和。,使之能用于时间对象的输出操作。,其数据成员为表示时间的小时(

wyt1344的博客 776

论文阅读:2024 ACM CCS “Do Anything Now”: Characterizing and Evaluating In-The-Wild Jailbreak Prompts on

大语言模型(LLMs)的滥用问题引起了公众和大语言模型供应商的高度关注。有一种特殊的对抗性提示,叫做越狱提示,它已成为绕过防护措施、让大语言模型生成有害内容的主要攻击手段。在这篇论文中,作者使用新框架JailbreakHub,对2022年12月至2023年12月期间的1405个越狱提示进行了全面分析。作者识别出131个越狱提示社区,发现了越狱提示的独特特征以及主要攻击策略,比如提示注入和权限提升。

CSPhD-winston的博客 1414

C++运算符的重载--日期类的实现

在学习中,用C++编程的都知道,C++提供了一个非常强大的操作符重载机制,利用操作符重载,我们可以为我们自定义的类增加更多非常有用的功能,本文就是结合自己所学过的知识,对日期类函数进行模拟实现.目录1.Date.h2.Date.cpp2.1 GetMonthDay()2.2 IsInvalid()2.3 运算符重载=2.4 this指针2.5 运算符重载==2.6 运算符重载!=2.7 运算符重载> 2.8 运算符重载2.10 运算符重载>= ...

Hxbupaixu的博客 1384

基于SAHI算法优化YOLOv8的小目标检测性能研究

SAHI(SliceAwareHyperInference)是一种推理优化算法,通过将大图切片为小块并分别推理的方式,实现更精细的小目标检测。提升小目标检测精度:切片后的小目标在每个小块中占比更大,模型能够更好地聚焦。兼容性强:可直接集成到现有目标检测框架中(如YOLO系列、Detectron2等)。支持大分辨率图片和视频推理:减少硬件对大图推理的限制。本文详细探讨了如何通过SAHI(切片辅助超推理算法)结合YOLOv8模型,有效提升小目标检测性能,尤其是在高分辨率图片和视频场景中表现优异。

博客 2371

第八届传智杯WPS智能办公能力挑战赛练习题库

本文是关于WPS Office软件操作知识的选择题汇总,内容涵盖WPS文字、表格和演示三大组件的常用功能。主要包括:云文档协同编辑、文本框插入、幻灯片打印设置、数据排序与筛选、函数应用(如SUMIF、COUNT)、动画效果设置、格式刷使用、页眉页脚设置、单元格引用类型等基础操作要点。同时涉及计算机基础概念如二进制、ROM存储器等。题目以单选和多选形式呈现,附带详细答案解析,全面检验用户对WPS办公软件的功能掌握程度和实际操作能力,适用于办公软件技能培训和水平测试。

qq_73044452的博客 1432

日期累加(c++实现)

【代码】日期累加(c++实现)

zyang654321的博客 731

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

YTU OJ 2617 Problem C B C++时间类的运算符重载

C++时间类的运算符重载 定义一个时间类Time,其数据成员为表示时间的小时(hour)、分(minute),秒(second)。 重载运算符“+”,使之能用于时间对象的加法运算;重载运算符“<<”,使之能用于时间对象的输出操作。 (1)参加运算的两个操作数可以都是时间类对象,也可以其中有一个是整数(表示秒),顺序任意。 例如,t1+t2,i+t1,t1+i均合法(设i为整数表示秒数, t1,t2为时间类Time对象)。 (2)输出时间对象的方式为 小时:分:秒,例如 14:23:55、00:0

weixin_51273276的博客 523

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

第十七周oj刷题——Problem O: B C++时间类的运算符重载

#include using namespace std; class Time { public: Time():hour(0),minute(0),second(0) {} Time(int h,int m,int s) { hour=(h>=24||h<0)?0:h; minute=(m>=60||m<0)?0:m;

nufangdongde的专栏 1382

OJ 2304 Problem B 运算符重载:点之间的距离

Description 定义Point类,有2个double类型的属性表示点的横坐标和纵坐标。重载其减法运算符,用于计算两个点之间的距离。 Input 输入一系列点的坐标,每个点的坐标占一行。 Output 见样例。 Sample Input 20 20 30 30 40 40 50 50 Sample Output 14.1421 28.2843 42.4264 56.5685...

LiuLin_Hao的博客 1013

OJ 1396 Problem A: 时间类的流插入、提取和递增、递减运算

Description 封装一个时间类Time,在类上重载以下运算符,使得main()函数能够正确运行。 流插入操作符“>>”,按照输入格式从标准输入读取三个整数:hh,mm,ss,分别表示时、分、秒,其值在int范围内。 流提取操作符“<<”;按照“hh:mm:ss”输出Time类的对象,不合法的时间输出“error!!!”。 前置自增运算符“++”:把时间对象的秒数加1并返回。 前置自减运算符“–”:把时间对象的秒数减1并返回。 后置自增运算符“++”:把时间对象的秒数加1,返

LiuLin_Hao的博客 396

OJ 2215 Problem B 时间之差

Description 定义一个类Time,包含小时、分钟、秒三个属性。定义其构造函数Time(int, int, int)分别初始化其小时、分钟、秒。重载减法运算符,用于求两个时间之间相差的秒数(非负整数)。 Input 输入有2行。每行表示1个时间,包括小时、分钟、秒三个值。输入都是合法的24小时制的时间。 Output 见样例。 Sample Input 12 10 10 10 20 20 Sample Output Deference is 6590 seconds. HINT Ap

LiuLin_Hao的博客 874

C++运算符重载及其实例:新奇的加法

语法形式: 返回类型 operator@(参数表) 其中operator是c++中的保留字,代表运算符函数,@代表可以被重载的运算符(只有c++预定义操作符集合中的运算符才可以被重载,不是所有的运算符都能重载,比如不能重载的有条件选择 ?: 等) 1.与类相关的运算符重载形式: 类对象之间一般是不能直接用运算符计算的(赋值可以,会调用copy构造函数。拷贝构造函数:https://blog...

说好的 906

YTU OJ 2384 Problem B 矩形类中运算符重载【C++】

题目描述   定义一个矩形类,数据成员包括左下角和右上角坐标,定义的成员函数包括必要的构造函数、输入坐标的函数,实现矩形加法,以及计算并输出矩形面积的函数。要求使用提示中给出的测试函数并不得改动。   两个矩形相加的规则是:决定矩形的对应坐标分别相加,如     左下角(1,2),右上角(3,4)的矩形,与     左下角(2,3),右上角(4,5)的矩形相加,得到的矩形是     左下角(3,5),右上角(7,9)的矩形。   这个规则没有几何意义,就这么定义好了。   输出面积的功能通过重载"<&

weixin_51273276的博客 404

第十五周oj刷题——Problem M: C++习题 矩阵求和--重载运算符

Description 有两个矩阵a和b,均为2行3列。求两个矩阵之和。重载运算符“+”,使之能用于矩阵相加(如c=a+b)。 重载流插入运算符“<<”和流提取运算符“>>”。使之能用于该矩阵的输入和输出。 Input 两个2行3列矩阵 Output 矩阵之和 Sample Input 1 2 3 4 5 6 ...

aodiyi6351的博客 344

OJ第三批——Problem J:C++复数运算符重载(+与<<)

问题及代码: Problem J: C++复数运算符重载(+与 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 755  Solved: 466 [Submit][Status][Web Board] Description 定义一个复数类Complex,重载运算符“+”,使之能用于复数的加法运算与输出操作。 (1)参加

Timor7hao的专栏 639

OJ 1784 Problem E 整型数组运算符重载

Description 定义Array类: 1.拥有数据成员int length和int *mems,分别是数组中元素的个数和元素列表。 2. 无参构造函数,将mems设置为NULL,length为0。 3. 重载==运算符,用于判断两个Array对象是否相等。相等包括两种情况:(1)两个对象是同一个对象,即它们拥有相同的地址(记住: this指针指向当前对象,是当前对象的地址);(2)两个对象的length相同,且mems中对应元素的值相同。其他情况均为不相等。 4. 利用友元函数重载<<和

LiuLin_Hao的博客 261

OJ第三批——Problem U:编程题:运算符重载---矩阵求和

问题及代码: Problem U: 编程题:运算符重载---矩阵求和 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 442  Solved: 164 [Submit][Status][Web Board] Description /* 有两个矩阵a和b,均为2行3列。求两个矩阵之和。 重载运算符“+”,使之能用于矩阵

Timor7hao的专栏 725

OJ矩阵求和,重载运算符

编号及代码: /* *Copyright(c)2015,烟台大学计算机与工程学院 *All rights reserved; *文件名称:score.cpp *作者:范星月 *完成日期:2015年5月20日 *版本号:v1.0 * *问题描述:运用重载运算符求两个矩阵之和 *问题输入:两个矩阵 *问题输出:矩阵之和 */ #include using namesp

a716121的专栏 611

OJ第三批——Problem A :实现复数类中的加运算符重载【C++运算符重载】

问题及代码:   #include using namespace std; class Complex { public: Complex(); Complex(double r,double i);//声明需要的成员或友元函数,包括构造函数、用于重载运算符的函数及用于显示结果的函数 void display(); frien

Timor7hao的专栏 607

C++运算符重载题目练习

c++重载练习题

qq_56243544的博客 777

OJ 1829 Problem B 新奇的加法运算

Description 定义类newInt,包括: int类型的数据成员。 重载运算符“+”。计算规则为:将A、B对应位置上的数字相加,只保留个位数作为结果的对应位置上的数字。比如:876 + 543 = 319。注意:该运算不改变两个操作数的值。 重载输入和输出运算符,用于输入和输出对象的属性值。 无参构造函数和带参构造函数。 Input 第1行N>0,表示测试用例数量。 每个测试用例包括2个非负整数,用空格隔开。 Output 见样例。 Sample Input 4

LiuLin_Hao的博客 370
上一篇: OJ第三批——Problem N: 熟悉题型——填空题(删除线性表节点)
下一篇: OJ第三批——Problem P: B 继承 圆到圆柱体
Timor7hao
博客等级 码龄12年 22粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值