研一寒假C++复习笔记--分文件实现判断点与圆的关系

目录

1--目录一览

2--头文件include

3--源文件src

4--主函数

5--CMakeLists.txt

6--编译、执行


1--目录一览

tree -a
.
├── build
│   ├── CMakeCache.txt
│   ├── CMakeFiles
│   │   ├── 3.16.3
│   │   │   ├── CMakeCCompiler.cmake
│   │   │   ├── CMakeCXXCompiler.cmake
│   │   │   ├── CMakeDetermineCompilerABI_C.bin
│   │   │   ├── CMakeDetermineCompilerABI_CXX.bin
│   │   │   ├── CMakeSystem.cmake
│   │   │   ├── CompilerIdC
│   │   │   │   ├── a.out
│   │   │   │   ├── CMakeCCompilerId.c
│   │   │   │   └── tmp
│   │   │   └── CompilerIdCXX
│   │   │       ├── a.out
│   │   │       ├── CMakeCXXCompilerId.cpp
│   │   │       └── tmp
│   │   ├── cmake.check_cache
│   │   ├── CMakeDirectoryInformation.cmake
│   │   ├── CMakeOutput.log
│   │   ├── CMakeTmp
│   │   ├── Makefile2
│   │   ├── Makefile.cmake
│   │   ├── progress.marks
│   │   ├── TargetDirectories.txt
│   │   └── test_exe.dir
│   │       ├── build.make
│   │       ├── cmake_clean.cmake
│   │       ├── CXX.includecache
│   │       ├── DependInfo.cmake
│   │       ├── depend.internal
│   │       ├── depend.make
│   │       ├── flags.make
│   │       ├── link.txt
│   │       ├── progress.make
│   │       ├── src
│   │       │   ├── circle.cpp.o
│   │       │   └── point.cpp.o
│   │       └── Test.cpp.o
│   ├── cmake_install.cmake
│   ├── Makefile
│   └── test_exe
├── CMakeLists.txt
├── include
│   ├── circle.h
│   └── point.h
├── src
│   ├── circle.cpp
│   └── point.cpp
├── Test.cpp
└── .vscode
    └── c_cpp_properties.json

13 directories, 39 files

2--头文件include

① 点类 point.h

# pragma once
# include <iostream>

class Point{

public:
    void setX(int x);
    int getX();
    void setY(int Y);
    int getY();

private:
    int X;
    int Y;
};

② 圆类 circle.h

# pragma once
# include <iostream>
# include "point.h"

class Circle{

public:
    void setR(int r);
    int getR();
    void setCenter(Point center);
    Point getCenter();

private:
    int R;
    Point Center;
};

3--源文件src

① 点类 point.cpp

# include "point.h"

void Point::setX(int x){
    X = x;
}

int Point::getX(){
    return X;
}

void Point::setY(int y){
    Y = y;
}

int Point::getY(){
    return Y;
}

② 圆类 circle.cpp

# include "circle.h"

void Circle::setR(int r){
    R = r;
}

int Circle::getR(){
    return R;
}

void Circle::setCenter(Point center){
    Center = center;
}

Point Circle::getCenter(){
    return Center;
}

4--主函数

① Test.cpp

# include "point.h"
# include "circle.h"

void isInCircle(Circle &c, Point &p){
    // 计算点与圆心的距离
    int dist = (c.getCenter().getX() - p.getX()) * (c.getCenter().getX() - p.getX())
         + (c.getCenter().getY() - p.getY()) * (c.getCenter().getY() - p.getY());

    // 计算半径的平方
    int R_2 = c.getR() * c.getR();
    if (dist == R_2){
        std::cout << "point on the circle !" << std::endl;
    }
    else if (dist > R_2){
        std::cout << "point outside the circle !" << std::endl;
    }
    else {
        std::cout << "point inside the circle !" << std::endl;
    }
}

int main(){

    // 创建圆
    Circle c;
    c.setR(10);
    Point center;
    center.setX(10);
    center.setY(0);
    c.setCenter(center);

    // 创建点
    Point p;
    p.setX(10);
    p.setY(10);

    // 判断点和圆的关系
    isInCircle(c, p);

    return 0;
}

5--CMakeLists.txt

cmake_minimum_required(VERSION 3.0)

project(Test)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")

set(CMAKE_BUILD_TYPE Debug)

include_directories(./include)

add_executable(test_exe Test.cpp src/point.cpp src/circle.cpp)

6--编译、执行

mkdir build && cd build

cmake ..

make

./test_exe

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值