当前位置: 首页 > 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.cnnetsun.cn/news/52559.html

相关文章:

  • 005-AES:采招网
  • 基于python+django的在线考试系统(源码+lw+部署文档+讲解等)
  • C语言一维与二维数组名详解:从本质理解到高手应用
  • 当水印遇见AI:一场像素级的美学修复之旅
  • 软件测试是保障软件质量的关键环节,尤其在当前无法完全依赖形式化方法证明软件正确性的背景下,测试成为发现缺陷最主要、最有效的手段
  • 如何用AI快速生成Flink面试题答案?
  • 10分钟搞定:DeepSeek本地开发环境快速搭建方案
  • 豆包AI手机智能操控的硬核原理
  • CVE-2023-48795漏洞深度解析:原理与影响
  • 深入解析strspn:字符串扫描的精确尺子
  • 纺织AI设计系统:用技术重构创意与效率
  • 用AI辅助开发:weditor的自动化测试新体验
  • vivo真机adb 命令获取手机当前窗口信息
  • 3分钟极速安装!MinGW自动化方案对比
  • Spring Boot依赖冲突:新手必看指南
  • 1小时快速搭建Kiro下载工具原型
  • GitLab本地部署效率革命:比官方文档快3倍的极简方案
  • 智能问数如何让数据分析效率提升10倍
  • Phyfusion在游戏开发中的5个惊艳应用案例
  • 电商网站商品筛选栏的sticky定位实战
  • 零基础学结构体:从概念到实战5个例子
  • 5分钟搭建status_invalid_image_hash检测原型
  • 人工智能应用-机器视觉:车牌识别(1)
  • 5分钟搞定node-sass配置:快速原型开发指南
  • 幽冥大陆(四十九)PHP打造Java的Jar实践——东方仙盟筑基期
  • 从产线到质检,兰亭妙微教你做 “工人愿意用” 的工业 UI
  • 【数学】【微积分】 ① 导数的基础概念与计算法则
  • 咱们聊聊Spring循环依赖那点事儿:从“死锁”到“三级缓存”的奇妙之旅
  • Linux 文件拷贝性能对比:裸 `read/write` VS `fread/fwrite` —— 页面缓存与用户缓冲的真相(附完整测试代码)
  • 主散线指标 通达信源码