news 2026/5/5 15:50:43

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/5/1 12:30:19

WeClone实战:从零搭建电商平台克隆

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个电商平台克隆工具&#xff0c;允许用户输入现有电商网站URL或功能描述&#xff0c;自动生成具有类似功能的完整电商系统。包括商品展示、购物车、支付接口、用户管理等核心…

作者头像 李华
网站建设 2026/4/30 23:45:24

1小时打造定制版Furmark:满足特殊测试需求

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 开发一个Furmark定制化原型工具&#xff0c;允许用户&#xff1a;1. 选择不同的渲染着色器 2. 自定义测试时长和分辨率 3. 添加硬件传感器数据采集 4. 修改压力测试算法 5. 导出定制…

作者头像 李华
网站建设 2026/4/30 23:33:37

AI教你3种方法快速查询电脑开机时间

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Python脚本&#xff0c;使用psutil库自动检测电脑的开机时间&#xff0c;并将结果格式化为易读的日期和时间。脚本应包含错误处理&#xff0c;确保在不同操作系统&#xff…

作者头像 李华
网站建设 2026/5/4 20:44:16

快速验证UI设计:文字截断原型生成器

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个可交互的UI原型生成器&#xff0c;允许用户通过参数配置&#xff1a;1) 容器宽度 2) 字体大小 3) 行数限制 4) 省略号颜色。实时生成预览并输出对应的CSS代码。要求包含预设…

作者头像 李华
网站建设 2026/5/5 18:10:58

零基础入门:用bpmn-js画你的第一个流程图

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个交互式bpmn-js新手教程&#xff0c;包含&#xff1a;1&#xff09;嵌入式代码编辑器显示基础配置 2&#xff09;分步指引构建请假审批流程&#xff08;开始事件→员工申请→…

作者头像 李华