• 第二十四周项目6-点和距离


    读程序,写出函数的定义,注意其中枚举类型的用法。

    enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称
    struct Point{
    	double x;  // 横坐标
    	double y;  // 纵坐标
    };
    double distance1(Point p1, Point p2);   // 两点之间的距离,如果用distance,将会与命名空间std中也已经定义的distance函数重名
    double distance0(Point p1);
    Point symmetricAxis(Point p,SymmetricStyle style);   //返回对称点
    int main( ){
    	Point p1={1,5},p2={4,1},p;
    	cout<<"两点的距离为:"<<distance1(p1,p2)<<endl;
    	cout<<"p1到原点的距离为:"<<distance0(p1)<<endl;
    	p=symmetricAxis(p1,axisx);
    	cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	p=symmetricAxis(p1,axisy);
    	cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	p=symmetricAxis(p1,point);
    	cout<<"p1关于原点的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	return 0;
    }
    // 求两点之间的距离  
    double distance1(Point p1,Point p2)  
    {  
        double d;  
        ……  
        return d;  
    }  
      
    // 求点到原点的距离  
    double distance0(Point p)  
    {  
        double d;  
        ……  
        return d;  
    }  
      
    // 求对称点  
    Point symmetricAxis(Point p1,SymmetricStyle style)  
    {  
        Point p;  
        ……
        return p;  
    }  

    #include <iostream>
    #include <Cmath>
    using namespace std;
    
    enum SymmetricStyle {axisx,axisy,point};//分别表示按x轴, y轴, 原点对称
    struct Point
    {
    	double x;  // 横坐标
    	double y;  // 纵坐标
    };
    double distance1(Point p1, Point p2);   // 两点之间的距离
    double distance0(Point p1);
    Point symmetricAxis(Point p,SymmetricStyle style);   //返回对称点
    
    int main( )
    {
    	Point p1={1,5},p2={4,1},p;
    	cout<<"两点的距离为:"<<distance1(p1,p2)<<endl;
    	cout<<"p1到原点的距离为:"<<distance0(p1)<<endl;
    	p=symmetricAxis(p1,axisx);
    	cout<<"p1关于x轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	p=symmetricAxis(p1,axisy);
    	cout<<"p1关于y轴的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	p=symmetricAxis(p1,point);
    	cout<<"p1关于原点的对称点为:"<<"("<<p.x<<", "<<p.y<<")"<<endl;
    	return 0;
    }
    
    // 求两点之间的距离
    double distance1(Point p1,Point p2)
    {
    	double d;
    	d=sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
    	return d;
    }
    
    // 求点到原点的距离
    double distance0(Point p)
    {
    	double d;
    	d=sqrt(p.x*p.x+p.y*p.y);
    	return d;
    }
    
    // 求对称点
    Point symmetricAxis(Point p1,SymmetricStyle style)
    {
    	Point p;
    	p.x=p1.x;
    	p.y=p1.y;
    	switch(style)
    	{
    	case axisx:
    		p.y=-p1.y; break;
    	case axisy:
    		p.x=-p1.x; break;
    	case point:
    		p.x=-p1.x;p.y=-p1.y;
    	}
    	return p;
    }
    运行结果:


    @ Mayuko

  • 相关阅读:
    Session的使用与管理
    CSS控制文字,超出部分显示省略号
    MP4 文件前端获取视频封面
    prefetch预加载功能使用
    react-学习之路-react-router-解决问题记录
    如何将一个div盒子水平垂直都居中?
    window下查看端口号,并删除对应进程
    判断js 验证字符串里面有没有包含汉字:
    vue 现有的$变量 以及如何添加全局变量
    与人言
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567541.html
Copyright © 2020-2023  润新知