C++ pta练习题
c++平时的学习练习题目汇总
碰嚓嚓
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
6-2 抽象类Shape (15分)
请编写一个抽象类Shape,包括两个纯虚函数,分别为计算面积getArea()和计算周长getPerim()。通过Shape类派生出矩形类Rectangle和圆类Circle,并计算各自的面积和周长。测试用例具体要求:输入1表示测试矩形类,之后输入矩形长和宽。输入2表示测试圆类,之后输入圆半径。#include <iostream>using namespace std;const double PI=3.14;class Shape { public: virtual dou原创 2020-05-22 21:05:58 · 5765 阅读 · 0 评论 -
6-1 表彰优秀学生(多态)
学期结束,班主任决定表彰一批学生,已知该班学生数在6至50人之间,有三类学生:普通生,特招运动员,学科专长生,其中学科专长生不超过5人。主函数根据输入的信息,相应建立GroupA, GroupB, GroupC类对象。GroupA类是普通生,有2门课程的成绩(均为不超过100的非负整数);GroupB类是特招运动员,有2门课程的成绩(均为不超过100的非负整数),1次运动会的表现分,表现分有:A、B、C、D共4等。GroupC类是学科专长生,有5门课程的成绩(均为不超过100的非负整数)。表彰人员原创 2020-05-22 21:02:26 · 2001 阅读 · 0 评论 -
5——7-4 日程安排(多重继承+重载) (40分)
已有一个日期类Date,包括三个protected成员数据int year;int month;int day;另有一个时间类Time,包括三个protected成员数据int hour;int minute;int second;现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员:int ID;//日程的IDbool operator < (const Schedule & s2);//判断当前原创 2020-05-12 22:28:49 · 3344 阅读 · 2 评论 -
5——7-3 学生CPP成绩计算 (30分)
给出下面的人员基类框架:class Person {protected: string name; int age;public: Person(); Person (string p_name, int p_age); void display () {cout<<name<<“:”<<age<<endl;}};建立一个派生类student,增加以下成员数据:int ID;//学号原创 2020-05-12 12:57:57 · 1850 阅读 · 0 评论 -
5——7-2 动物世界 (15分)
1、实现Mammal类的方法2、由Mammal类派生出Dog类,在Dog类中增加itsColor成员(COLOR类型)3、Dog类中增加以下方法:constructors: Dog()、Dog(int age)、Dog(int age, int weight)、Dog(int age, COLOR color)、 Dog(int age, int weight, COLOR color)、~Dog()accessors: GetColor()、SetColor()Other methods: Wa原创 2020-05-12 12:11:03 · 3154 阅读 · 0 评论 -
5——7-1 定义基类Point和派生类Circle,求圆的周长. (10分)
定义基类Point(点)和派生类Circle(圆),求圆的周长。Point类有两个私有的数据成员float x,y;Circle类新增一个私有的数据成员半径float r和一个公有的求周长的函数getCircumference();主函数已经给出,请编写Point和Circle类。#include <iostream>#include<iomanip>using namespace std;//请编写你的代码int main(){ float x,y,r;原创 2020-05-12 10:37:07 · 4238 阅读 · 0 评论 -
5——6-5 多重继承派生类构造函数 (10分)
根据所给的基类Student和Teacher,定义Graduate类类定义:#include <iostream>#include <string>using namespace std;class Teacher {public: Teacher(string nam,int a,string t) {name=nam;原创 2020-05-11 23:44:09 · 1989 阅读 · 2 评论 -
5——6-4 狗的继承 (10分)
完成两个类,一个类Animal,表示动物类,有一个成员表示年龄。一个类Dog,继承自Animal,有一个新的数据成员表示颜色,合理设计这两个类,使得测试程序可以运行并得到正确的结果。函数接口定义:按照要求实现类裁判测试程序样例:/* 请在这里填写答案 */int main(){ Animal ani(5); cout<<"age of ani:"<<ani.getAge()<<endl; Dog dog(5,"black"); cout<<原创 2020-05-11 23:27:56 · 3788 阅读 · 1 评论 -
5——6-3 学生派生类 (10分)
根据所给的类Student定义其派生类,并利用构造函数进行数据初始化,使程序能按照"样例"的格式进行输出#include <iostream>#include<string>using namespace std;class Student {public: Student(int n,string nam,char s )原创 2020-05-11 22:56:42 · 6337 阅读 · 0 评论 -
5——6-2 派生类的定义和使用 (10分)
按要求完成下面的程序:1、定义一个Animal类,包含一个void类型的无参的speak方法,输出“animal language!”。2、定义一个Cat类,公有继承自Animal类,其成员包括:(1)私有string类型的成员m_strName;(2)带参数的构造函数,用指定形参对私有数据成员进行初始化;(3)公有的成员函数print_name,无形参,void类型,功能是输出成员m_strName的值,具体输出格式参见main函数和样例输出。类和函数接口定义:参见题目描述。裁判测试程序样原创 2020-05-11 22:34:59 · 4665 阅读 · 0 评论 -
5——6-1 写出派生类构造方法(C++) (5分)
裁判测试程序样例中展示的是一段定义基类People、派生类Student以及测试两个类的相关C++代码,其中缺失了部分代码,请补充完整,以保证测试程序正常运行。函数接口定义:提示:观察类的定义和main方法中的测试代码,补全缺失的代码。裁判测试程序样例:注意:真正的测试程序中使用的数据可能与样例测试程序中不同,但仅按照样例中的格式调用相关函数。#include <iostream>using namespace std;class People{private: str原创 2020-05-11 22:21:59 · 3703 阅读 · 1 评论 -
7-1 复数类的运算 (20分)
根据以下代码段完善 ?? 处内容及程序内容,以实现规定的输出。class Complex{ public: Complex(double r=0, double i=0):real(r), imag(i){ } Complex operator+( ?? ) const;//重载双目运算符'+' Complex operator-=( ?? ); //重载双目运算符'-=' friend Complex operator-( ?? ) const;//重载双目运算符'-' void原创 2020-05-11 19:01:00 · 7372 阅读 · 1 评论 -
6-5 时间相加 (30分)
设计一个时间类,用来保存时、分、秒等私有数据成员,通过重载操作符“+”实现2个时间的相加。要求: (1)小时的时间范围限制在大于等于0;(2)分的时间范围为059分;(3)秒的时间范围为059秒。#include <iostream>using namespace std;class Time {private: int hours,minutes, seconds;public: Time(int h=0, int m=0, int s=0); Time operator +原创 2020-05-11 17:32:30 · 2648 阅读 · 0 评论 -
6-4 使用成员函数重载复数类的运算符+
类Complex声明了一个复数类,有两个数据成员realPart(代表复数的实部)和imgPart(代表复数的虚部),并定义了成员函数实现了重载运算符“+”以实现两个复数对象的相加操作。成员函数Show用来输出复数的实部和虚部。请完成对运算符“+”的重载操作。函数接口定义:Complex& Complex::operator+(Complex& com);参数com为复数类Complex的对象的引用,函数的返回值为当前对象与com对象相加后的值。裁判测试程序样例:#include&原创 2020-05-11 17:07:51 · 4064 阅读 · 3 评论 -
6-3 大整数求和(运算符重载) (15分)
BigInt类表示不超过100位的无符号大整数。试重载>>,<<和+,以支持无符号大整数的输入、输出与求和(假设结果仍是一个不超过100位的无符号大整数)。重载面向BigInt类对象的运算符:/>><<+裁判测试程序样例:#include <iostream>#include <string>using namespace std;/* 请在这里填写答案 */int main(){ BigInt a, b转载 2020-05-11 16:47:30 · 4719 阅读 · 0 评论 -
6-2 时钟模拟 (30分)
一个Time类,数据成员有时、分、秒。要求模拟秒表,每次走一秒,满60秒进位,秒又从零开始计数。满60分进位,分又从零开始计数。输出时、分和秒的值。(使用重载++运算符实现)时间类定义:class MyTime测试程序样例:/* 请在这里填写答案 */int main(){ MyTime t1,t2(23,59,59),t3; cin>>t3; ++t1; cout<<t1<<endl; ++t2; cout<<t2<<en原创 2020-05-11 11:02:11 · 3890 阅读 · 0 评论 -
6-1 学生成绩的输入和输出(运算符重载) (10分)
现在需要输入一组学生的姓名和成绩,然后输出这些学生的姓名和等级。输入时,首先要输入学生数(正整数)N。接着输入N组学生成绩,每组成绩包括两项:第一项是学生姓名,第二项是学生的成绩(整数)。输出时,依次输出各个学生的序号(从1开始顺序编号),学生姓名,成绩等级(不小于60为PASS,否则为FAIL)函数接口定义:面向Student类对象的流插入和流提取运算符#include <iostream>#include <string>using namespace std;原创 2020-05-11 10:25:12 · 7071 阅读 · 1 评论 -
6-9 学生成绩的快速录入(构造函数) (10分)
现在需要录入一批学生的成绩(学号,成绩)。其中学号是正整数,并且录入时,后录入学生的学号会比前面的学号大;成绩分两等,通过(Pass,录入时用1代表),不通过(Fail,录入时用0代表)。由于很多学号都是相邻的,并且学号相邻的学生成绩常常相同。所以在录入时,适当地加了速。如果当前学生的学号比前面的学号大1,且成绩与前面的成绩相同,则只输入0即可。类定义:完成Student类裁判测试程序样例...原创 2020-04-17 12:30:07 · 2453 阅读 · 0 评论 -
6-8 学生排名表(析构函数) (10分)
这是一个程序填空题现在输入一批学生(人数大于0且不超过100)的名次和他们的姓名。要求按名次输出每个人的排名。输入格式:每行为一个学生的信息,共两项,第一项为排名(为正整数,且任意两名学生的排名均不同),第二项为学生姓名。当输入-1时,表示输入结束。输出格式:按名次输出学生姓名,每行一个。函数接口定义:main函数的一部分。裁判测试程序样例:#include <iostream...原创 2020-04-08 13:24:27 · 2834 阅读 · 4 评论 -
6-7 体育俱乐部I(构造函数) (10分)
一个俱乐部需要保存它的简要信息,包括四项:名称(字符串),成立年份(整数),教练姓名(字符串)和教练胜率(0-100之间的整数)。用键盘输入这些信息后,把它们分两行输出:第一行输出名称和成立年份,第二行输出教练姓名和胜率。裁判测试程序样例:#include <iostream>#include <string>using namespace std;class C...原创 2020-04-08 13:52:35 · 1761 阅读 · 0 评论 -
7-7 求两点之间距离 (20分)
定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数。 定义一个函数Distance(), 用于求两点之间的距离。输入格式:输入有两行: 第一行是第一个点的x坐标和y坐标; 第二行是第二个点的x坐标和y坐标。输出格式:输出两个点之间的距离,保留两位小数。输入样例:0 9 3 -4输出样例:13.34#include<iostream>...原创 2020-04-02 17:21:23 · 5722 阅读 · 0 评论 -
7-3 类的定义和使用 (20分)
请定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干构造函数和一个移动的成员函数,可输出移动后新的坐标值。输入:第一行的两个数 分别表示 点的x坐标和y坐标。 第二行的两个数 分别表示 x和y方向移动的距离。输出:移动后的点的x坐标和y坐标。输入样例:1 52 5输出样例:3 10...原创 2020-04-01 22:00:15 · 2915 阅读 · 0 评论 -
7-2 例4-3游泳池改造预算 (20分)
例4-3一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。7a08ad96-69ef-42b8-9889-114a2010c7a0.png输入格式:输入一个整数或小数。输出格式:分两行输出:在第一行中输出栅栏的造价。在第二行输出过道的造价。输入样...原创 2020-04-01 22:01:43 · 7108 阅读 · 1 评论 -
7-1 立方体类的实现 (20分)
立方体类Box的实现,完成计算体积、计算表面积、输出结果等功能。其中给定的主函数为:int main( ){float ab;cin>>ab;Box obj;obj.seta( ab );obj.getvolume( );obj.getarea( );obj.disp( );return 0;}输入格式:立方体的边长,可以是float类型的数据。输出格式:...原创 2020-04-01 22:01:21 · 5493 阅读 · 0 评论
分享