在刚开始学习c++的时候刷了很多基础题,这些基础题比较适合初学C++的码友,所以在学完就立即进行了整理,一是为了让初学C++的码友有所参考,二也是为了复习一下所学过知识。
但因为当时在整理时,时间有点紧促,可能会出现一些小错误,于是利用五一假期对之前的文章进行检查,修改了一些小错误,可能有些错误我还没有发现,欢迎码友们对其指正。
以下六道题要用到类与对象中的封装,友元函数等基础知识,适合初学类与对象这部分的码友进行练习。
定义一个长方形类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
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,私有数据成员为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
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,私有数据成员为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
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,包括三个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
#include
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,包括三个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
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,成员数据为底圆半径r和圆柱高h,成员函数为构造函数,GetArea计算圆柱体的表面积,GetVolume计算圆柱体的体积。(注意π值取3.14)
main函数输入圆柱的半径和高,定义一个类对象,计算并输出圆柱的表面积和体积。
Sample Input
1.5 1.5
Sample Output
28.26 10.5975
#include
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;
}
大家好,我是Lucky_追梦仔。一个正在学习编程的小白,希望我的博文,可以帮助到您学习,或者解决您遇到的问题。