//设置一个圆形类和一个点类,判断点和圆的关系
#include<iostream>
using namespace std;
class Point
{
public:
void setX(int x)
{
m_X = x;
}
int getX()
{
return m_X;
}
void setY(int y)
{
m_Y = y;
}
int getY()
{
return m_Y;
}
private:
int m_X;
int m_Y;
};
class Circle
{
public:
void setR(int r)
{
m_R = r;
}
int getR()
{
return m_R;
}
void setCenter(Point p)
{
m_Center = p;
}
Point getCenter()
{
return m_Center;
}
//利用成员函数判断点和圆的关系
void isInCircleByclass(Point &p)
{
//获取圆心和点距离的平方
int Distance = (m_Center.getX() - p.getX()) * (m_Center.getX() - p.getX()) + (m_Center.getY() - p.getY()) * (m_Center.getY() - p.getY());
int rDistance = m_R*m_R;
if ( Distance == rDistance )
{
cout << "成员函数::点在圆上" << endl;
}
else if (rDistance<Distance )
{
cout << "成员函数::点在圆外" << endl;
}
else
{
cout << "成员函数::点在圆内" << endl;
}
}
private:
int m_R;//半径
Point m_Center;//圆心
};
//利用全局函数判断点和圆的关系
void isInCircle(Circle &c,Point &p)
{ //获取圆心和点距离的平方
int Distance = (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) + (c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());
int rDistance = c.getR() * c.getR();
if ( Distance == rDistance )
{
cout << "点在圆上" << endl;
}
else if (rDistance<Distance )
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
void test01()
{
Point p1;
p1.setX(10);
p1.setY(10);
Circle c1;
Point center;
center.setX(20);
center.setY(5);
c1.setCenter(center);
c1.setR(20);
//利用全局函数判断点和圆的关系
isInCircle(c1,p1);
//利用成员函数判断点和圆的关系
c1.isInCircleByclass(p1);
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}
//设计立方体类,求出立方体的面积和体积,分别用全局函数和成员函数判断两个立方体是否相等
#include<iostream>
using namespace std;
class Cub
{
public:
//设置长
void setL(int l)
{
m_L = l;
}
//获取长
int getL()
{
return m_L;
}
//设置宽
void setW(int w)
{
m_W = w;
}
//获取宽
int getW()
{
return m_W;
}
//设置高
void setH(int h)
{
m_H =h;
}
//获取高
int getH()
{
return m_H;
}
//求立方体的面积
void getCubeS()
{
int s = 2 * m_L * m_W + 2 * m_L * m_H + 2 * m_W * m_H;
cout << "立方体的面积为:" << s << endl;
}
//求立方体的体积
void getCubeV()
{
int v = m_L * m_W * m_H;
cout << "立方体的体积为:" << v << endl;
}
//通过成员函数判断两个立方体是否相等
bool compareCubeByClass(Cub&cub)
{
bool ret = m_L == cub.getL() && m_W == cub.getW() && m_H == cub.getH();
return ret;
}
private:
int m_L;//长
int m_H;//高
int m_W;//宽
};
//用全局函数判断两个立方体是否相等
bool compareCube( Cub & cub1, Cub & cub2)
{
if ( cub1.getL() == cub2.getL()&&cub1.getH()==cub2.getH()&&cub1.getW()==cub2.getW())
{
return true;
}
return false;
}
void test01 ()
{
Cub c1;
c1.setL(20);
c1.setH(10);
c1.setW(20);
c1.getCubeS();
c1.getCubeV();
//通过全局函数判断两个立方体是否相等
Cub c2;
c2.setL(20);
c2.setH(10);
c2.setW(20);
bool ret = compareCube(c1, c2);
if ( ret )
{
cout << "通过全局函数判断::c1和c2是相等的。" << endl;
}
else
{
cout << "通过全局函数判断::c1和c2是不相等的。" << endl;
}
//通过成员函数判断两个立方体是否相等
bool ret2 = c1.compareCubeByClass(c2);
if ( ret2)
{
cout << "通过成员函数判断::c1和c2是相等的。" << endl;
}
else
{
cout << "通过成员函数判断::c1和c2是不相等的。" << endl;
}
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}
此外还有头文件的应用,圆类面向对象的设计
//设置一个圆形类和一个点类,判断点和圆的关系
#include<iostream>
using namespace std;
#include"point.h"
#include"circle.h"
//利用全局函数判断点和圆的关系
void isInCircle(Circle &c,Point &p)
{ //获取圆心和点距离的平方
int Distance = (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX()) + (c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());
int rDistance = c.getR() * c.getR();
if ( Distance == rDistance )
{
cout << "点在圆上" << endl;
}
else if (rDistance<Distance )
{
cout << "点在圆外" << endl;
}
else
{
cout << "点在圆内" << endl;
}
}
void test01()
{
Point p1;
p1.setX(10);
p1.setY(10);
Circle c1;
Point center;
center.setX(20);
center.setY(5);
c1.setCenter(center);
c1.setR(20);
//利用全局函数判断点和圆的关系
isInCircle(c1,p1);
//利用成员函数判断点和圆的关系
c1.isInCircleByclass(p1);
}
int main()
{
test01();
system("pause");
return EXIT_SUCCESS;
}
#pragma once
#include<iostream>
using namespace std;
//点类
class Point
{
public:
void setX(int x);
/*{
m_X = x;
}*/
int getX();
/* {
return m_X;
}*/
void setY(int y);
/*{
m_Y = y;
}*/
int getY();
/*{
return m_Y;
}*/
private:
int m_X;
int m_Y;
};
#include"point.h"
void Point::setX(int x)
{
m_X = x;
}
int Point::getX()
{
return m_X;
}
void Point::setY(int y)
{
m_Y = y;
}
int Point::getY()
{
return m_Y;
}
#pragma once
#include<iostream>
#include"point.h"
using namespace std;
//圆类
class Circle
{
public:
void setR(int r);
/*{
m_R = r;
}*/
int getR();
/*{
return m_R;
}*/
void setCenter(Point p);
/*{
m_Center = p;
}*/
Point getCenter();
/*{
return m_Center;
}*/
//利用成员函数判断点和圆的关系
void isInCircleByclass(Point& p);
/*{
//获取圆心和点距离的平方
int Distance = (m_Center.getX() - p.getX()) * (m_Center.getX() - p.getX()) + (m_Center.getY() - p.getY()) * (m_Center.getY() - p.getY());
int rDistance = m_R * m_R;
if ( Distance == rDistance )
{
cout << "成员函数::点在圆上" << endl;
}
else if ( rDistance < Distance )
{
cout << "成员函数::点在圆外" << endl;
}
else
{
cout << "成员函数::点在圆内" << endl;
}*/
private:
int m_R;//半径
Point m_Center;//圆心
};
#include"circle.h"
void Circle::setR(int r)
{
m_R = r;
}
int Circle::getR()
{
return m_R;
}
void Circle::setCenter(Point p)
{
m_Center = p;
}
Point Circle::getCenter()
{
return m_Center;
}
//利用成员函数判断点和圆的关系
void Circle::isInCircleByclass(Point& p)
{
//获取圆心和点距离的平方
int Distance= (m_Center.getX() - p.getX()) * (m_Center.getX() - p.getX()) + (m_Center.getY() - p.getY()) * (m_Center.getY() - p.getY());
int rDistance = m_R * m_R;
if ( Distance == rDistance )
{
cout << "成员函数::点在圆上" << endl;
}
else if ( rDistance < Distance )
{
cout << "成员函数::点在圆外" << endl;
}
else
{
cout << "成员函数::点在圆内" << endl;
}
}