C++代码编程学习(2):类和对象封装部分的两个案例-立方体与点圆位置

C++类与对象 封装的学习 挺有趣的!

一、前言

  昨日有点事忙了些,今天把昨天学习的两个案例给整理一下,C++确实比较原始基础,在学习过程中需要好好总结分析与记录。

二、效果展示

  • 案例一:设计立方体
    立方体的面积和体积
    用成员函数的方法判断两个立方体是否相等
    C++代码编程学习(2):类和对象封装部分的两个案例-立方体与点圆位置_第1张图片

  • 案例二:点圆位置(这个照片不太有趣~)
    设计一个圆形类 和 一个点类 计算二者之间的位置关系
    在这里插入图片描述

三、实现步骤

  1. 设计立方体
    创建立方体类,之后在成员函数中添加有关立方体边长的判断方法。
  2. 点圆位置
    先创建点类,再创建圆类,之后位置判断函数,这里初次尝试使用 .h 和 .cpp 文件布局设置。

注意,C++代码编程的基本规则,小括号啊!花括号啊!分号啊!不要漏掉。

五、编码实现

  1. 设计立方体
#include 
#include
using namespace std;

class cube {
public:
	void setABC(int a,int b,int c) {
		m_a=a; m_b=b;m_c = c;
	}

	int getArea() {
		return 2*m_a*m_b+2*m_a*m_c+2*m_b*m_c;
	}

	int getVolume() {
		return m_a * m_b * m_c;
	}

	bool isSame(cube& c1) {
		if (c1.m_a==m_a && c1.m_b==m_b && c1.m_c==m_c) return true;
		else return false;
	}

private:
	int m_a, m_b, m_c;

};



int main() {
	cube c1,c2;
	c1.setABC(10, 10, 10);
	c2.setABC(10, 10, 10);
	cout << "立方体的面积为: " <<  c1.getArea() << endl;
	cout << "立方体的体积为: " << c1.getVolume() << endl;
	if (c2.isSame(c1)) cout << "两个cube一样" << endl;
	else cout << "两个cube不一样" << endl;
	system("pause");
	return 0;
}
  1. 点圆位置
  • 布局文件
    C++代码编程学习(2):类和对象封装部分的两个案例-立方体与点圆位置_第2张图片
  • 头文件1:circle.h
#pragma once
#include 
#include "point.h"
using namespace std;

class circle {
public:
	void setCenter(point c);
	void setRadius(int r);
	int getCenterX();
	int getCenterY();
	int getRadius();
private:
	point center;
	int radius;
};

  • 头文件2:point.h
#pragma once
#include
using namespace std;

class point {
public:
	void setPx(int x);
	void setPy(int y);
	int getPx();
	int getPy();
private:
	int px, py;
};
  • 源文件1:circle.cpp
#include "point.h"
#include "circle.h"


void circle::setCenter(point c) { center = c; }
void circle::setRadius(int r) { radius = r; }
int circle::getCenterX() { return center.getPx(); }
int circle::getCenterY() { return  center.getPy(); }
int circle::getRadius() { return radius; }
  • 源文件2:point.cpp
#include "point.h"


void point::setPx(int x) { px = x; }
void point::setPy(int y) { py = y; }
int point::getPx() { return px; }
int point::getPy() { return py; }
  • 源文件3:circleLoca.cpp
// 点和圆的关系
// 设计一个圆形类 和 一个点类 计算二者之间的位置关系
 
#include
#include
using namespace std;
#include "point.h"
#include "circle.h"

void circleLoca(point& p1, circle& c1) {
	int disX = p1.getPx() - c1.getCenterX();
	int disY = p1.getPy() - c1.getCenterY();
	int dis = disX * disX + disY * disY;
	int disR = c1.getRadius() * c1.getRadius();
	//cout << "dis" << dis << "   disR" << disR << endl;
	if (dis > disR) cout << "圆外" << endl;
	else if (dis == disR) cout << "圆上" << endl;
	else cout << "圆内" << endl;
}


int main(){
	point cen;
	point p1;
	circle c1;
	// 圆心
	cen.setPx(10);
	cen.setPy(0);
	//点属性设置
	p1.setPx(20);
	p1.setPy(0);
	// 圆属性设置
	c1.setCenter(cen);
	c1.setRadius(10);
	// 圆点位置判断
	circleLoca(p1, c1);
	system("pause");
	return 0;
}


代码是在 visual studio 中编写的,该软件还是比较好用的,我安装的是2022专业版;

共勉!

你可能感兴趣的:(C/C++语言学习历程,c++,学习,类与对象,封装,典型案例)