【程序填空题】日期比较(运算符重载)

题目描述

定义一个日期类CDate,包含属性:年、月、日,都是整数。

构造函数含单个参数,参数是八位整数,默认值为0,实现整数转为日期类型,例如参数为20170612,转为year=2017, month=6, day=12

实现转换运算符重载,把日期类型转为整数,例如2017年6月8日转为20170608。注意,如果月或日小于10,转化为整数时要补0

实现日期的输出函数Print,具体格式看示范数据

主函数如下,不能修改,请补充上面的日期类。

输入

第一行输入t表示有t对日期

接着每两行输入两个日期,输入t对

输出

每行输出一对日期中,日期大的信息

//

输入示例:

2
20170630
20160528
19981111
20021212
 

输出示例:

2017年06月30日
2002年12月12日

原代码块:

//补充头文件和CDate类定义
/********** Write your code here! **********/


/*******************************************/
// 主函数
int main()
{
    int t, t1, t2;
    CDate C1, C2;
    cin >> t;
    while (t--)
    {
        cin >> t1 >> t2;
        C1 = t1;
        C2 = t2;
        ((C1 > C2) ? C1 : C2).Print(); // 日期大的输出,在代码C1>C2中,会自动把C1和C2转换为整数进行比较
    }
    return 0;
}

AC代码:

// 补充头文件和CDate类定义
#include <iostream>
#include <iomanip>
using namespace std;class CDate
{int year, month, day;public:CDate() {}CDate(int date){year = date / 10000;month = (date % 10000) / 100;day = date % 100;}operator int() const{return year * 10000 + month * 100 + day;}void Print() const{cout << year << "年" << setfill('0') << setw(2) << month << "月" << setfill('0') << setw(2) << day << "日" << endl;}bool operator>(const CDate &other) const{return int(*this) > int(other);}
};// 主函数
int main()
{int t, t1, t2;CDate C1, C2;cin >> t;while (t--){cin >> t1 >> t2;C1 = t1;C2 = t2;((C1 > C2) ? C1 : C2).Print(); // 日期大的输出,在代码C1>C2中,会自动把C1和C2转换为整数进行比较}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/17154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现批量删除Word文档内容中的“指定”内容(5)

前言 本文是该专栏的第5篇,后面会持续分享Python办公自动化干货知识,记得关注。 如果说,有这样的一个需求——有一批废弃词,需要你通过python,对目标word文档中包含这些废弃词的目标内容,进行批量删除。接到这样的需求,第一时间你会想到需要怎么去解决呢? 而本文,笔…

Python实现批量修改Word文档内容的字体大小(6)

前言 本文是该专栏的第6篇,后面会持续分享Python办公自动化干货知识,记得关注。 在本专栏上一篇文章《Python实现批量删除Word文档内容中的“指定”内容(5)》中,笔者有详细介绍通过python删除word文档内容中的“指定内容”。 而本文,在上一篇文章的思路基础上,再实现一…

Mybatis多表查询,报错:Column ‘id‘ in field list is ambiguous

错误原因&#xff1a; Mybatis 多表查询时&#xff0c;多个表有相同名字的字段&#xff0c;比如 id&#xff0c;名字重复&#xff0c;没有指定对应的表名。 有两个地方需要注意&#xff1a;(1)将其中一个重复字段的 Mybatis的 column 修改为其他的名字。(2)字段加上对应的表名…

Java 8 Lambda 表达式:新手入门指南

随着Java 8的发布&#xff0c;Lambda 表达式成为了Java编程中一个不可或缺的特性。Lambda 表达式允许我们以更简洁、更直观的方式表示函数式接口的实例。本文将引导新手如何开始使用Java 8的Lambda表达式。 1. 什么是Lambda表达式&#xff1f; Lambda 表达式是一个匿名函数&…

AI重塑了我的工作流

阅读内容 Inhai: Agentic Workflow&#xff1a;AI 重塑了我的工作流 4 种主要的 Agentic Workflow 设计模式 Reflection&#xff08;反思&#xff09;&#xff1a;让 Agent 审视和修正自己生成的输出。 举例&#xff1a;如果有两个 Agent&#xff1a;一个负责 Coding&#…

损失函数篇 | YOLOv8更换损失函数之Inner-IoU | 通过辅助边界框计算IoU损失

前言:Hello大家好,我是小哥谈。损失函数是机器学习中用来衡量模型预测值与真实值之间差异的函数。在训练模型时,我们希望通过不断调整模型参数,使得损失函数的值最小化,从而使得模型的预测值更加接近真实值。为弥补现有IoU损失函数在不同的检测任务中的泛化能力较弱且收敛…

unity制作app(9)--拍照 相册 上传照片

1.传输照片&#xff08;任何较大的数据&#xff09;都需要扩展服务器的内存空间。 2.还需要base64编码 2.1客户端发送位置的编码 2.2服务器接收部分的代码

数据链路层 + NAT技术

数据链路层&#xff1a;负责设备之间的数据帧的传送和识别。 一、以太网 以太网的帧格式 如何分离报头和有效数据&#xff1f; 报头是固定长度的 如何将数据交给上层协议&#xff1f; 通过类型&#xff0c;如果是0800&#xff0c;则交给IP协议&#xff0c;如果是0806&#xf…

Vue中使用Axios

安装Axios&#xff1a; 首先确保已经安装了Axios。你可以使用npm或者yarn进行安装&#xff0c;如下所示&#xff1a; pm install axios 导入Axios&#xff1a; 在需要发送HTTP请求的组件中&#xff0c;使用import语句导入Axios库。 import axios from axios; 发送HTTP请求&…

前端HTML5从入门到精通面试题及参考答案(2万字长文)

目录 描述HTML5与HTML4的主要区别是什么? HTML5为什么不基于SGML? HTML5的DOCTYPE声明是什么?

力扣爆刷第145天之图论五连刷(dfs和bfs)

力扣爆刷第145天之图论五连刷&#xff08;dfs和bfs&#xff09; 文章目录 力扣爆刷第145天之图论五连刷&#xff08;dfs和bfs&#xff09;总结一、797. 所有可能的路径二、200. 岛屿数量三、695. 岛屿的最大面积四、1020. 飞地的数量五、130. 被围绕的区域 总结 dfs是一条路走…

Debug - nacos配置 第二弹

好的 又是一个蠢蠢的 nacos 配置上出现的问题 在使用 nacos 进行 配置共享时 报错 Description: Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver c…

5.30边缘智能开发工具链全解析 | 2024高通边缘智能创新应用大赛公开课

2024高通边缘智能创新应用大赛系列公开课迎来精彩续篇&#xff01;本期课程将由阿加犀智能科技技术总监秦朝&#xff0c;为大家带来一场关于边缘智能方案与创新应用的深度分享。 作为本次大赛的联合主办方&#xff0c;阿加犀为比赛设备提供强大的软件支持。 各位参赛者将上手…

谷歌忙于手动删除自己搜索引擎中奇怪的人工智能答案

该公司确认正在“迅速采取行动”消除人工智能工具的一些奇怪反应。 社交媒体上充斥着谷歌新的人工智能概述产品的例子&#xff0c;这些产品说了一些奇怪的话&#xff0c;从告诉用户在披萨上涂胶水到建议他们吃石头。混乱的推出意味着&#xff0c;随着各种表情包的发布&#xf…

Android Gradle文件 一次通关

前言 Android的Gradle是每个项目一定包含的文件&#xff0c;用来定义构建配置的脚本文件&#xff0c;通常包括两个主要文件&#xff1a;build.gradle&#xff08;项目级别&#xff09;和build.gradle&#xff08;模块级别&#xff09;。 项目级别的 build.gradle 文件 项目级…

【Typescript】通过变量的值即可获取变量的类型【typeof 变量】

注意&#xff1a;只要变量的类型准确,则typeof获取变量的类型就不会错 enum Test {a "a0",b "b0" }// 这里的a是一个变量的值 let a: Test.a "a0" as Test.a// 这里的typeof a是一个类型【Test.a】 let x: typeof a Test.a

C++系列-定位new表达式(placement-new)

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们先来强调一个很关键的问题&#xff0c;那就是在new和delete中的一一对应的问题&#xff0c; 我们先来看一段代码&#xff1a; #include<iostream> using namespace …

【C++】旋转字符串——精准与否,就是屠宰和手术的区别

✨题目链接&#xff1a; NC114 旋转字符串 ✨题目描述 字符串旋转: 给定两字符串A和B&#xff0c;如果能将A从中间某个位置分割为左右两部分字符串&#xff08;可以为空串&#xff09;&#xff0c;并将左边的字符串移动到右边字符串后面组成新的字符串可以变为字符串B时返回t…

北理工提出 LTrack 双摄像头系统 | 专注于暗场景多目标跟踪,自动驾驶和夜间监控的福音!

低光照场景在现实世界应用中很普遍&#xff08;例如自动驾驶和夜间监控&#xff09;。最近&#xff0c;在各种实际用例中的多目标跟踪受到了很多关注&#xff0c;但在暗场景中的多目标跟踪却鲜少被考虑。 在本文中&#xff0c;作者专注于暗场景中的多目标跟踪。为了解决数据集…

shell脚本读写二进制文件

文章目录 shell脚本读写二进制文件读取二进制文件使用xxd命令使用od命令 写入二进制文件使用echo和printf 读取和修改二进制文件使用dd命令 组合使用工具 shell脚本读写二进制文件 在Shell脚本中处理二进制文件时&#xff0c;可以使用一些常用的命令和工具来读取和写入二进制数…