第六周实验报告3

原创 2012年03月27日 21:29:20

实验目的:设计平面坐标点类,计算两点之间的距离、到原点的距离关于坐标轴和原点的对称点等

实验代码:

//设计平面坐标点类,计算两点之间的距离、到原点的距离关于坐标轴和原点的对称点等
#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)形式输出坐标点
};

void main()
{
    CPoint p1, p2;
    p1.input();
    p1.output();
    cout << "此点到原点的距离为: " << p1.Distance0() << endl;
    p1.SymmetricAxis(axisx);
    p1.SymmetricAxis(axisy);
    cout << endl;
    p2.input();
    p2.output();
    cout << "此点到原点的距离为: " << p2.Distance0() << endl;
    p2.SymmetricAxis(point);
    cout << endl << "这两点之间的距离为:";
    cout << p1.Distance(p2) << endl;
    system("pause");
}

void CPoint::input()
{
    double x1, y1;
    cin >> x1 >> y1;
    x = x1;
    y = y1;
}

void CPoint::output()
{
    cout << "(" << x << ", " << y << ")" << endl;
}

double CPoint::Distance(CPoint p) const
{
    double s = sqrt((p.x - x) *(p.x - x) + (p.y - y) * (p.y - y));

    return s;
}

double CPoint::Distance0() const
{
    double s1 = sqrt(x * x + y * y);

    return s1;
}

CPoint CPoint::SymmetricAxis(SymmetricStyle style) const
{
    switch(style)
    {
    case axisx: cout << "该点关于X轴的对称点为: " << "(" << x << ", " << -y << ")" << endl; break;
    case axisy: cout << "该点关于Y轴的对称点为: " << "(" << -x << ", " << y << ")" << endl; break;
    case point: cout << "该点关于原点的对称点为: " << "(" << -x << ", " << -y << ")" << endl; break;
    default: break;
    }

    return 0;
}

实验结果截图:


实验心得:

难点其实就在于在类类型中调用枚举类型啦,毕竟枚举类型学过去的时间稍微有些长了,而且在学的时候也没有针对性的练习,所以归根结底在于不能熟练的利用罢了,在写代码的之前,看看课本有关的章节,注意课本例题中给出的代码,回顾回顾,还是可以解决问题的;其次我个人觉得有些难度的还有求p点与已知点之间的距离的函数,因为因为参数是类,所以会在思维上有些困扰,不能像常见的数据类型那样熟练的调用,不过也还好啦,把它当作普通数据类型看待也就会好很多的。

第六周实验报告(3)

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生  * All rights reserved. * 文件名称:设计...

第六周实验报告(3)

#include #include using namespace std; enum SymmetricStyle { axisx,axisy,point};//分别表示按x轴, y轴...

《第六周实验报告任务3》

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:  ...

第六周实验报告(任务3)

*程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:  设计平面...

C++程序设计实验报告(四十五)---第六周任务三

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2012, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:计算...

第六周实验报告(二)

程序填空: 任务2A. #include using namespace std; class A { private: int a; ...
  • YtdxYHZ
  • YtdxYHZ
  • 2012年03月27日 19:06
  • 414

Java第六周实验报告

实验目的: 封装Trangle, Ladder, Circle类,完成相应的功能   实验代码: package com.DiLiuZhou; public class Trangle ...

第六周实验报告

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名称:  *...
  • rsnsdhr
  • rsnsdhr
  • 2012年03月26日 18:40
  • 401

第六周实验报告 任务二

源程序: #include using namespace std; class A { private: int a; public: A() {a=0;} ...

第六周实验报告(任务4)

程序头部注释开始 * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称:   三角形类...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第六周实验报告3
举报原因:
原因补充:

(最多只允许输入30个字)