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

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

  • Code:
    在这里插入图片描述
    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;
    }
    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值