zoukankan      html  css  js  c++  java
  • [YTU]_2632 ( B2 友元光顾)

    Description

    定义一个平面上的点类Point,其中设置成员函数distance1求当前对象与另一点的距离,并设置友员函数distance2也完成相同的工作。
    请在划横线的部分填上需要的成份,使程序能正确运行,得到要求的输出结果。
    请提交begin到end部分的代码。
    //************* begin *****************
    #include<iostream>
    #include<cmath>
    #include <iomanip>
    using namespace std;
    class CPoint
    {
    private:
        double x;  // 横坐标
        double y;  // 纵坐标
    public:
        CPoint(double xx=0,double yy=0):x(xx),y(yy) {}
        double distance1(CPoint &);
        ____(1)_____ double distance2(CPoint &, CPoint &);
    };
    double CPoint::distance1(CPoint &p)
    {
        double dx,dy;
        dx=_____(2)_____;
        dy=_____(3)_____;
        return sqrt(dx*dx+dy*dy);
    }
    double distance2(CPoint &p1,CPoint &p2)
    {
        double dx,dy;
        dx=_____(4)_____;
        dy=_____(5)_____;
        return sqrt(dx*dx+dy*dy);
    }
    //************* begin *****************
    int main()
    {
        double px1, py1, px2, py2;
        cin>>px1>>py1>>px2>>py2;
        CPoint p1(px1, py1), p2(px2, py2);
        cout <<setiosflags(ios::fixed)<<setprecision(2);
        cout<<"1. "<<p1.distance1(p2)<<endl;
        cout<<"2. "<<distance2(p1,p2)<<endl;
        return 0;
    }

    Input

    四个以空格隔开的小数,表示平面中两点的横纵坐标

    Output

    两次输出两点间的距离,分别用成员函数和友元函数完成计算

    Sample Input

    2.5 4.3 7.8 6.7

    Sample Output

    1. 5.82
    2. 5.82
    #include <iostream>
    #include <iomanip>
    #include <math.h>
    using namespace std;
    class Point;
    class CPoint
    {
    private:
        double x;
        double y;
    public:
        CPoint(double xx=0,double yy=0):x(xx),y(yy){}
        double distance1(CPoint &);
        friend double distance2(CPoint &,CPoint&);
    };
    double CPoint::distance1(CPoint &p)
    {
        double dx,dy;
        dx=p.x-x;
        dy=p.y-y;
        return sqrt(dx*dx+dy*dy);
    }
    double distance2(CPoint &p1,CPoint&p2)
    {
        double dx,dy;
        dx=p2.x-p1.x;
        dy=p2.y-p1.y;
        return sqrt(dx*dx+dy*dy);
    }
    int main()
    {
        double px1, py1, px2, py2;
        cin>>px1>>py1>>px2>>py2;
        CPoint p1(px1, py1), p2(px2, py2);
        cout <<setiosflags(ios::fixed)<<setprecision(2);
        cout<<"1. "<<p1.distance1(p2)<<endl;
        cout<<"2. "<<distance2(p1,p2)<<endl;
        return 0;
    }
    

  • 相关阅读:
    Freemaker:操作集合
    win10:在关闭防火墙下如何屏蔽特定端口
    win10:家庭版开启组策略
    oracle:10g下载地址(转载)
    mybatis:延迟加载时不要在get/set方法上面添加final关键字(原创)
    mybatis:在springboot中的配置
    mybatis:访问静态变量或方法
    maven:手动安装JAR到本地仓库
    datatables日常使用集合
    python 装饰器
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586353.html
Copyright © 2011-2022 走看看