zoukankan      html  css  js  c++  java
  • 第二十四周项目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

  • 相关阅读:
    数据库的事务
    二路归并排序C++ 递归实现
    2020cocoapods安装和更新repo
    iOS 一个对象的等同性
    chrome插件离线安装程序包无效
    OC 直接使用使用实例变量和通过属性来访问实例变量的区别
    数据结构与算法(八),查找
    数据结构与算法(七),排序
    数据结构与算法(六),图
    数据结构与算法(五),优先队列
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567541.html
Copyright © 2011-2022 走看看