一、要求

二、问题分析
1圆形类 Circle(圆心和半径) 设置和获取
2 点类Point 设置和获取
3计算点与圆心的距离 d>r 圆外 d=r圆上 d<r圆内
(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2) r*r
三、发现问题
1、定义对象后使用成员函数记得加() 例如c.set()
2、写的时候要注意写全了尤其是各种标识符。
3.if语句的嵌套:在if语句里可以嵌套多个if,每个遵循的匹配规则是:else 总是与它前面最近、尚未匹配的 if 配对。
if (){}
else if(){}
else {}
4、在一个类中还可以定义另一个类的对象
四、代码
#include <iostream>
using namespace std;
class Point
{
private:
double x;
double y;
public:
void setx(double a)
{
x = a;
}
double getx()
{
return x;
}
void sety(double a)
{
y = a;
}
double gety()
{
return y;
}
};
class Circle
{
private:
Point mid;
double r;
public:
void setmid(Point c)
{
mid = c;
}
double getmidx()
{
return mid.getx();
}
double getmidy()
{
return mid.gety();
}
void setr(double d)
{
r = d;
}
double getr()
{
return r;
}
};
int main()
{//建立点
Point p;
p.setx(20);
p.sety(0);
cout << "点的横坐标是:" << p.getx() << endl;//定义对象后使用成员函数时记得加括号
cout << "点的纵坐标是:" << p.gety() << endl;
//建立圆
Circle c;
Point cp;
cp.setx(20);
cp.sety(10);
c.setmid(cp);
c.setr(10);
cout << "圆的圆心是:(" << c.getmidx() << "," << c.getmidy() <<")" <<endl;
cout << "圆的半径是:" << c.getr() << endl;
//判断点和圆的关系
if ((p.getx() - c.getmidx()) * (p.getx() - c.getmidx()) + (p.gety() - c.getmidy()) * (p.gety() - c.getmidy()) > c.getr()* c.getr())
{
cout << "点在圆外" << endl;
}
else if ((p.getx() - c.getmidx()) * (p.getx() - c.getmidx()) + (p.gety() - c.getmidy()) * (p.gety() - c.getmidy()) < c.getr()*c.getr())
{
cout << "点在圆内" << endl;
}
else
{
cout << "点在圆上" << endl;
}
}
1166

被折叠的 条评论
为什么被折叠?



