第6周实验报告3

实验目的:设计平面坐标点类

实验内容:设计平面坐标点类


* 程序头部注释开始
* 程序的版权和版本声明部分
* 烟台大学计算机学院学生
* 文件名称:         设计平面坐标点类                  
* 作    者:          胡斌                
* 完成日期:  2012 年 3月27 
* 版本号:     v1.0    

* 程序头部的注释结束(此处也删除了斜杠)

#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);    

    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){}    

int main()    

{    

    CPoint c1, c2;    

    c1.input();    

    c2.input();    

    c1.output();    

    c2.output();    

    cout << "两点间的距离是:" << c1.Distance(c2) << endl;    

    cout << "点到原点的距离是:" << c2.Distance0() << endl;    

    c1.SymmetricAxis(axisx);    

    c1.SymmetricAxis(axisy);    

    c1.SymmetricAxis(point);    

    system("pause");    

}    

CPoint CPoint::SymmetricAxis(SymmetricStyle style) const    

{    

    switch(style)    

    {    

    case(axisx):    

        {    

            cout << "点" << "(" << x << "," << y << ")"<< "关于X轴对称点是: (" << x << "," << - y << ")" << endl;    

            break;    

        }    

    case(axisy):    

        {    

            cout << "点" << "(" << x << "," << y << ")" << "关于Y轴对称点是: (" << - x << "," << y << ")" << endl;    

            break;    

        }    

    default:    

        {    

            cout << "点" << "(" << x << "," << y << ")"<< "关于原点对称点是: (" << - x << "," << - y << ")" << endl;    

            break;    

        }    

    }    

    return (x, y);    

}    

double CPoint::Distance(CPoint p) const    

{    

    return sqrt((p.x - x) * (p.x - x) + (p.y - y) * (p.y - y));    

}    

    

double CPoint::Distance0() const    

{    

    return sqrt(x * x + y * y);    

}    

void CPoint::input()    

{    

    char c;    

    cout << "请输入点坐标:(格式:x,y)" << endl;    

    do    

    {    

        cin >> x >> c >> y;    

        if(c == ',')    

        {    

            break;    

        }    

       cout << "格式不正确,请重新输入:" << endl;    

    }while(1);    

}    

void CPoint::output()    

{    

    cout << "点坐标(" << x << "," << y << ")" << endl;    

}    

有点难,经过同学的指点做出来的,看来还是要多下功夫!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值