/*
作业
作业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;
}