//本程序有三个层次

//第一层(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. 《CSS揭秘》笔记(一)
  2. IDEA中进行SpringBoot开发时提示:Error resolving template xxx, template might not exist or might not be acce
  3. C++ semi implicit euler半隐式向后欧拉法解算常微分方程(附完整源码)
  4. [系统安全] 二十四.逆向分析之OllyDbg调试INT3断点、反调试、硬件断点与内存断点
  5. 20159302 《网络攻击与防范》第四周学习总结
  6. 2014计算机二级vfp,2014计算机二级VF考前试题解析
  7. Python数据结构:顺序查找
  8. python stdout_python 之sys.stdout小记
  9. 51Nod 1109 01组成的N的倍数
  10. 三维扫描仪中投射模块/投影仪推荐
  11. 计算机删除内置用户,如何删除windows的内置账户,administrator
  12. 中国电信计算机类校园招聘笔试题目,中国电信集团2019校园招聘笔试真题(计算机技术类-A卷)(精选).doc...
  13. java中检测鼠标_java – 在屏幕上检测鼠标移动
  14. 微信跳一跳游戏外挂(mac电脑+android手机)
  15. Xcode (xip)官方原版下载 Xcode 所有历史版本(转载)
  16. 记录今天解决的一个poi的问题
  17. JS 如何调用高德地图
  18. 修改右键 新建菜单顺序
  19. 把Vue项目打包为桌面应用(nwjs)
  20. HTML简笔画画布气球,一束气球简笔画图片

热门文章

  1. 在ASP.NET MVC中使用Knockout实践07,自定义验证信息的位置与内容
  2. MySQL慢查询分析方法
  3. boost boost::asio::read socket.read_some 区别
  4. OpenCV——CvMatchShapes函数
  5. dubbo 负载均衡中策略决策
  6. android适配规则(一)
  7. 华为机试HJ84:统计大写字母个数
  8. 调用百度API实现人像动漫化(C++)
  9. python for循环 内存_Python for循环中的内存错误
  10. 计算机专业马来西亚,去马来西亚读计算机专业如何