news 2026/4/23 6:01:44

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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++内存管理!


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 11:39:42

软件工程正是为了应对“软件危机”而诞生的学科,其核心目标是通过系统化

软件工程正是为了应对“软件危机”而诞生的学科&#xff0c;其核心目标是通过系统化、规范化和可量化的方法来提高软件开发的效率与质量。面对第三代计算机硬件快速发展所带来的软件需求激增&#xff0c;传统的手工作坊式开发方式已无法满足复杂系统的构建需求&#xff0c;从而…

作者头像 李华
网站建设 2026/4/23 11:39:40

21、Ubuntu 软件安装、卸载与系统维护全攻略

Ubuntu 软件安装、卸载与系统维护全攻略 在 Ubuntu 系统中,软件的安装与卸载以及系统的维护和安全保障是日常使用中非常重要的环节。下面将详细介绍多种软件管理方式以及系统维护的相关内容。 1. Synaptic 软件包管理器 Synaptic 除了有用于显示类别和安装状态的“Sections…

作者头像 李华
网站建设 2026/4/23 11:39:12

dirsearch vs 传统扫描:效率提升300%的秘诀

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个优化版的dirsearch工具&#xff0c;要求&#xff1a;1. 实现动态字典生成算法 2. 自适应并发控制机制 3. 智能结果去重 4. 集成常见CMS指纹识别 5. 性能监控面板。比较优化…

作者头像 李华
网站建设 2026/4/23 11:39:29

1小时原型开发:智能console线诊断工具实战

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个智能console线诊断工具原型&#xff0c;功能包括&#xff1a;1) 自动识别连接的设备类型 2) 常见错误代码诊断 3) 波特率自动匹配 4) 交互式命令行界面。使用PythonFlask开…

作者头像 李华
网站建设 2026/4/23 11:39:27

AI如何助力Kiro下载工具开发?

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个基于AI的Kiro下载工具&#xff0c;具备以下功能&#xff1a;1. 智能解析下载链接&#xff0c;自动识别最佳下载源&#xff1b;2. 动态调整下载速度&#xff0c;根据网络状况…

作者头像 李华