C++练习:设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。 顺便熟悉一下分文件编写

简介: C++练习:设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系。 顺便熟悉一下分文件编写

以下为个人的分文件编写:


▪Code:

4e0ec8e537654516b039a0ae70421ada.png

Circle.h

#pragma once
#include <iostream>
#include "Point.h"
using namespace std;
class Circle {
public:
  Point get_center();
  void set_center(Point center1);
  double get_r();
  void set_r(double& r1);
private:
  Point center;
  double r;
};

Point.h

#pragma once
#include <iostream>
using namespace std;
class Point {
public:
  double getx();
  void setx(double& x1);
  double gety();
  void sety(double& y1);
private:
  double x;
  double y;
};

源.cpp

#include<iostream>
#include"Circle.h"
#include"Point.h"
#include<math.h>
using namespace std;
int get_distance(Point& p1, Point& p2);
void if_point_in_circle(double distance,double r);
int main() {
  double x, y, x1, y1, r;
  Point p1,center;
  Circle c1;
  cout<<"Please enter the Point's x and y coordinates." << endl;
  cin >> x >> y;
  p1.setx(x);
  p1.sety(y);
  cout << "Please enter the Circle's center and radius." << endl;
  cin >> x1 >> y1 >> r;
  center.setx(x1);
  center.sety(y1);
  c1.set_center(center);
  double distance = get_distance(center, p1);
  cout << distance << endl;
  if_point_in_circle(distance,r);
}
int get_distance(Point& p1,Point& p2) {
  int x1 = p1.getx();
  int y1 = p1.gety();
  int x2 = p2.getx();
  int y2 = p2.gety();
  double distance = sqrt(pow(x1-x2,2)+pow(y1-y2,2)); //包含头文件math.h,不懂可以百度
  return distance;
}
void if_point_in_circle(double distance,double r) {
  if (distance > r) {
    cout << "Point is out of the Circle." << endl;
  }
  else if (distance == r) {
    cout << "Point is on the Circle." << endl;
  }
  else {
    cout << "Point is in the Circle" << endl;
  }
}

Circle.cpp

#include "Circle.h"
Point Circle::get_center() {
  return center;
};
void Circle::set_center(Point center1) {
  center = center1;
};
double Circle::get_r() {
  return r;
};
void Circle::set_r(double& r1) { 
  r = r1;
};

Point.cpp

#include "Point.h"
double Point::getx() {
  return x;
}
void Point::setx(double& x1) {
  x = x1;
}
double Point::gety() {
  return y;
}
void Point::sety(double& y1) {
  y = y1;
}
相关文章
|
6天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
31 4
|
8天前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
27 4
|
30天前
|
存储 编译器 对象存储
【C++打怪之路Lv5】-- 类和对象(下)
【C++打怪之路Lv5】-- 类和对象(下)
27 4
|
30天前
|
编译器 C语言 C++
【C++打怪之路Lv4】-- 类和对象(中)
【C++打怪之路Lv4】-- 类和对象(中)
23 4
|
30天前
|
存储 安全 C++
【C++打怪之路Lv8】-- string类
【C++打怪之路Lv8】-- string类
21 1
|
1月前
|
存储 编译器 C语言
【C++打怪之路Lv3】-- 类和对象(上)
【C++打怪之路Lv3】-- 类和对象(上)
16 0
|
1月前
|
存储 编译器 C语言
深入计算机语言之C++:类与对象(上)
深入计算机语言之C++:类与对象(上)
|
1月前
|
存储 编译器 C++
【C++类和对象(下)】——我与C++的不解之缘(五)
【C++类和对象(下)】——我与C++的不解之缘(五)
|
1月前
|
编译器 C++
【C++类和对象(中)】—— 我与C++的不解之缘(四)
【C++类和对象(中)】—— 我与C++的不解之缘(四)
|
1月前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
23 3