//本程序有三个层次

//第一层(define_class.h):构造坐标点类,颜色和宽度的结构体,线段类

//第二层(function.h):对上一层声明的函数进行定义

//第三层(distance.cpp):用类定义对象并初始化对象,对结果进行测试

define_class.h

#if!defined(define_class_H)

#define define_class_h

#include

#include

using namespace std;

//定义坐标点类

class Point

{

private:

double X,Y; //横坐标、纵坐标作为私有变量

public:

Point(double=0,double=0); //构造函数

Point(Point &); //复制的构造函数

void Display() //显示坐标点

{

cout<

}

double Distance(Point &); //两点间距离的函数,参数是点类的引用,也可以用友元函数

int getX()

{

return X; //得到横坐标的值

}

int getY()

{

return Y; //得到纵坐标的值

}

};

struct Cow //color和width,结构体,结构体内的变量是public的

{

int Color;

int Width;

};

class Line //定义线段类

{

private:

Point a,b; //线段类的私有数据成员是点类的对象

Cow cw; //线段有颜色和宽度

public:

Line(Point &,Point &,Cow &); //线段的构造函数,由两个点、颜色和宽度构成

void Display();

Line(Line &); //复制的构造函数

double Distance(); //两点间的距离

double Area(); //线段的面积

};

#endif

function.h

#if!defined(function_H)

#define function_H

#include "define_class.h" //包含头函数

Point::Point(double a,double b) //定义构造函数,前面的头函数中仅仅声明了函数

{

X=a;

Y=b;

}

Point::Point(Point &a) //定义复制的构造函数

{

X=a.X;

Y=a.Y;

}

double Point::Distance(Point &a) //求两点间的距离

{

double dis;

dis=sqrt((X-a.X)*(X-a.X)+(Y-a.Y)*(Y-a.Y));

return dis;

}

Line::Line(Point &a1,Point &a2,Cow &a3):a(a1),b(a2),cw(a3) //给Line的私有变量初始化

{ //对象间的初始化,因此需要复制的构造函数

}

Line::Line(Line &s) //定义复制的构造函数

{

a=s.a;

b=s.b;

cw=s.cw;

}

void Line::Display() //显示线段

{

a.Display();

b.Display();

cout<

}

double Line::Distance()

{

double x,y;

x=a.getX()-b.getX();

y=a.getY()-b.getY();

return sqrt(x*x+y*y);

}

double Line::Area()

{

return cw.Width * Distance();

}

#endif

distance.cpp

#include

#include

#include "function.h"

using namespace std;

void main()

{

Point a;

Point b(8.9,9.8),c(34.5,67.8);

a=c;

a.Display();

b.Display();

cout<

Cow cw={3,5};

Line s(a,b,cw);

Line s1(s);

s1.Display();

cout<

cout<

}

标签:Point,double,线段,c++,计算,Line,cw,Display,构造函数

来源: https://www.cnblogs.com/duanqibo/p/11096455.html

c++求两点的距离利用友元_用c++定义两个坐标点,计算两点间距离;进而计算线段的面积...相关推荐

  1. 求两点之间距离 C++

    求两点之间距离(20 分) 定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数. 定义一个函数Distance(), 用于求两点之间的距离. 输入格式: 输入有两 ...

  2. 7-1 求两点之间距离

    定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数. 定义一个函数Distance(), 用于求两点之间的距离. 输入格式: 输入有两行: 第一行是第一个点的x坐 ...

  3. PTA 求两点之间距离 (20 分)

    定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数. 定义一个函数Distance(), 用于求两点之间的距离. 输入格式: 输入有两行: 第一行是第一个点的x坐 ...

  4. c语言 求两点之间距离

    输入平面中的两个点A.B的坐标,(x1,y1)和(x2,y2),要求分别输出两点的坐标,最后在屏幕中显示出两点的距离 1. 源代码如下 #include <stdio.h> #includ ...

  5. 已知两点经纬度,求两点直线距离-——python实现

    计算原理参考链接:https://blog.csdn.net/xiejm2333/article/details/73297004 Python代码实现: # -*- coding: utf-8 -* ...

  6. python计算两点间距离_python 计算方位角实例(根据两点的坐标计算)

    知道两点坐标,怎么计算两点方向的方位角? 答:首先计算坐标增量dx,dy(两个对应坐标分量相减,终点的减始点的). 若dx,dy中有一个为零时,根据另一个的正负决定方位角(0,90,180,270这四 ...

  7. 3维两点间的距离 js_高考必刷题4:球面上任意两点间距离的计算

    678地理工作室,每天,6:13 678地理工作室诚邀一起合作的小伙伴 文章首发于微信公众号"老丁侃地理",欢迎关注 本文为老丁原创,引用请注明来源 第一部分:经纬网部分,考纲和知 ...

  8. [YTU]_2619 (B 友元类-计算两点间距离)

    题目描述 类Distance定义为类Point的友元类来实现计算两点之间距离的功能. Point类中有两个私有数据成员X和Y来表示点的两个坐标(横坐标和纵坐标), 成员函数需要自己定义. 主程序输入两 ...

  9. JAVA利用数组求两点距离_利用java、js或mysql计算高德地图中两坐标之间的距离

    利用java.js或mysql计算高德地图中两坐标之间的距离 2019-09-19 编程之家收集整理的这篇文章主要介绍了利用java.js或mysql计算高德地图中两坐标之间的距离,编程之家小编觉得挺 ...

最新文章

  1. 和富友牵手与世界同步—高端体育时尚服装品牌的高标准伙伴
  2. weblogic mime-type
  3. 获取某个view的高度或者宽度
  4. 内部排序选择、冒泡、插入、希尔、快速、归并、堆排序原理概要和实现
  5. SSH(Spring+Struts2+Hibernate)框架搭建步骤(含配置文件以及运行结果)
  6. 学点数学(5)--线性规划对偶形式的理解
  7. Python【第一篇】python安装、pip基本用法、变量、输入输出、流程控制、循环
  8. 活动预告|一个重塑区块链行业生态的新物种即将诞生!
  9. net core mysql开源框架_.net core 基于Dapper 的分库分表开源框架(core-data)
  10. 基于spring boot的Java开源商城系统(附完整版源码)
  11. 推荐24款好用的数据可视化分析工具,个个堪称神器!
  12. python 执行py文件_python入门篇:python怎么运行?python如何运行py文件?
  13. Android签名V1、V2、V3、V4汇总
  14. 微信公众号开发之发送模板消息
  15. P4199-FFT,manacher
  16. C++学习路线图(新)
  17. SAP中库存确定组的应用简析
  18. 【计算机网络】6 路由器与静态路由配置
  19. GD32E232Kx 引脚功能表
  20. java实现测量到的工程数据

热门文章

  1. 返回一个数组的连续子数组和的最大值
  2. Error running app: Default Activity Not Found
  3. From Apprentice To Artisan 翻译 17
  4. 一个软件测试员的工作与学习(二)
  5. c# 为你的Form实现动画的效果
  6. linux文件系统基础知识
  7. skywalking前端_skywalking实现分布式系统链路追踪
  8. 南京师范大学计算机科学与技术复试名单,2018年各学院硕士研究生复试办法及复试名单公示网址汇总表...
  9. c语言常考的编程题,C语言操作题常考编程题库
  10. python xampp mysql_让XAMPP支持Python及Django