第六周任务3

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:                               * 作    者: 高中亚                            * 完成日期:  2012   年   03    月    28    日 * 版 本 号:         

* 对任务及求解方法的描述部分 * 输入描述:  * 问题描述:  * 程序输出:  * 程序头部的注释结束 */

#include <iostream>  
  
#include <cmath>  
  
using namespace std;  
  
enum SymmetricStyle  { axisx,axisy,point };    //分别表示按x轴,y轴,原点对称。  
  
class CPoint  
{  
      private:  
              double x;  
              double y;  
      public:  
             CPoint(double xx=0, double yy=0);//:x(xx),y(yy){}可以用另一种方法定义的  
             double Distance(CPoint p) const;  // 两点之间的距离(一点是当前点,另一点为参数P)      
             double Distance0() const;        // 到原点的距离  
             CPoint SymmetricAxis(SymmetricStyle style) const;  //返回对称点     
             void input();                     //以x,y的形式 输入坐标点  
             void output();                    //以 (x,y)的形式输出坐标  
};  
CPoint::CPoint(double xx, double yy)  
{  
     x = xx;  
     y = yy;  
}  
  
double CPoint::Distance(CPoint p) const  
{  
     double d;  
       
     d = sqrt(pow((p.x - x),2)+pow((p.y - y),2));  
       
     return d;  
}  
  
double CPoint::Distance0() const  
{  
     double d;  
       
     d = sqrt(pow(x,2)+pow(y,2));  
       
     return d;  
}  
  
void CPoint::input()  
{  
     char c;  
     cout<<"请以(x,y)形式输入"<<endl;  
     while(1)  
     {  
             cin>>x>>c>>y;  
             if(c ==',')  
             break;  
             cout<<"输入格式不正确,重新输入"<<endl;  
     }  
       
}  
  
void CPoint::output()  
{  
     cout<<"("<<x<<","<<y;  
     cout<<")"<<endl;  
}  
  
CPoint CPoint::SymmetricAxis(SymmetricStyle style) const              //定义为一个类类型的枚举类型函数   
{    
   CPoint p;     
    switch(style)    
    {    
    case axisx:    
       p.y=-y;  
       p.x= x;  
        break;    
    case axisy:    
        p.x=-x;  
        p.y= y;  
         break;    
    case point:    
        p.x=-x;  
        p.y=-y;    
    }    
    return p;                                                          //返回值是个类p   
}    
  
  
int main()  
{  
    CPoint a,b;  
    a.input();  
      
    b.input();  
      
    cout<<"两点间的距离为"<<a.Distance(b);  
      
      
    cout<<"点到原点的距离为"<<a.Distance0()<<endl;  
      
    cout<<"关于x轴的对称点"<<endl;   
    a.SymmetricAxis(axisx).output();  
      
    cout<<"关于y轴的对称点"<<endl;  
    a.SymmetricAxis(axisy).output();  
      
    cout<<"关于原点的对称点"<<endl;  
    a.SymmetricAxis(point).output();  
      
    system("pause");  
      
    return 0;  
}


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值