面向对象练习(circle类)---定义一个圆,计算圆之间的距离

定义一个圆,计算圆之间的距离

项目概述:定义一个圆类
属性:圆心坐标和半径
操作:对圆的信息进行读取、设置以及打印,计算两个圆之间的距离

具体实现:

#include <iostream>
#include <math.h>
using namespace std;

/*
**项目概述:定义一个圆类
**属性:圆心坐标和半径
**操作:对圆的信息进行读取、设置以及打印,计算两个圆之间的距离
*/
class Circle
{
public:
	Circle();					//构造函数
	float getRadius();
	float getCenterX();
	float getCenterY();

	void setCircle(float r,float x,float y);
	void printCircle();
	
	float distance(Circle c1);

private:
	float xCenter;
	float yCenter;
	float radius;
};

Circle::Circle()				//构造函数
{
	xCenter=0.0;
	yCenter=0.0;
	radius=0.0;
}
float Circle::getRadius()
{
	return xCenter;
}
float Circle::getCenterX()
{
	return yCenter;
}
float Circle::getCenterY()
{
	return radius;
}
void Circle::setCircle(float r,float x,float y)
{
	radius=r;
	xCenter=x;
	yCenter=y;
}
void Circle::printCircle()
{
	cout<<"圆心:("<<xCenter<<","<<yCenter<<") "<<"半径为:"<<radius<<endl;
}
float Circle::distance(Circle c1)
{
	float x=xCenter-c1.xCenter;
	float y=yCenter-c1.yCenter;
	return sqrt(x*x+y*y);
	
}

int main()
{
	Circle c1,c2;//构造函数,对对象进行初始化,自动调用
	c1.printCircle();
	c2.setCircle(5,2,5);
	c2.printCircle();
	float dis=c1.distance(c2);
	cout<<"两个圆的距离为:"<<dis<<endl;
	return 0;
}
实验内容: 一、定义一个名为Circle,位于shape包中。要求如下: (1)需要描述在二维坐标系中的位置,心的横、纵坐标值均取整数;描述的半径,取双精度型。 (2) 无参构造方法将心坐标设为坐标点,半径设为1.0;有参构造方法需要根据参数值设置心坐标和半径值。 (3) 提供一个计算面积的方法double getArea()(4) 提供一个判断当前对象与参数对象是否相交的方法(相交方式见下图): boolean isIntersected(Circle another) (5) 提供一个判断当前对象是否包含参数对象的方法(包含方式见下图): boolean contains(Circle another) (6) 提供一个判断当前对象与参数对象的大小关系的方法(判断依据是半径,半径之差的绝对值小于0.0001认为相等;返回负数表示当前对象小,0表示相等,正数表示当前对象) int compareTo(Circle another) (7) 提供返回当前的字符串的方法,格式为:[Circle(x,y)-raduis] String toString() 二、定义一个包含main方法的TestCircle,位于shape包中。要求如下: (1) main方法中调用以下方法。 (2) 编写静态方法createArray,生成位置和大小均随机的10个对象,置于数组中。 (3) 编写静态方法sort对这10个对象进行升序排序,并输出。 (4) 编写静态方法computeArea计算这10个中互不相交和包含的的面积之和。 提交要求:打包为可以执行的JAR文档,其中要包含源程序文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值