自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 c++面向对象 期末试题练习

一、单项选择题(本大题共10小题,每小题2分,共20分)

2022-06-12 18:32:49 1878 5

原创 《面向对象程序设计C++》期末考试试卷

2022-06-12 17:27:13 1099

原创 23.试定义TR1(三角形)及其派生类COL(三角柱).

#include<iostream>using namespace std;#include<math.h>class RT1{private: double x, y, z;public: RT1(double x, double y, double z) { this->x = x; this->y = y; this->z = z; } virtual double area() { double s = (x ...

2022-05-26 12:10:36 1269

原创 19.试定义一个类STR,实现判断一个字符串是否为合法的C++标识符。

19.试定义一个类STR,实现判断一个字符串是否为合法的C++标识符。C++的标识符只能由数字、字母和下划线构成,且首字符不能为数字字符。要求如下:(1)私有数据成员char*s;待判断的字符串。 int yn;存储判断结果。(2) 公有成员函数STR(char*t):构造函数,初始化私有的数据成员。~STRO:析构函数:释放对象存储矩阵时所用内存空间。 intalph(charc):判断字符c是否为英文字母。intnum(charc):判断字符c是否为数字字符。 voidprint():按..

2022-05-25 12:40:01 1427

原创 17.重载运算符“^”实现数组各对应元素相乘方。

17.重载运算符“^”实现数组各对应元素相乘方。如:a[3]={2,2,2},b[3]={3,3,3},则a^b={8,8,8}。具体要求如下:(1)私有数据成员: int a[3];(2)公有成员函数:构造函数:初始化数据成员;重载运算符“^”的友元函数:void print():输出数组成员的函数;(3)在主函数中定义对象t1(以数组a作参数)、t2(以数组b作参数)和t3(无参),通过语句“t3=t1^t2;’对类进行测.#include<iostream>usin..

2022-05-25 09:45:43 312

原创 16.定义一维数组类Array,成员数组使用动态内存。重载自增和自减运算符(前置、后置)实现数组元.

16.定义一维数组类Array,成员数组使用动态内存。重载自增和自减运算符(前置、后置)实现数组元素的自增和自减。具体要求如下:(1)私有数据成员:int *p; //int n; //一维数组的大小(2)公有成员函数:构造函数:初始化数据成员;拷贝构造函数重载前置自增的成员函数; 重载后置自增的成员函数; 重载前置自减的友元函数; 重载后置自减的友元函数:void print():输出数组成员的函数; 析构函数:释放动态内存;若有必要可增加其它成员函数。(3)以数组“{1,2,3,4,..

2022-05-23 11:19:07 424

原创 15.把描述直角坐标系上的一个点的类作为基类,派生出描述一条直线的类和描述一个三角形的类.

15.把描述直角坐标系上的一个点的类作为基类,派生出描述一条直线的类和描述一个三角形的类。定义成员函数求出两点间的距离和三角形的面积。提示:先定义描述点的类Point;类Point的派生类Line为直线类,一直线有两个端点,所以它在点类的基础上新增一组点的坐标(x2,y2);三角形类T在直线的基础上再新增一组点的坐标(x3,y3),求出三角形的面积。具体要求如下,(1)定义点类Point int xl,y1://保护的数据成员(点坐标) 公有构造函数 Point(int aint b): /...

2022-05-22 13:42:16 1774

原创 14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。

14.利用虚函数实现多态性来求正方体、球体和圆柱体的表面积和体积。具体要求如下,从正方体、球体和圆柱体的各种运算中抽象出一个公共基类container为抽象类,在其中定义求表面积和体积的纯虚函数(该抽象类本身是没有表面积和体积可言的)。在抽象类中定义一个公共的数据成员radius,此数据可作为球的半径、正方体的边长、圆柱体底面圆半径。由此抽象类派生出要描述的3个类,即cube、snhere和cvlinder,在这3个类中都具有求表面积和体积的重定义版本。#include<iostre

2022-05-22 13:08:01 1694

原创 7-3 用虚函数计算各种图形的面积

7-3 用虚函数计算各种图形的面积定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,输出它们的面积和。要求用基类指针数组,每一个数组元素指向一个派生类的对象。PI=3.14159f,单精度浮点数计算。输入格式:输入在一行中,给出9个大于0的数,用空格分隔,分别代表圆的半径,正方形的边长,矩形的宽和高,梯形的上底、下底和高,三角形的

2022-05-21 16:46:20 2535

原创 7 - 1 马会飞

7 - 1 马会飞已知Horse类是Pegasus类的父类,根据以下主函数完善程序内容,以实现规定的输出。不允许改变主函数的内容#include<iostream>using namespace std;class Horse{public: Horse() { cout << "Horse 申请了空间..." << endl; } virtual void Fly() { cout.

2022-05-21 16:04:46 399

原创 7-2 动物爱吃什么?

7-2 动物爱吃什么1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name;public成员函数:getnum( )用于获取其编号,getname( )用于获取其名称和一个纯虚函数eat( ),以及构造函数。2.由animal类派生出狗类Dog和猫类Cat,每个类中均有自己的构造函数,根据输出结果设计这两个类并在主函数中完成设计类的输出测试3.要求在主函数中必须使用基类指针调用虚函数eat( ).输入格式:输入两行,每一.

2022-05-21 16:03:10 1502

原创 12.定义一个集合类SET,处理整型数组。

12.定义一个集合类SET,处理整型数组。通过成员函数重载运算符“==”,判断一个数是否属于集合;通过友元重载运算符“==”,判断两个集合是否相同,即集合中的所有元素相同,但顺序可不同。具体要求如下:(1)私有数据成员:int *a; //数据成员,存放整型数组,集合为数组中的所有元素int len; //数据成员,数组的长度(2)公有成员函数:SET(int*p,intn):构造函数,以形参初始化数据成员;int operator==(intm):重载函数,判断m是否属于当前对象所属的集..

2022-05-18 11:35:13 1258

原创 建立一个类StringInteger,把一个字符串中的数字字符转换为正整数。

11.建立一个类StringInteger,把一个字符串中的数字字符转换为正整数。具体要求如下:(1)私有数据成员char*s:用动态空间存放字符串。(2)公有成员函数String Integer(char*str):用参数str初始化数据成员s。operator int():转换函数,数据成员s转换整数并返回该数。 void show():输出数据成员s。~String Integer():释放动态空间。(3)在主函数中对定义的类进行测试。定义字符数组,把由键盘输入的字符串“ab12 3c

2022-05-15 16:26:20 617 1

原创 定义一个数组类Array,实现二维数组的旋转.

定义一个数组类Array,实现二维数组的旋转。通过重载正号运算符“ + ”,顺时针旋转 90°,即使元素b[1]li]变成b[i[M - 1 - i]; 通过重载负号运算符“ - ”,逆时针旋转90°,即使元素b[i][i]变成b[M - 1 - j][i]。具体要求如下:(1)私有数据成员:int b[M][M]; //数据成员,存放数组(2)公有成员函数:Array(int(*p)[M]) : 构造函数,以形参初始化数据成员; void operator +() : 重载函数,使数组顺时...

2022-05-15 13:22:24 1037

原创 7.试定义RECT类(长方形)及其派生类CUB(长方体)

7.试定义RECT类(长方形)及其派生类CUB(长方体),具体要求如下:(1)类RECT的成员如下:(a)保护数据成员double x,y;分别表示长方形的长和宽。(b)公有成员函数RECT(double x1,doubley1);构造函数,分别用x1、y1初始化x和y。virtual double area):虚函数,计算长方形的面积,计算公式:面积=长x宽。double peri();计算长方形的周长。计算公式:周长=2x长+2x宽。virtual int isSquare):虚函数,判断是.

2022-05-15 09:21:58 2854

原创 设计评选优秀教师和优秀学生候选人的程序。

设计评选优秀教师和优秀学生候选人的程序。如果学生的分数大于90,则可评为优秀生;如果教师发表的论文数大于 3,则可评为优秀教师。具体要求如下:(1)定义基类Base:①保护数据成员char name[8]; //存放姓名int num; //存放分数或论文数②公有成员函数Base():构造函数,输入姓名;void print):功能函数,输出数据成员;virtual int Isgood()=0:纯虚函数,用于判断是否满足条件;(2)由基类派生学生类Student,定义公有成员函数:..

2022-05-14 17:00:38 1667

原创 对于一个有正数和负数的数组,将其中所有小于0的元素放到所有大于0的元素的前面

对于一个有正数和负数的数组,将其中所有小于0的元素放到所有大于0的元素的前面。使用的算法是:从左右两个方向扫描数组,从左向右找到大于等于0的元素,从右向左找到小于0的元素,将两者交换。依此类推,直到扫描完为止。试建立一个类ARR,完成上述工作。具体要求如下:(1)私有数据成员。int n:数组实际元素个数。int a[100]:初始时存放原始数组,最终存放交换后的数组。(2)公有成员函数。ARR(intx[],intsize):构造函数,用参数size初始化n,用x数组初始化a数组.void c

2022-05-14 15:38:06 661

原创 7-2 +、-、*、/运算符重载

7-2 +、-、*、/运算符重载编写程序实现+ - * / 运算符重载,主要功能如下:1、实现两复数(c1与c2)的加减乘除运算2、实现复数c1与整数num的加减乘除运算3、实现整数num与复数c1的加减乘除运算输入格式:c1实部 c1虚部c2实部 c2虚部整数num具体格式见样例输出格式:c1+c2结果c1-c2结果c1c2结果c1/c2结果c1+num结果c1-num结果c1num结果c1/num结果num+c1结果num-c1结果num*c1结果num/c1

2022-05-14 12:16:51 1496 1

原创 7-1 复数类的操作

7-1 复数类的操作1、声明一个复数类Complex(类私有数据成员为double型的real和image)2、定义构造函数,用于指定复数的实部与虚部。3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。4定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。5、编写加法友元函数,以复数对象c1,c2为参数,求两个复数对象相加之和。6、主程序实现:(1)读入两个实数,用于初始化对象c1。(2)读入两个实数,用于初始化对象c2。

2022-05-14 11:31:35 2641

原创 1021 个位数统计

#include<iostream>using namespace std;#include<string>int main(){ string str; cin >> str; int a = str.length(); int arr[10] = { 0,0,0,0,0,0,0,0,0,0 }; for (int i = 0; i < a; i++) { switch (str[i] - '0') { case 0: ...

2022-05-08 13:50:38 150

原创 设计基类Person和其派生类用户类User

设计基类Person和其派生类用户类User设计一个基类Person,三个私有成员变量包括Name(姓名),Age(年龄)等成员变量,构造函数包括缺省构造函数和二参数构造函数,缺省构造函数下将Name设为“XXX”,Age设为18,二参数构造函数按照实际的值对成员变量初始化,show_person()函数用来显示Name(姓名),Age(年龄)的内容。 设计一个用户类User,由Person基类公有继承而来,新增的成员变量包括Address(用户地址),MobilePhone(手机号码),ID(身份证

2022-04-29 15:05:04 1250

原创 7-1 A是A1的虚基类

本题目要求读入3个整数A、B和C,然后按照下列要求完成相关设计:1.定义一个基类A,在其中包含保护的数据成员int i,设计类A的带参构造函数对i进行初始化,定义成员函数display()显示i值; 2.定义基类A的公有派生类A1,且A是A1的虚基类;A1中包含保护的数据成员int j,设计类A1的构造函数; 3.定义基类A的公有派生类A2,且A是A2的虚基类;A2中包含保护的数据成员int k,设计类A2的构造函数; 4.定义类A3,A3是A1和A2以多继承方式生成的公有派生类,设计类A3的构造函数;定义

2022-04-29 13:03:16 876

原创 6-2 汽车类的继承

根据给定的汽车类vehicle(包含的数据成员有车轮个数wheels和车重weight)声明,完成其中成员函数的定义,之后再定义其派生类并完成测试。小车类car是它的派生类,其中包含载人数passenger_load。每个类都有相关数据的#include<iostream>using namespace std; class Vehicle { protected: int wheels; float weight; publ

2022-04-29 12:44:03 691

原创 6-1 多重继承派生类构造函数

6-1 多重继承派生类构造函数分数 20根据所给的基类Student和Teacher,定义Graduate类类定义:#include <iostream>#include <string>using namespace std;class Teacher {public: Teacher(string nam,int a,strin

2022-04-29 12:22:21 845

原创 打印杨辉三角 (20 分)

打印杨辉三角 (20 分)本题要求按照规定格式打印前N行杨辉三角。输入格式:输入在一行中给出N(1≤N≤10)。输出格式:以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。输入样例:6输出样例: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1#include<iostream>#include&lt...

2022-04-27 20:21:37 1012

原创 【无标题】

判断上三角矩阵 (15 分)上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线本题要求编写程序,判断一个给定的方阵是否上三角矩阵。输入格式:输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。输出格式:每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。输入样例:331 2 30 4 50 0 62

2022-04-27 20:18:39 78

原创 7-12 计算天数

本题要求编写程序计算某年某月某日是该年中的第几天。输入格式:输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。输出格式:在一行输出日期是该年中的第几天。输入样例1:2009/03/02输出样例1:61输入样例2:2000/03/02输出样例2:62#include<iostream>using namespace std;int ma

2022-04-27 20:17:13 529

原创 7-11 求矩阵各行元素之和 (15 分)

7-11 求矩阵各行元素之和 (15 分)本题要求编写程序,求一个给定的m×n矩阵各行元素之和。输入格式:输入第一行给出两个正整数m和n(1≤m,n≤6)。随后m行,每行给出n个整数,其间以空格分隔。输出格式:每行输出对应矩阵行元素之和。输入样例:3 26 31 -83 12输出样例:9-715#include<iostream>using namespace std;int main(){ int n; int m; cin >> n

2022-04-27 20:13:07 558

原创 求矩阵的局部极大值 (15 分)

求矩阵的局部极大值 (15 分)给定M行N列的整数矩阵A,如果A的非边界元素A[i][j]大于相邻的上下左右4个元素,那么就称元素A[i][j]是矩阵的局部极大值。本题要求给定矩阵的全部局部极大值及其所在的位置。输入格式:输入在第一行中给出矩阵A的行数M和列数N(3≤M,N≤20);最后M行,每行给出A在该行的N个元素的值。数字间以空格分隔。输出格式:每行按照“元素值 行号 列号”的格式输出一个局部极大值,其中行、列编号从1开始。要求按照行号递增输出;若同行有超过1个局部极大值,则该行按列号

2022-04-27 20:11:15 1036

原创 7-36 IP地址转换

7-36 IP地址转换一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:11001100100101000001010101110010输出样例:204.148.21.114虽然代码长了点但是感觉挺好理解的#i

2022-04-27 20:04:47 264

原创 7-41 数组元素循环右移问题 (20 分)

7-41 数组元素循环右移问题 (20 分)一个数组A中存有N(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0​A1​⋯AN−1​)变换为(AN−M​⋯AN−1​A0​A1​⋯AN−M−1​)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N(1≤N≤100)和M(≥0);第2行输入N个整数,之间用空格分隔。输出格式:在一行中输

2022-04-24 09:12:45 1745

原创 学生信息输入输出 (10 分)

学生信息输入输出 (10 分)根据给出的基类,定义派生类,完成学生信息的输入输出(参见输入输出样例)基类定义:#include <iostream> #include <string> using namespace std; class Student {public: void get_value() {cin>>num>>name>>sex;} void display( ) {cout<<"num: "&..

2022-04-23 21:17:34 618

原创 学生派生类 (12 分)

学生派生类 (12 分)根据所给的类Student定义其派生类,并利用构造函数进行数据初始化,使程序能按照"样例"的格式进行输出类定义:#include <iostream> #include<string> using namespace std; class Student {public: Student(int n,string nam,char s ) {num=n; name=nam; sex=s; } ~Student( ) { } protecte

2022-04-23 21:08:15 1127

原创 派生类使用基类的成员函数 (15 分)

派生类使用基类的成员函数 (15 分)按要求完成下面的程序:1、定义一个Animal类,成员包括:(1)整数类型的私有数据成员m_nWeightBase,表示Animal的体重;(2)整数类型的保护数据成员m_nAgeBase,表示Animal的年龄;(3)公有函数成员set_weight,用指定形参初始化数据成员nWeightBase;(4)公有成员函数get_weight,返回数据成员nWeightBase的值;(5)公有函数成员set_age,用指定形参初始化数据成员m_nAgeBase

2022-04-23 20:53:34 3474

原创 定义基类Point和派生类Circle,求圆的周长. (16 分)

定义基类Point和派生类Circle,求圆的周长. (16 分)定义基类Point(点)和派生类Circle(圆),求圆的周长。Point类有两个私有的数据成员float x,y;Circle类新增一个私有的数据成员半径float r和一个公有的求周长的函数getCircumference();主函数已经给出,请编写Point和Circle类。#include <iostream>#include<iomanip>using namespace std;//请编写你

2022-04-23 19:58:08 3185

原创 矩阵运算 (20 分)

矩阵运算 (20 分)给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。输入格式:输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。输出格式:在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。输入样例:42 3 4 15 6 1 17 1 8 11 1 1 1输出样例:35//总的来说这道题不能 需要你观察一下副对角线的规律#inclu

2022-04-23 14:08:05 665

原创 7-34.矩阵A乘以B (15 分)

矩阵A乘以B (15 分)给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、C b列,则只有C a与R b相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。输出格式:若输入的两个矩阵的规模是匹配的,则按照输入的格式输出

2022-04-23 14:05:05 501

原创 7-30 组个最小数 (20 分)

给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1、……数字9的个数。整数间用一个空格分隔。10个数字的总个数不超过50,且至少拥有1个非0的数字。输出格式:在一行中输出能够组成的最小的数。输入样例:2 2 0

2022-04-22 20:15:32 78

原创 通过指针,输出对象数组的数据

通过指针,输出对象数组的数据 (15 分)设计一个类,主函数中建立一个对象数组,输入5个学生数据(学号、成绩),用对象指针指向数组首元素,输出5个学生的数据。输入格式:输入5个学生数据(学号、成绩),学号为不超过10000的正整数,成绩为0-100的正整数。输出格式:按顺序输出学生的学号和成绩,每行显示一个学生的信息。输入样例:在这里给出一组输入。例如:101 90102 80103 70104 60105 50输出样例:在这里给出相应的输出。例如:101 90102 80

2022-04-21 13:35:16 2375

原创 输出最大值 (15 分

输出最大值 (15 分)根据给定的程序,写成相关的成员函数,完成指定功能。函数接口定义:定义max函数,实现输出最高#include <iostream>using namespace std;class Student{public: Student(int n, float s) :num(n), score(s) {} int num; float score;};int main(){ Student stud[5] = { Student(101

2022-04-21 13:33:50 427

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除