![](https://img-blog.csdnimg.cn/04ec86873ce4409989139c5bcbf10c61.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++编程指南
文章平均质量分 54
C++是一门广泛应用于系统开发、嵌入式系统等领域的高级编程语言。本专栏将逐步深入探讨面向对象编程、泛型编程、多线程编程等重要主题。通过清晰易懂的教程、实例演示和最佳实践分享,帮助你建立起对C++的扎实理解和灵活运用能力。
秋说
祝你开心
展开
-
【C++ | PTA】2017Final 圆周率山
以上尖下宽,左右对称的三角形形式,给出圆周率的前若干位(不含小数点)。注意:每行均以数字结尾,即数字右边无空格。为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率。输入山的高度,为一个不超过10的正整数。原创 2023-06-16 09:06:37 · 3126 阅读 · 1 评论 -
【C++ | PTA】类的定义和使用
定义一个日期类Date,内有数据成员年、月、日,另有成员函数:构造函数用于初始化数据成员,输出,闰年的判断。编写主函数:创建日期对象,计算并输出该日是该年的第几天。每组测试数据仅包含一个测试用例,每个测试用例占一行包括三个数,分别表示年、月、日。64 (2006年3月5日是该年的第64天)该日是该年的第几天。原创 2023-06-16 09:07:58 · 3638 阅读 · 1 评论 -
【C++ | PTA】计算时间相减
题目描述:定义一个时间类,小时和分钟是其两个私有成员数据。输入一个起始时间和一个结束时间(起始时间早于结束时间),通过运算符重载-(减号),计算这两个时间相隔多少分钟。说明:这两个时间在同一天之内,且采用24小时计时分式,即从00:00-23:59。输入格式: 测试输入包含若干测试用例,每个测试用例占一行。每个测试用例包括四个数,用空格间隔,每个数都是由两位数字组成,第一个数和第二个数分别表示起始时间的小时和分钟,第三个数和第四个数分别表示该题主要考察运算符重载和友元函数的使用方法我是秋说,我们下次见。原创 2023-06-15 08:51:06 · 3413 阅读 · 0 评论 -
【C++ | PTA】有序数组(类模板)
每行输入的第一个数字为0,1,2或3:为0时表示输入结束;为1时表示将输入整数,为2时表示将输入有一位小数的浮点数,为3时表示输入字符。如果第一个数字非0,则接下来将输入一个正整数,表示即将输入的数据的数量。实现一个类模板,它可以接受一组数据,能对数据排序,也能输出数组的内容。从每行第三个输入开始,依次输入指定类型的数据。原创 2023-06-15 08:49:41 · 3594 阅读 · 2 评论 -
【C++ | PTA]】汽车收费
输入格式:每个测试用例占一行,每行给出汽车的基本信息,每一个为当前汽车的类型1为car,2为Truck,3为Bus。接下来为它的编号,接下来Car是载客数和重量,Truck给出重量,Bus给出载客数。主函数根据输入的信息,相应建立Car,Truck或Bus类对象,对于Car给出载客数和重量,Truck给出重量,Bus给出载客数。生成上述类并编写主函数,要求主函数中有一个基类Vehicle指针数组,数组元素不超过10个。Car的收费公式为: 载客数8+重量2。Bus的收费公式为: 载客数*3。原创 2023-06-15 08:47:03 · 3462 阅读 · 0 评论 -
【C++ | PTA】括号匹配
给定仅包含()[]{}六种括号的字符串,请你判断该字符串中,括号的匹配是否是合法的,也就是对应括号的数量、嵌套顺序完全正确。其后T行每行一个字符串只包含[{()}]六种字符(字符串长度2e5以内)对于每个字符串,匹配输出Yes,否则输出No。第一行一个整数T(T原创 2023-06-15 08:46:17 · 4215 阅读 · 0 评论 -
【C++ | PTA】办事大厅排队
(1) in name 表示名字为name的人员新来到办事大厅,排在队伍的最后。(in和name间存在一个空格,name是名字对应字符串,长度不超过10)。(3) q 表示一次查询,请输出当前正在办理业务的人,也就是队伍的第1个人。如果当前无人办理业务,则输出“NULL”,不包括引号。在郑州大学综合办事大厅,每天陆陆续续有很多人来排队办事。请根据以上信息,每次遇到查询时,对应一行输出。如果这时队伍有人,则输出第一个人的姓名,否则输出NULL。(2) out 表示当前排在最前面的人已经办理完业务,离开了。原创 2023-06-15 08:43:55 · 3554 阅读 · 0 评论 -
【C++ | PTA】学生成绩的快速录入(构造函数)
现在需要录入一批学生的成绩(学号,成绩)。其中学号是正整数,并且录入时,后录入学生的学号会比前面的学号大;成绩分两等,通过(Pass,录入时用1代表),不通过(Fail,录入时用0代表)。由于很多学号都是相邻的,并且学号相邻的学生成绩常常相同。所以在录入时,适当地加了速。如果当前学生的学号比前面的学号大1,且成绩与前面的成绩相同,则只输入0即可。定义一个叫做Student的类,包含学号和成绩两个数据成员,以及记录学生对象个数的静态数据成员count。复制构造函数用于记录学生编号连续但成绩相同的情况。原创 2023-06-14 18:17:07 · 3915 阅读 · 0 评论 -
[C++] 一文带你精通vector容器
基本概念主要特点常用操作应用实例相较优势总结本文介绍了vector容器的特点语法操作及应用实例等,vector容器在数据的处理中不可或缺,读者可躬身实践将其掌握。菜鸟教程 | vector 容器浅析我是秋说,我们下次见。原创 2023-06-14 17:54:15 · 3233 阅读 · 1 评论 -
【C++ | PTA】队列操作
同时,在 push 函数中,我们使用 data[duilie++] 来将元素加入队列,并在 pop 函数中使用 data[ren++] 来弹出队首元素。对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。对于操作3,请输出队列长度。由于静态数组的长度是固定的,因此需要在代码中定义一个常量 MAXSIZE 来表示数组的最大长度。请实现一个MyQueue类,实现出队,入队,求队列长度.1 x : 表示从队尾插入x,0原创 2023-06-14 17:20:39 · 3841 阅读 · 1 评论 -
【C++ | PTA】计算点到直线的距离一一友元函数的应用
计算点到直线的距离。首先设计一个点类Point,它有2 个私有数据成员x和y,表示点的坐标。另一个类为直线类Line,它有3 个私有数据成员a,b和c,表示直线方程ax+by+c= 0。这两个类中都说明了一个友元函数dist,用于计算一个点到直线的距离。点(x.y)到直线ax+by+c=0的距离d的计算公式如下:该题考察C++ 类的基本定义和使用,包括类的构造函数、公有成员函数和私有成员变量等。友元函数可以访问类的私有成员变量,但并不是类的成员函数。我是秋说,我们下次见。原创 2023-06-14 17:12:29 · 4381 阅读 · 0 评论 -
【C++ | PTA】计算正方体、圆柱体的表面积、体积
从立方体、圆柱体抽象出一个公共基类Container,定义抽象类Container,模拟实现一个容器类层次结构,在主函数进行多态机制测试。各派生类要求实现基类的所有纯虚函数。抽象类class Container {protected:static double pi;public:virtual double area()=0; //纯虚该题考察继承和多态的知识点,包括抽象类、纯虚函数、静态成员变量和函数、基类指针和动态内存分配等。同时也涉及了控制台格式化输出等基础知识点。我是秋说,我们下次见。原创 2023-06-14 17:04:22 · 4119 阅读 · 2 评论 -
【C++ | PTA】2017Final进位与借位
凤湖小学二年级的陈老师吃惊地发现班上的同学竟然可以分成三类,一类总是可以正确地完成三位整数加减法(GroupA);一类总是可以正确地完成三位整数的加法,但对于减法运算来说,总是忘记借位的处理(GroupB);剩下的人总是忘记加法的进位,也总是忘记减法的借位(GroupC)。现多态性的理解与应用,包括虚函数的使用、函数重写和覆盖等。控制结构的使用,包括循环语句(while)和条件语句(if-else)等。数组的下标访问和遍历等。基本算术运算的实现方法,包括加法和减法的进位借位操作等。我是秋说,我们下次见。原创 2023-06-14 16:57:07 · 3269 阅读 · 0 评论 -
【C++ | PTA】我的支付宝和余额宝
支付宝AliPay和余额宝AliFund是一对好兄弟,他们来自同一个父类Account。已知类Account是支付宝AliPay和余额宝AliFund的虚基类,包括两个protected成员数据:long ID;//账号string name;//用户名支付宝A该题主要考察面向对象编程的基本概念和应用。包括类的定义、成员变量和成员函数的访问控制、构造函数和析构函数的实现、类的继承和派生、虚函数的使用等。此外,还涉及到输入输出流的操作,以及简单的条件判断和循环控制语句的应用。我是秋说,我们下次见。原创 2023-06-14 16:46:30 · 3405 阅读 · 0 评论 -
【C++ | PTA】表彰优秀学生(多态)
学期结束,班主任决定表彰一批学生,已知该班学生数在6至50人之间,有三类学生:普通生,特招运动员,学科专长生,其中学科专长生不超过5人。主函数根据输入的信息,相应建立GroupA, GroupB, GroupC类对象。GroupA类是普通生,有2门课程的成绩(均为不超过100的非负整数);GroupB类是特招运动员,有2门课程的成绩(均为不超过100的非负整数),1次运该题考察继承虚函数静态成员变量动态内存分配和指针等知识点,同时也考察了基本的算法思路,如遍历和条件判断等。我是秋说,我们下次见。原创 2023-06-14 16:27:56 · 3905 阅读 · 0 评论 -
【C++ | PTA】抽象类Shape
请编写一个抽象类Shape,包括两个纯虚函数,分别为计算面积getArea()和计算周长getPerim()。通过Shape类派生出矩形类Rectangle和圆类Circle,并计算各自的面积和周长。测试用例具体要求:输入1表示测试矩形类,之后输入矩形长和宽。输入2表示测试圆类,之后输入圆半径。Shape类定义如下:纯虚函数没有具体的实现,只是为子类提供接口。我是秋说,我们下次见。原创 2023-06-14 16:17:49 · 4138 阅读 · 1 评论 -
【C++ | PTA】虚函数的应用
补充下列代码,使得程序的输出为:A:3A:15B:53155类和函数接口定义: 参见裁判测试程序样例中的类和函数接口。在基类中声明虚函数并使用virtual关键字,在派生类中重载虚函数并使用override关键字实例化对象并使用指针来访问成员函数将派生类对象赋值给基类对象我是秋说,我们下次见。原创 2023-06-14 16:08:26 · 3077 阅读 · 0 评论 -
【C++ | PTA】A是A1的虚基类
本题目要求读入3个整数A、B和C,然后按照下列要求完成相关设计:1.定义一个基类A,在其中包含保护的数据成员int i,设计类A的带参构造函数对i进行初始化,定义成员函数display()显示i值;A1中包含保护的数据成员int j,设计类A1的构造函数;4.定义类A3,A3是A1和A2以多继承方式生成的公有派生类,设计类A3的构造函数;5.在main()中定义类A3的1个对象变量,通过输入的3个整数完成对象的创建;按行输出每个类中的构造函数中的信息和在主函数中调用的对象的成员函数。在这里给出相应的输出。原创 2023-05-30 19:01:09 · 3400 阅读 · 0 评论 -
【C++ | PTA】2017final函数模板
每一行为一个操作,每行的第一个数字为元素类型,1为整型元素,2为浮点型元素,3为point类型,若为整型元素,接着输入两个整型数据,若为浮点型元素,接着输入两个浮点型数据,若为point型元素,输入两个point型数据(x1 y1 z1 x2 y2 z2),输入0时标志输入结束。数据的间距问题(函数模板) 类point有三个数据成员:x、y和z, 分别代表x坐标、y坐标和z坐标,并有若干构造函数和一个重载-(减号,计算两点距离)的成员函数。对int,float,point或者其他类型的数据,返回间距。原创 2023-05-30 18:53:26 · 3190 阅读 · 0 评论 -
【C++ | PTA】日程安排(多重继承+重载)
已有一个日期类Date,包括三个protected成员数据int year;int month;int day;另有一个时间类Time,包括三个protected成员数据int hour;int minute;int second;现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员:该题考察多重继承及重载的相关知识,希望读者躬身实践。我是秋说,我们下次见。原创 2023-05-30 18:49:44 · 4458 阅读 · 0 评论 -
【C++ | PTA】多边形周长计算(继承)
输入格式: 测试输入包含一个测试用例,该测试用例的第一行输入多边形的个数n,接下来n行每一行给出一个多边形的基本信息,每行的第一个数字为当前多边形的类型,0为一般多边形,后面跟随m个数字为m条边的边长,-1为一般多边形边长输入结束标志,1为矩形,后面跟随两个数字,分别为height和width,2为等边多边形,后面跟随两个数字为等边多边形的边数和边长。生成上述类并编写主函数,根据输入的多边形信息,相应建立一个多边形类对象或矩形类对象或等边多边形类对象,计算每一个多边形的周长并且输出其边数和周长。原创 2023-05-30 18:39:28 · 3660 阅读 · 0 评论 -
【C++ | PTA】派生类使用基类的成员函数
(3)公有的成员函数print_age,功能是首先输出成员m_strName的值,然后输出“, age = ”,接着输出基类的数据成员m_nAgeBase的值。(1)整数类型的私有数据成员m_nWeightBase,表示Animal的体重;(4)公有成员函数get_weight,返回数据成员nWeightBase的值;(5)公有函数成员set_age,用指定形参初始化数据成员m_nAgeBase;(2)整数类型的保护数据成员m_nAgeBase,表示Animal的年龄;原创 2023-05-30 18:28:41 · 3785 阅读 · 0 评论 -
【C++ | PTA】狗的继承
完成两个类,一个类Animal,表示动物类,有一个成员表示年龄。一个类Dog,继承自Animal,有一个新的数据成员表示颜色,合理设计这两个类,使得测试程序可以运行并得到正确的结果。原创 2023-05-30 18:17:31 · 3613 阅读 · 0 评论 -
【C++ | PTA】数据的间距问题(重载+函数模板)
三个类如下设计:类cTime有三个数据成员,hh,mm,ss,分别代表时,分和秒,并有若干构造函数和一个重载-(减号)的成员函数。类point有两个数据成员,x,y分别坐标,并有若干构造函数和一个重载-(减号)的成员函数。类date有三个数据成员,year,month,day分别代表年月日,并有若干构造函数和一个重载-(减号)的成员函数。要求设计一个函数模板template \ double dist(T 该题结合重载与函数模板考察数据的间距问题,读者可躬身实践。我是秋说,我们下次见。原创 2023-05-29 23:23:48 · 3202 阅读 · 3 评论 -
【C++ | PTA】判断一个点是否在一个圆的内部
圆形有个成员函数isPointIn用于判断一个点是否在该圆形的内部。创建一个表示点的类Point,运用组合的方式创建圆形类。完成对应类代码,使得主函数可以正确运行。注意类的数值型数据成员类型为浮点型。在这里给出相应的输出。在这里给出一组输入。原创 2023-05-24 22:32:30 · 4152 阅读 · 1 评论 -
【C++ | PTA】矩阵的乘法运算
线性代数中的矩阵可以表示为一个row*column的二维数组,当row和column均为1时,退化为一个数,当row为1时,为一个行向量,当column为1时,为一个列向量。建立一个整数矩阵类matrix,其私有数据成员如下:该题考察矩阵乘法的基本概念,例如如何判断两个矩阵是否能够相乘如何实现矩阵乘法的核心计算操作等,读者可躬身实践。我是秋说,我们下次见。原创 2023-05-24 22:07:14 · 4843 阅读 · 0 评论 -
【C++ | PTA】时间相加
设计一个时间类,用来保存时、分、秒等私有数据成员,通过重载操作符+实现2个时间的相加。要求:(1)小时的时间范围限制在大于等于0;(2)分的时间范围为0-59分;(3)秒的时间范围为0-59秒。该题考察运算符重载的语法和规则及如何在类中定义运算符以支持自定义类型的操作,读者可躬身实践。我是秋说,我们下次见。原创 2023-05-23 22:28:47 · 4034 阅读 · 0 评论 -
【C++ | PTA】使用成员函数重载复数类的运算符+
参数com为复数类Complex的对象的引用,函数的返回值为当前对象与com对象相加后的值。以实现两个复数对象的相加操作。成员函数Show用来输出复数的实部和虚部。类Complex声明了一个复数类,有两个数据成员。,并定义了成员函数实现了重载运算符。原创 2023-05-23 22:10:55 · 3444 阅读 · 0 评论 -
【C++ | PTA】友元很简单2016final
C++考试正在进行。请设计一个学生类student,学号、本次考试成绩是其私有数据成员,同时有一个求本次考试成绩最高分的学生的友元函数 student* average(student *p,int count)输出是最高分学生的学号。提示:如果是并列最高分,需要将并列最高分学生的学号都输出,以一个空格间隔。输入是 学号([00001,99999])和成绩,以0结束。(不超过100个学生)以上类名和友元函数的形式,均须按照题目要求,不得修改。在这里给出相应的输出。在这里给出一组输入。原创 2023-05-23 22:01:57 · 2806 阅读 · 0 评论 -
【C++ | PTA】立方体类的实现
立方体类Box的实现,完成计算体积、计算表面积、输出结果等功能。立方体的体积和表面积,中间用一个空格隔开,末尾换行。立方体的边长,可以是float类型的数据。原创 2023-05-23 21:36:43 · 4364 阅读 · 0 评论 -
【C++ | PTA】2017final友元函数之全班同学的平均绩点
一个学生类,有三个私有成员:名字name、课程学分指针score、课程成绩指针grade。定义一个友元函数,求全班同学的平均绩点。单门课程的学分绩点=学分x绩点=学分x(成绩/10-5) ; 全班同学的平均绩点是 所有同学的全部课程的学分绩点之和/所有同学学分数之和。单个同学的课程数不超过100门。全班同学人数不超过100名。本题结合友元函数考察双重循环,读者可躬身实践。我是秋说,我们下次见。原创 2023-05-23 21:21:53 · 3685 阅读 · 0 评论 -
【C++ | PTA】神坛
凹包问题的难点在于如何确定多边形的形状和顶点,目前已经存在一些解决方案,包括基于 alpha 型和 beta 型形态学的方法、基于分割重组的方法、基于斯蒂尔-沃森(Stiel-Watson)统计的方法等等。先求出每个点的单位向量,根据单位向量在极坐标系下的极角从小到大排序,然后按照排序后的顺序依次加入点,如果当前点不是凸包上的点,则一直弹掉栈顶元素直到满足要求,最后栈内存储的即为凸包上所有的点。凹包算法定义:对于平面内的一组点,凸包是指这组点的凸多边形中,所有的顶点都是这组点中的点的集合。原创 2023-05-20 17:07:03 · 3121 阅读 · 0 评论 -
【C++ | PTA】直捣黄龙
输入第一行给出2个正整数N(2 ≤ N ≤ 200,城镇总数)和K(城镇间道路条数),以及己方大本营和敌方大本营的代号。随后N-1行,每行给出除了己方大本营外的一个城镇的代号和驻守的敌军数量,其间以空格分隔。当这样的路径不唯一时,要求选择可以沿途解放最多城镇的路径。按照题目要求找到最合适的进攻路径(题目保证速度最快、解放最多、杀伤最强的路径是唯一的),并在第一行按照格式己方大本营->城镇1->…第二行顺序输出最快进攻路径的条数、最短进攻距离、歼敌总数,其间以1个空格分隔,行首尾不得有多余空格。原创 2023-05-20 14:47:51 · 3358 阅读 · 0 评论 -
【C++ | PTA】关于深度优先搜索和逆序对的题应该不会很难吧这件事
令 r 为树 T 的根,调用 DFS(T, r, L) 即可完成对 T 的深度优先搜索,保存在链表 L 中的排列被称为 DFS 序。相信聪明的你已经发现了,如果枚举子节点的顺序不同,最终得到的 DFS 序也会不同。对于接下来的 (n−1) 行,第 i 行输入两个整数 ui 与 vi(1≤ui,vi≤n),表示树上有一条边连接节点 ui 与 vi。输出一行一个整数,表示该树所有可能的 DFS 序中逆序对数量之和。第一行输入两个整数 n,r(2≤n≤3×105,1≤r≤n)表示树的大小与根节点。原创 2023-05-20 12:51:03 · 3953 阅读 · 0 评论 -
【C++ | PTA】气球升起来
测试数据有多组,处理到文件尾。每组数据先输入一个整数n(0原创 2023-05-19 23:36:36 · 3218 阅读 · 0 评论 -
【C++ | PTA】Easy chemistry
在这道题目中,你需要编写一个简单的程序来判断给定的化学方程式是否平衡。平衡指的是等号两侧所含各元素的数量相等。对于每个测试用例,如果其对应的化学方程式平衡,则输出 “Easy!”,否则输出 “Hard!保证 S 只包含大写字母、小写字母、等号和加号,所有元素数量之和不会超过。接下来有 T 行,每行包含一个字符串 S。第一行包含一个整数 T。,表示测试用例的数量。,表示一个化学方程式。原创 2023-05-19 21:26:15 · 3794 阅读 · 0 评论 -
【C++ | PTA】鸿鸿哥分钱
鸿鸿哥最近和一个小伙伴做了个小项目,赚了一个亿,两人一起高高兴兴开了庆功宴之后,鸿鸿哥就准备分一下钱了。鸿鸿哥想了想,生意不是做一天的,所以一个亿之中的大部分资金还是要继续投资,不能只是做一发就走,这个想法也得到了小伙伴的认可。而鸿鸿哥原本也是土豪,这点小钱也看不上眼,于是他想分多一点给小伙伴,他决定把钱分成两个素数(程序员喜欢各种特别的数字),自己拿小的那份。鸿鸿哥想知道所有可能的分法。输入两个整数x,y(6原创 2023-05-19 20:43:07 · 3263 阅读 · 0 评论 -
【C++ | PTA】计算全班学生C++课程的总成绩和平均成绩
定义一个类Student,记录学生C++课程的成绩。要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩。输入5个不超过100的正整数,作为C++成绩。在第一行中输出成绩的和,第二行输出平均成绩。原创 2023-05-16 22:30:40 · 4385 阅读 · 0 评论 -
【C++ | C | PTA】复数类的操作
本文实现了一个简单的复数类,并基于该类的对象实现了加法和取反等运算,进行复数的基本计算。我是秋说,我们下次见。原创 2023-05-16 21:13:05 · 3422 阅读 · 0 评论 -
【C++ | PTA】地铁一日游
一般来说,地铁由若干个站点组成,并有多条不同的线路双向行驶,可类比公交车,当两条或更多条线路经过同一个站点时,可进行换乘,更换自己所乘坐的线路。为了获得最大的满足感,森森决定用以下的方式坐地铁:在某一站上车(不妨设为地铁站 A),则对于所有车费相同的到达站,森森只会在计费距离最远的站或线路末端站点出站,然后用森森美图 App 在站点外拍一张认证照,再按同样的方式前往下一个站点。 …原创 2023-05-15 12:42:04 · 3297 阅读 · 0 评论