day02
2023年3月6日
知识点1.立方体类设计
设计立方体类(Cube),求出立方体的面积和体积,分别用全局函数和成员函数判断两个立方体是否相等。
#include <iostream>
using namespace std;
//立方体类
class Cube{
private:
int L;//边长
public:
void setL(int l){L = l;}
int getL(){return L;}
//计算立方体面积
int cubeArea()
{
return 6 * L * L;
}
//计算立方体的体积
int cubeVolume()
{
return L * L * L;
}
//成员函数,比较两个立方体是否相等
bool compareCube2(Cube cube)
{
if(L == cube.L) return true;
else return false;
}
};
//全局函数,比较两个立方体是否相等
bool compareCube1(Cube cube1, Cube cube2)
{
if(cube1.getL() == cube2.getL()) return true;
else return false;
}
int main()
{
//实例化对象1
Cube cube1;
//设置边长
cube1.setL(10);
cout << "cube1面积=" << cube1.cubeArea() << endl;
cout << "cube1体积=" << cube1.cubeVolume() << endl;
//实例化对象2
Cube cube2;
//设置边长
cube2.setL(20);
//全局函数比较,cube1和cube2
if(compareCube1(cube1, cube2) == true)
cout << "两个立方体相等" << endl;
else
cout << "两个立方体不相等" << endl;
//实例化对象3
Cube cube3;
//设置边长
cube3.setL(10);
//成员函数比较,cube1和cube3
if(cube1.compareCube2(cube3) == true)
cout << "两个立方体相等" << endl;
else
cout << "两个立方体不相等" << endl;
return 0;
}
知识点2.点和圆的关系
设计一个圆形类(AduCircle)和一个点类(Point),计算点和圆的关系。假如圆心坐标为(x0,y0),半径为r,点的坐标为(x1,y1),①点在圆上:(x1-x0)^2 + (y1-y0)^2 == r^2;②点在圆内:(x1-x0)^2 + (y1-y0)^2 < r^2;③点在圆外:(x1-x0)^2 + (y1-y0)^2 > r^2;
#include <iostream>
using namespace std;
//点类
class Point{
private:
int X;//点的x坐标
int Y;//点的y坐标
public:
void setX(int x){X = x;}
int getX(){return X;}
void setY(int y){Y = y;}
int getY(){return Y;}
};
//圆形类
class AdvCircle{
private:
Point CircleCenter;//圆心
int R;//圆的半径
public:
void setCircleCenter(int x, int y)
{
CircleCenter.setX(x);
CircleCenter.setY(y);
}
Point getCircleCenter(){return CircleCenter;}
void setR(int r){R = r;}
int getR(){return R;}
//判断点在圆上的位置
void isPointOnCircle(Point &point)
{
//点到圆心的距离的平方
int distance = (point.getX() - CircleCenter.getX())
* (point.getX() - CircleCenter.getX())
+ (point.getY() - CircleCenter.getY())
* (point.getY() - CircleCenter.getY());
if(distance == R * R) cout << "点在圆上" << endl;
else if(distance < R * R) cout << "点在圆内" << endl;
else cout << "点在圆外" << endl;
}
};
int main()
{
int x0, y0, r, x1, y1;
cout << "请输入圆心的x轴坐标:";
cin >> x0;
cout << "请输入圆心的y轴坐标:";
cin >> y0;
cout << "请输入圆的半径:";
cin >> r;
cout << "请输入点的x轴坐标:";
cin >> x1;
cout << "请输入点的y轴坐标:";
cin >> y1;
//实例化一个点的对象
Point point;
point.setX(x1);
point.setY(y1);
//实例化一个圆的对象
AdvCircle circle;
circle.setCircleCenter(x0, y0);
circle.setR(r);
//判断点和圆的关系
circle.isPointOnCircle(point);
return 0;
}