类与对象练习题(二)---Rectangle/Triangle/Cylinder类

我是计算机专业的一位大一本科生,C++小白,下面是我们学校在学习C++时用的基础练习题,我感觉这些题比较适合初学C++的码友,所以利用空闲时间将这些题整理出来,一是为了让初学C++的码友有所参考,二也是为了复习一下所学过知识。(因准备急促,如有代码错误,还请各位码友指正。)

Rectangle类01

定义一个长方形类Rectangle,私有数据成员为double型width、height(表示长方形的宽和高),成员函数包括构造函数Rectangle(用于实现对数据成员width、height的初始化)、成员函数GetArea(计算并返回长方形的面积)。

//main函数如下(不得修改main函数):
int main()
{
    
    
       double width,height;
       cin>>width>>height;
       Rectangle r1;
       cout<<r1.GetArea()<<endl;
       Rectangle r2(width,height);
       cout<<r2.GetArea()<<endl;
       return 0;
}

Sample Input
10.2 25.5
Sample Output
0
260.1

#include<iostream>
using namespace std;
class Rectangle
{
    
    
public:
    Rectangle(double width = 0, double height = 0);
    double GetArea();
private:
    double m_width;
    double m_height;
};
Rectangle::Rectangle(double width, double height)
{
    
    
    m_width = width;
    m_height = height;
}
double Rectangle::GetArea()
{
    
    
    return m_width * m_height;
}
int main()
{
    
    
    double width, height;
    cin >> width >> height;
    Rectangle r1;
    cout << r1.GetArea() << endl;
    Rectangle r2(width, height);
    cout << r2.GetArea() << endl;
    return 0;
}

Rectangle类02

定义一个长方形类Rectangle,私有数据成员为double型width、height(表示长方形的宽和高),成员函数包括构造函数Rectangle(用于实现对数据成员width、height的初始化,默认宽和高都为10)、成员函数(GetArea计算并返回长方形的面积)、成员函数Expand(用于实现对数据成员width、heigh的值膨胀整数n倍 )。

//main函数如下(不得修改main函数):
int main()
{
    
    
       double width,height;
       int n;
       cin>>width>>height;
       cin>>n;
       Rectangle r1;
       cout<<r1.GetArea()<<endl;
       Rectangle r2(width,height);
       cout<<r2.GetArea()<<endl;
       r2.Expand(n);
       cout<<r2.GetArea()<<endl;
       return 0;
}

Sample Input
10.2 25.5 3
Sample Output
100
260.1
2340.9

#include<iostream>
using namespace std;
class Rectangle
{
    
    
public:
    Rectangle(double width = 10, double height = 10);
    double GetArea();
    void Expand(int n);
private:
    double m_width;
    double m_height;

};
Rectangle::Rectangle(double width, double height)
{
    
    
    m_width = width;
    m_height = height;
}
double Rectangle::GetArea()
{
    
    
    return m_width * m_height;
}
void Rectangle::Expand(int n)
{
    
    
    m_width = m_width * n;
    m_height = m_height * n;
}
int main()
{
    
    
    double width, height;
    int n;
    cin >> width >> height;
    cin >> n;
    Rectangle r1;
    cout << r1.GetArea() << endl;
    Rectangle r2(width, height);
    cout << r2.GetArea() << endl;
    r2.Expand(n);
    cout << r2.GetArea() << endl;
    return 0;
}

Rectangle类03

定义一个长方形类Rectangle,私有数据成员为double型width、height表示长方形的宽和高),成员函数包括构造函数Rectangle(用于实现对数据成员width、height的初始化,默认宽和高都为10)、成员函数GetArea(计算并返回长方形的面积)。
main函数中输入两组宽和高,用于实例化两个类对象R1,R2,判断两个长方形R1、R2面积的大小。

程序执行时:
输入1.5 1.1 3.3 2输出1.65<6.6
输入 3 5 3 5输出15=15
输入3.5 2.0 1.8 1.1 则输出为7>1.98
#include<iostream>
using namespace std;
class Rectangle
{
    
    
public:
	Rectangle(double width = 10, double height = 10);
	double GetArea();
private:
	double m_width;
	double m_height;
};
Rectangle::Rectangle(double width, double height)
{
    
    
	m_width = width;
	m_height = height;
}
double Rectangle::GetArea()
{
    
    
	return m_width * m_height;
}
int main()
{
    
    
	double w1, h1, w2, h2;
	cin >> w1 >> h1 >> w2 >> h2;
	Rectangle R1(w1, h1);
	Rectangle R2(w2, h2);
	if (R1.GetArea() == R2.GetArea())
		cout << R1.GetArea() << "=" << R2.GetArea()<< endl;
	else if (R1.GetArea()>R2.GetArea())
		cout << R1.GetArea() << ">" << R2.GetArea() << endl;
	else
		cout << R1.GetArea() << "<" << R2.GetArea() << endl;
	return 0;
}

Triangle类01

定义一个三角形类Triangle,包括三个double型数据成员a、b和c表示三角形的三条边,成员函数包括构造函数、IsTriangle、GetArea。构造函数用于实现对数据成员的初始化;成员函数IsTriangle判断三条边是否构成三角形,成员函数GetArea返回三角形的面积。main函数中输入两组三角形的边长,用这两组边长实例化两个三角形类对象T1,T2,若T1、T2均能构成三角形,则输出两个三角形面积之和,否则输出failure。

输入:3 4 5 6 8 10 输出:30
输入:3 4 5 6 7 8  输出:26.3332
输入:1 2 0 3 4 5  输出:failure

Sample Input
3 4 5 6 7 8
Sample Output
26.3332

#include<iostream>
#include<cmath>
using namespace std;
class Triangle
{
    
    
public:
	Triangle(double a, double b, double c);
	bool IsTriangle();
	double GetArea();
private:
	double m_a;
	double m_b;
	double m_c;
};
Triangle::Triangle(double a, double b, double c)
{
    
    
	m_a = a;
	m_b = b;
	m_c = c;
}
bool Triangle::IsTriangle()
{
    
    
	if (m_a + m_b > m_c && m_b + m_c > m_a && m_c + m_a > m_b)
		return true;
	else
		return false;
}
double Triangle::GetArea()
{
    
    
	double s;
	s = (m_a + m_b + m_c) / 2;
	return sqrt(s * (s - m_a) * (s - m_b) * (s - m_c));//海伦公式
}
int main()
{
    
    
	double a1,b1, c1, a2, b2, c2;
	cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;
	Triangle T1(a1, b1, c1);
	Triangle T2(a2, b2, c2);
	if (T1.IsTriangle() && T2.IsTriangle())
		cout << T1.GetArea() + T2.GetArea() << endl;
	else
		cout << "failure" << endl;
	return 0;
}

Triangle类02

定义一个三角形类Triangle,包括三个double型数据成员a、b和c表示三角形的三条边,成员函数包括构造函数、IsTriangle,GetPerimeter。构造函数用于实现对数据成员的初始化;成员函数IsTriangle判断三条边是否构成三角形,成员函数GetPerimeter返回三角形的周长。main函数中输入两组三角形的边长,用这两组边长实例化两个三角形类对象T1,T2,若T1、T2均能构成三角形,则输出两个三角形周长之差,否则输出failure。

输入:3 4 5 6 8 10 输出: -12
输入:3 4 5 6 7 8  输出:-9
输入:1 2 0 3 4 5  输出:failure

Sample Input
3 4 5 6 7 7.5
Sample Output
-8.5

#include<iostream>
using namespace std;
class Triangle
{
    
    
public:
	Triangle(double a, double b, double c);
	bool IsTriangle();
	double GetPerimeter();
private:
	double m_a;
	double m_b;
	double m_c;
};
Triangle::Triangle(double a, double b, double c)
{
    
    
	m_a = a;
	m_b = b;
	m_c = c;
}
bool Triangle::IsTriangle()
{
    
    
	if (m_a + m_b > m_c && m_b + m_c > m_a && m_a + m_c > m_b)
		return true;
	else
		return false;
}
double Triangle::GetPerimeter()
{
    
    
	return m_a + m_b + m_c;
}
int main()
{
    
    
	double a1, b1, c1, a2, b2, c2;
	cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2;
	Triangle T1(a1, b1, c1);
	Triangle T2(a2, b2, c2);
	if (T1.IsTriangle() && T2.IsTriangle())
		cout << T1.GetPerimeter() - T2.GetPerimeter() << endl;
	else
		cout << "failure" << endl;
	return 0;
}

Cylinder类

定义一个圆柱类Cylinder,成员数据为底圆半径r和圆柱高h,成员函数为构造函数,GetArea计算圆柱体的表面积,GetVolume计算圆柱体的体积。(注意π值取3.14)
main函数输入圆柱的半径和高,定义一个类对象,计算并输出圆柱的表面积和体积。
Sample Input
1.5 1.5
Sample Output
28.26 10.5975

#include<iostream>
using namespace std;
const double PI = 3.14;
class Cylinder
{
    
    
public:
	Cylinder(double r, double h);
	double GetArea();
	double GetVolume();
private:
	double m_r;
	double m_h;
};
Cylinder::Cylinder(double r, double h)
{
    
    
	m_r = r;
	m_h = h;
}
double Cylinder::GetArea()
{
    
    
	return 2 * PI * m_r * m_r + 2 * PI * m_r * m_h;
}
double Cylinder::GetVolume()
{
    
    
	return  PI * m_r * m_r * m_h;
}
int main()
{
    
    
	double r, h;
	cin >> r >> h;
	Cylinder C1(r, h);
	cout << C1.GetArea() << " " << C1.GetVolume() << endl;
	return 0;
}

这六道题要用到类与对象中的封装友元函数等基础知识,适合初学类与对象这部分的码友进行练习。

猜你喜欢

转载自blog.csdn.net/Archie20/article/details/113744853
今日推荐