当前位置: 首页 > news >正文

C++学习之旅【实战全面解析C++类和对象】

🔥承渊政道:个人主页

❄️个人专栏:《C语言基础语法知识》 《数据结构与算法初阶》

《C++初阶知识内容》


✨逆境不吐心中苦,顺境不忘来时路!
🎬 博主简介:

引言:前篇文章,小编已经将我所学的C++类和对象的相关知识介绍完了,俗话说的好,温故知新,可以为师矣.那么本篇文章让我们通过做题全面解析C++类和对象,加深自己对知识的理解!废话不多说,带着这些疑问,下面跟着小编的节奏🎵一起学习吧!

目录

  • 1.选择题(全面解析)
  • 2.编程题(全面解析)
    • 2.1计算日期到天数转换
    • 2.2日期差值
    • 2.3打印日期
    • 2.4日期累加

1.选择题(全面解析)































2.编程题(全面解析)

2.1计算日期到天数转换

#include<iostream>usingnamespacestd;// 判断是否为闰年boolisLeap(intyear){// 闰年规则:能被4整除且不能被100整除,或能被400整除return(year%4==0&&year%100!=0)||(year%400==0);}intmain(){intyear,month,day;// 输入年、月、日(需确保输入为合法日期)cin>>year>>month>>day;intmonths[12]={31,28,31,30,31,30,31,31,30,31,30,31};// 闰年则修改2月天数为29if(isLeap(year)){months[1]=29;}// 累加前month-1个月的总天数inttotalDays=0;for(inti=0;i<month-1;++i){totalDays+=months[i];}totalDays+=day;// 输出结果cout<<totalDays<<endl;return0;}


2.2日期差值

#include<iostream>#include<string>#include<cmath>usingnamespacestd;// 判断闰年boolisLeap(intyear){return(year%4==0&&year%100!=0)||(year%400==0);}// 计算date(YYYYMMDD)对应的“当年第几天”intdateToDayOfYear(intdate){intyear=date/10000;intmonth=(date/100)%100;intday=date%100;intmonths[12]={31,28,31,30,31,30,31,31,30,31,30,31};if(isLeap(year)){months[1]=29;}inttotal=0;for(inti=0;i<month-1;++i){total+=months[i];}returntotal+day;}// 计算两个日期(YYYYMMDD)之间的天数差intdateDiff(intdate1,intdate2){// 确保date1 <= date2,方便计算if(date1>date2){swap(date1,date2);}intyear1=date1/10000;intyear2=date2/10000;intday1=dateToDayOfYear(date1);intday2=dateToDayOfYear(date2);inttotal=0;// 处理中间完整的年份for(inty=year1+1;y<year2;++y){total+=isLeap(y)?366:365;}// 处理year1剩余的天数 + year2已过的天数if(year1==year2){total=day2-day1+1;// 同一年,直接相减+1(如12到22是11天)}else{intdaysInYear1=isLeap(year1)?366:365;total+=(daysInYear1-day1+1)+day2;}returntotal;}intmain(){intdate1,date2;// 多组输入(直到输入结束)while(cin>>date1>>date2){cout<<dateDiff(date1,date2)<<endl;}return0;}


2.3打印日期

#include<iostream>usingnamespacestd;// 判断是否为闰年boolisLeap(intyear){return(year%4==0&&year%100!=0)||(year%400==0);}intmain(){inty,n;// 处理多组输入while(cin>>y>>n){// 平年各月天数(索引0对应1月)intmonths[]={31,28,31,30,31,30,31,31,30,31,30,31};// 闰年修改2月天数if(isLeap(y)){months[1]=29;}intmonth=1;// 推算月份和日期for(;month<=12;++month){if(n<=months[month-1]){break;}n-=months[month-1];}// 按yyyy-mm-dd格式输出(补前导零)printf("%04d-%02d-%02d\n",y,month,n);}return0;}


2.4日期累加

#include<iostream>usingnamespacestd;// 判断闰年boolisLeap(intyear){return(year%4==0&&year%100!=0)||(year%400==0);}// 获取指定年、月的天数intgetDays(intyear,intmonth){switch(month){case1:case3:case5:case7:case8:case10:case12:return31;case4:case6:case9:case11:return30;case2:returnisLeap(year)?29:28;default:return0;// 无效月份(实际不会触发)}}intmain(){intm;cin>>m;// 样例个数while(m--){inty,mon,d,add;cin>>y>>mon>>d>>add;d+=add;// 累加天数到“日”// 调整日期至合法范围while(true){intdays=getDays(y,mon);if(d<=days)break;// 日合法,退出循环d-=days;// 减去当月天数mon++;if(mon>12){// 月份超12,年份进位y++;mon=1;}}// 按格式输出printf("%04d-%02d-%02d\n",y,mon,d);}return0;}


敬请期待下一篇文章内容–>C++内存管理!


http://www.gsyq.cn/news/99057.html

相关文章:

  • 基于协同过滤算法的运动场馆服务平台设计与实现
  • 低代码 | 低代码库研究 + 拖拽
  • 005-AES:采招网
  • 基于Python与Django的白泽自动化运维系统设计与实现
  • 基于Python+django的智能停车系统的设计与实现(源码+lw+部署文档+讲解等)
  • 【设计模式|第五篇】代理模式:控制访问的智能中介
  • SPOOLing 是 Simultaneous Peripheral Operations On-Line 的缩写,中文为“外部设备同时联机操作”
  • 小红书内容运营工具怎么选?专业视角拆解优质工具核心标准
  • K8S资源无法删除处理方法
  • 音频二维码怎么做?音频二维码制作指南
  • DeepSeek-V3超长上下文处理终极指南:从原理到实战
  • 程序在输入或输出的边界附近更容易出现缺陷,例如数组越界、循环次数错误
  • Prompt工程能否代替模型训练?
  • 基于Python+Django的智能停车管理系统(源码+lw+部署文档+讲解等)
  • 基于python+django的在线考试系统(源码+lw+部署文档+讲解等)
  • C语言一维与二维数组名详解:从本质理解到高手应用
  • 路径覆盖是一种白盒测试方法,旨在设计足够的测试用例,使得程序中的每一条可能执行路径至少被执行一次
  • 深入解析strspn:字符串扫描的精确尺子
  • 临时笔记1
  • 雨燕直播案例分析:如何打造高并发直播平台
  • DroidCam零基础入门:5分钟把手机变电脑摄像头
  • Gradle依赖缓存损坏:传统方法与AI工具的对比
  • 零基础玩转NVIDIA容器工具包:从安装到第一个AI容器
  • AI如何帮你彻底理解Java volatile关键字
  • CVE-2023-48795漏洞深度解析:原理与影响
  • 1小时用Phyfusion打造产品物理原型:实战演示
  • 智能问数如何让数据分析效率提升10倍
  • 3分钟极速安装!MinGW自动化方案对比
  • 如何用AI自动生成Python爬虫代码?快马平台实战
  • AI如何帮你彻底清理Windows Installer残留文件