22 面向过程到面向类

1 设计立方体

设计一个立方体,求出面积和体积,比较两个立方体是否相等

#include<iostream>
using namespace std;

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

	int getV() {
		m_v = m_a * m_b * m_c;
		return m_v;
	}

	int getS() {
		m_s = 2 * (m_a * m_b + m_b * m_c + m_c * m_a);
		return m_s;
	}

	int getA() {
		return m_a;
	}
	int getB() {
		return m_b;
	}
	int getC() {
		return m_c;
	}

	int judgeCube(Cube& v1, Cube& v2) {
		if (v1.getA() == v2.getA() &&
			v1.getB() == v2.getB() &&
			v1.getC() == v2.getC()) {
			return 1;
		}
		else
		{
			return 0;
		}
	}

	// 函数重载
	void judgeCube(Cube& v2) {
		if (m_a == v2.getA() &&
			m_b == v2.getB() &&
			m_c == v2.getC()) {
			cout << "相等" << endl;
		}
		else
		{
			cout << "不相等" << endl;
		}
	}



private:
	int m_a;
	int m_b;
	int m_c;
	int m_v;
	int m_s;
};

// 全局函数 1 相等, 0不相等
int judgeCube(Cube& v1, Cube& v2) {
	if (v1.getA() == v2.getA() &&
		v1.getB() == v2.getB() &&
		v1.getC() == v2.getC()) {
		return 1;
	}
	else
	{
		return 0;
	}
}

void main() {
	Cube v1, v2;
	v1.setABC(1, 2, 3);
	cout << v1.getS() << endl;
	cout << v1.getV() << endl;

	// 判断两个立方体是否相等
	v2.setABC(1, 2, 4);

	if (v1.judgeCube(v1,v2) == 1) {
		cout << "相等" << endl;
	}
	else {
		cout << "不相等" << endl;
	}

	v1.judgeCube(v2);
}

2 设计一个圆和一个点 判断点是否在圆内

class Point {
public:
	void setPoint(int _x1, int _y1) {
		x1 = _x1;
		y1 = _y1;
	}
	int getX1() {
		return x1;
	}
	int getY1() {
		return y1;
	}
private:
	int x1;
	int y1;
};



class Circle {
public:
	void setCircle(int _r, int _x0, int _y0) {
		r = _r;
		x0 = _x0;
		y0 = _y0;
	}

	void jude(Point& p) {
		int d_2 = (p.getX1() - x0) * (p.getX1() - x0) + (p.getY1() - y0) * (p.getY1() - y0);
		if (d_2 > r * r) {
			cout << "在圆外" << endl;
		}
		else {
			cout << "在圆内" << endl;
		}
	}


private:
	int r;
	int x0;
	int y0;
};


int main() {
	Circle c1;
	c1.setCircle(2, 3, 3);
	Point p1;
	p1.setPoint(1, 1);

	// 判断点是否在圆内
	c1.jude(p1);
	return 0;
}

分文件完成

头文件

AdvCircle.h

#pragma once
#include"MyPoint.h"
class AdvCircle {
public:
	void setCircle(int _r, int _x0, int _y0);
	void jude(MyPoint& p);

private:
	int r;
	int x0;
	int y0;
};

MyPoint.h

#pragma once
class MyPoint
{
public:
	void setPoint(int _x1, int _y1);
	int getX1();
	int getY1();
private:
	int x1;
	int y1;
};

源文件

AdvCircle.cpp

#include<iostream>
using namespace std;
#include"MyPoint.h"
#include"AdvCircle.h"

void AdvCircle::setCircle(int _r, int _x0, int _y0) {
	r = _r;
	x0 = _x0;
	y0 = _y0;
}

void AdvCircle::jude(MyPoint& p) {
	int d_2 = (p.getX1() - x0) * (p.getX1() - x0) + (p.getY1() - y0) * (p.getY1() - y0);
	if (d_2 > r * r) {
		cout << "在圆外" << endl;
	}
	else {
		cout << "在圆内" << endl;
	}
}

MyPoint.cpp

#include "MyPoint.h"


void MyPoint::setPoint(int _x1, int _y1) {
	x1 = _x1;
	y1 = _y1;
}
int MyPoint::getX1() {
	return x1;
}
int MyPoint::getY1() {
	return y1;
}

主函数

#include "MyPoint.h"


void MyPoint::setPoint(int _x1, int _y1) {
	x1 = _x1;
	y1 = _y1;
}
int MyPoint::getX1() {
	return x1;
}
int MyPoint::getY1() {
	return y1;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值