C++类的几道习题

/*
作业
作业1:编写C++程序完成以下功能:
1)定义一个Point类,其属性包括点的坐标,提供计算两点之间距离的方法;
2)定义一个圆形类,其属性包括圆心和半径;
3)创建两个圆形对象,提示用户输入圆心坐标和半径,判断两个圆是否相交,并输出结果。

作业2:设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,根据坐标能计算出矩形的面积

作业3:定义一个Tree类,有成员ages(树龄),成员函数grow(int years)对ages加上years,age()显示tree对象的ages的值。
*/

//*****************************************************************************************************************************************************

作业1:

#include
#include
using namespace std;
class MyPoint
{
public:
	double x;
	double y;
public:
	void Key(double &x, double &y) {
		cout << "请输入点的坐标:" << endl;
		cin >> x;
		cin >> y;
	}
public:
	void setXY(double x, double y) {
		p_x = x;
		p_y = y;
	}
	double getX() {
		return p_x;
	}
	double getY() {
		return p_y;
	}
public:
	double Distance(MyPoint &p1) {
		double x;
		double y;
		x = p_x - p1.setX();
		y = p_y - p1.setY();
		return sqrt(x*x + y * y);
	}

private:
	double p_x;
	double p_y;
};

class MyCircle
{
public:
	double r;
	double x;
	double y;
public:
	void Key(double &r, double &x, double &y) {
		cout << "请输入圆的半径:" << endl;
		cin >> r;
		cout << "请输入圆的坐标:" << endl;
		cin >> x;
		cin >> y;
	}
public:
	void setRXY(double r, double x, double y) {
		c_r = r;
		c_x = x;
		c_y = y;
	}
	double getX() {
		return c_x;
	}
	double getY() {
		return c_y;
	}
	double getR() {
		return c_r;
	}
public:
	int Judgement(MyCircle &c1) {
		//两圆心之间的距离:
		double L;
		double x;
		double y;
		x = c_x - c1.getX();
		y = c_y - c1.getY();
		L = x * x + y * y;
		if (L > (c_r + c1.getR())*(c_r + c1.getR())) {
			return 1;//相离
		}
		
		if (L == (c_r + c1.getR())*(c_r + c1.getR())) {
				return 2;//相切
		}
		if (L < (c_r + c1.getR())*(c_r + c1.getR())) {
			if ((c_r - c1.setR() > 0)&&c_r-L>0) {
				return 3;//包含
			}
			if ((c_r - c1.getR() < 0 && c1.getR() - L > 0))
				return 3;//包含
			return 4;// 相交

		}	
	}
private:
	double c_r;
	double c_x;
	double c_y;
};


int main()
{
	
	MyPoint p1, p2;
	p1.Key(p1.x, p1.y);
	p2.Key(p2.x, p2.y);
	p1.setXY(p1.x, p1.y);
	p2.setXY(p2.x, p2.y);
	cout << "两点间的距离:" << p1.Distance(p2) << endl;
	
	MyCircle c1, c2;
	c1.Key(c1.r, c1.x, c1.y);
	c2.Key(c2.r, c2.x, c2.y);
	c1.setRXY(c1.r, c1.x, c1.y);
	c2.setRXY(c2.r, c2.x, c2.y);
	if (c1.Judgement(c2) == 1) {
		cout << "两个圆的关系是相离" << endl;
	}
	if (c1.Judgement(c2) == 2) {
		cout << "两个圆的关系是相切" << endl;
	}
	if (c1.Judgement(c2) == 3){
		cout << "两个圆的关系是包含" << endl;
	}
	if (c1.Judgement(c2) == 4) {
		cout << "两个圆的关系是相交" << endl;
	}

	return 0;
}

//*****************************************************************************************************************************************************

作业2:

#include
#include
using namespace std;

class Rectangle {
public:
	double l_x;
	double l_y;
	double r_x;
	double r_y;
public:
	void Key(double &l_x, double &l_y, double &r_x, double &r_y) {
		cout << "请输入左下角坐标:" << endl;
		cin >> l_x;
		cin >> l_y;
		cout << "请输入右上角坐标:" << endl;
		cin >> r_x;
		cin >> r_y;
	}
public:
	void setLXLYRXRY(double l_x, double l_y, double r_x, double r_y) {
		leftdown_x = l_x;
		leftdown_y = l_y;
		rightup_x = r_x;
		rightup_y = r_y;
	}
	double getLX() {
		return leftdown_x;
	}
	double getLY() {
		return leftdown_y;
	}
	double getRX() {
		return rightup_x;
	}
	double getRY() {
		return rightup_y;
	}
public:
	double setS(Rectangle &c1) {
		double length;
		double width;
		length = l_x - r_x;
		width = l_y - r_y;
		if (length < 0) {
			length = length * (-1);
		}
		if (width < 0) {
			width = width*(-1);
		}
		return length * width;
	}
private:
	double leftdown_x;
	double leftdown_y;
	double rightup_x;
	double rightup_y;

};

int main()
{
	Rectangle r1;
	r1.Key(r1.l_x, r1.l_y, r1.r_x, r1.r_y);
	r1.setLXLYRXRY(r1.l_x, r1.l_y, r1.r_x, r1.r_y);
	cout << "矩形的面积是:" << r1.setS(r1) << endl;
	
	return 0;
}

//**************************************************************************************************************************************************

作业三:

#include
using namespace std;
class Tree
{
public:
	int grow(int years) {
		ages += years;
		return ages;
	}
	void age() {
		cout << "树的年龄是:" << ages << endl;
	}

public:
	int ages;
};
int main()
{
	Tree t1;
	t1.ages = 20;
	int years = 10; 
	t1.grow(years);
	t1.age();

	return 0;
}

 

你可能感兴趣的:(自学笔记,C++)