创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
c语言内容💖:
专栏:c语言之路重点知识整合
设计立方体类,求出立方体的面积和体积
分别用全局函数
和成员函数
判断两个立方体是否相等
一、创建立方体类
根据题目,先创建一个立方体类,属性有立方体的长、宽、高
并且为了实现“可控制的访问”,将属性的访问权限设置为private
如果直接设置成公有的,别人随意就能修改
class CCube //立方体类
{
private:
double m_L; //长
double m_W; //宽
double m_H; //高
CCube() //构造函数进行初始化
{
m_L = 0;
m_W = 0;
m_H = 0;
}
};
二、创建设置、获取属性的函数
根据立方体的属性长、宽、高
,创建对应的设置长、宽、高
和获取长、宽、高
的函数
访问权限为public
为了让类的使用者只能通过设计者提供的接口去修改类的属性
public:
//设置立方体的长宽高
void setCube(double L, double W, double H)
{
m_L = L;
m_W = W;
m_H = H;
}
//获取立方体的长
double getCube_L(CCube p_cube)
{
return p_cube.m_L;
}
//获取立方体的宽
double getCube_W(CCube p_cube)
{
return p_cube.m_W;
}
//获取立方体的高
double getCube_H(CCube p_cube)
{
return p_cube.m_H;
}
三、创建类行为函数
一个完整的类是由属性和行为共同组成的,接下来根据题目要求创建行为函数
- 计算立方体的体积
//计算体积
double getVolume()
{
return m_L * m_W * m_H;
}
- 计算立方体的表面积
//计算表面积
double getSquare()
{
return 2 * (m_L * m_W) + 2 * (m_L * m_H) + 2 * (m_W * m_H);
}
- 使用成员函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2)
{
if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2)
&& p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
{
cout << "根据成员函数判断:两个立方体相等!" << endl;
}
else
{
cout << "根据成员函数判断:两个立方体不相等!" << endl;
}
}
根据题目要求,在全局定义一个函数用来判断两个立方体是否相等
//全局函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2) //通过引用传递不会拷贝数据
{
if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2)
&& p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
{
cout << "根据全局函数判断:两个立方体相等!" << endl;
}
else
{
cout << "根据全局函数判断:两个立方体不相等!" << endl;
}
}
四、测试执行
在主函数中使用CCube
立方体类创建两个立方体对象,再通过调用类成员函数setCube()
设置立方体的长、宽、高
调用类成员函数getVolume()
计算体积,调用类成员函数getSquare()
计算表面积
根据题目要求分别使用类成员函数和全局函数判断两个立方体是否相等
int main()
{
CCube cube1;
cout << "请输入立方体1的长、宽、高: ";
double L1, W1, H1;
cin >> L1 >> W1 >> H1;
cube1.setCube(L1, W1, H1);
cout << "立方体1的体积是" << cube1.getVolume() << endl;
cout << "立方体1的表面积是" << cube1.getSquare() << endl << endl;
CCube cube2;
cout << "请输入立方体2的长、宽、高: ";
double L2, W2, H2;
cin >> L2 >> W2 >> H2;
cube2.setCube(L2, W2, H2);
cout << "立方体2的体积是" << cube2.getVolume() << endl;
cout << "立方体2的表面积是" << cube2.getSquare() << endl << endl;
cube1.same(cube1, cube2);
same(cube1, cube2);
return 0;
}
全部完整代码
#include <iostream>
#include <string>
using namespace std;
class CCube //立方体类
{
//这是为了要实现“可控制的访问”,直接设置成公有的,别人随意就能修改。
//是为了让类的使用者只能通过设计者提供的接口去修改类的属性
private:
double m_L; //长
double m_W; //宽
double m_H; //高
public:
//设置立方体的长宽高
void setCube(double L, double W, double H)
{
m_L = L;
m_W = W;
m_H = H;
}
//获取立方体的长
double getCube_L(CCube p_cube)
{
return p_cube.m_L;
}
//获取立方体的宽
double getCube_W(CCube p_cube)
{
return p_cube.m_W;
}
//获取立方体的高
double getCube_H(CCube p_cube)
{
return p_cube.m_H;
}
//计算体积
double getVolume()
{
return m_L * m_W * m_H;
}
//计算表面积
double getSquare()
{
return 2 * (m_L * m_W) + 2 * (m_L * m_H) + 2 * (m_W * m_H);
}
//成员函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2)
{
if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2) && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
{
cout << "根据成员函数判断:两个立方体相等!" << endl;
}
else
{
cout << "根据成员函数判断:两个立方体不相等!" << endl;
}
}
CCube()
{
m_L = 0;
m_W = 0;
m_H = 0;
}
};
//全局函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2) //通过引用传递不会拷贝数据
{
if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2) && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
{
cout << "根据全局函数判断:两个立方体相等!" << endl;
}
else
{
cout << "根据全局函数判断:两个立方体不相等!" << endl;
}
}
int main()
{
CCube cube1;
cout << "请输入立方体1的长、宽、高: ";
double L1, W1, H1;
cin >> L1 >> W1 >> H1;
cube1.setCube(L1, W1, H1);
cout << "立方体1的体积是" << cube1.getVolume() << endl;
cout << "立方体1的表面积是" << cube1.getSquare() << endl << endl;
CCube cube2;
cout << "请输入立方体2的长、宽、高: ";
double L2, W2, H2;
cin >> L2 >> W2 >> H2;
cube2.setCube(L2, W2, H2);
cout << "立方体2的体积是" << cube2.getVolume() << endl;
cout << "立方体2的表面积是" << cube2.getSquare() << endl << endl;
cube1.same(cube1, cube2);
same(cube1, cube2);
return 0;
}
大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。 |
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●) |