| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:C++ 点类 求助
只看楼主 加入收藏
aoyue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
C++ 点类 求助
我是c++新手,想用c++,封装一个点类。具体实现点x、y坐标的加、减、乘、除、位移、旋转等功能。不知如何下手,请大家指导下,或者那位帮我写下,大致格式,我参照下。谢谢
搜索更多相关主题的帖子: 旋转 如何 
2010-11-05 22:05
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
我觉得你应该找本书看一下。
2010-11-05 22:24
zhj123
Rank: 2
等 级:论坛游民
帖 子:39
专家分:21
注 册:2010-8-31
收藏
得分:4 
支持一楼,先看看类的基本概念,建立啊
2010-11-05 22:54
burellow
Rank: 2
等 级:论坛游民
帖 子:7
专家分:24
注 册:2010-11-6
收藏
得分:4 
可以参照MFC的CPoint类。
2010-11-06 17:06
aoyue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-4
收藏
得分:0 
经过摸索,现在已经大体写好了,好请朋友,看看,看有什么不妥之处。

#include <iostream>
#include <math.h>

using namespace std;

class Point
{
private:
        double xval, yval;
public:
    Point(double x=0.0, double y=0.0)
    {
        xval = x;
         yval = y;
    }
  
    double x() { return xval; }
    double y() { return yval; }
}
  
    double dist(Point other)  //距离
    {
        double xd = xval - other.xval;
        double yd = yval - other.yval;
        return sqrt(xd*xd + yd*yd);
    }                                                            
    Point add(Point b)  //加
    {
        return Point(xval + b.xval, yval + b.yval);
    }
    Point sub(Point b)  //减
    {
        return Point(xval - b.xval, yval- b.yval);
    }
    Point mul(Point b)  //乘
    {
        return Point(xval * b.xva + yval * b.yval);
    }
    Point div(Point b)  //除
    {
        return Point(xval - b.xval, y - b.yval);
    }
    void move(double a, double y)  //移动
    {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        xval += a;
        yval += b;
    }
    void rotate(double x1, double y1)  //平面内旋转
    {  
       double a;
       //(x, yi)*(cosa, isina)=(x1,y1i)
       //即:(x1,y1(xcosa-ysina,i(sina+ycosa))
       x1 = xcosa - ysina;
       y1 = xsina + ycosa;
       return Point(x1, y1);
      
    }
}
2010-11-06 19:09
lurrass
Rank: 1
等 级:新手上路
帖 子:17
专家分:1
注 册:2010-9-13
收藏
得分:1 
#include <iostream>
#include <math.h>

using namespace std;

class Point
{
private:
        double xval, yval;
public:
    Point(double x=0.0, double y=0.0)
    {
        xval = x;
         yval = y;
    }
  
    double x() { return xval; }
    double y() { return yval; }
}
  
    double dist(Point other)  //距离
    {
        double xd = xval - other.xval;
        double yd = yval - other.yval;
        return sqrt(xd*xd + yd*yd);
    }                                                            
    Point add(Point b)  //加
    {
        return Point(xval + b.xval, yval + b.yval);
    }
    Point sub(Point b)  //减
    {
        return Point(xval - b.xval, yval- b.yval);
    }
    Point mul(Point b)  //乘
    {
        return Point(xval * b.xva + yval * b.yval);
    }
    Point div(Point b)  //除
    {
        return Point(xval - b.xval, y - b.yval);
    }
    void move(double a, double y)  //移动
    {aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
        xval += a;
        yval += b;
    }
    void rotate(double x1, double y1)  //平面内旋转
    {  
       double a;
       //(x, yi)*(cosa, isina)=(x1,y1i)
       //即:(x1,y1(xcosa-ysina,i(sina+ycosa))
       x1 = xcosa - ysina;
       y1 = xsina + ycosa;
       return Point(x1, y1);
      
    }
2010-11-06 19:35
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:6 
写得不错,这不是很快就学会了吗~~
2010-11-06 19:42
aoyue
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-11-4
收藏
得分:0 
呵呵,谢谢楼楼上那个的夸奖。我明天就要上交导师了。楼上有没有什么补充的呢?
2010-11-06 23:33
编程的乐趣
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:229
专家分:1027
注 册:2011-4-4
收藏
得分:0 
我也是个新手,请用类内实现和类外实现两种方法分别写下程序,对比着看能更清晰啊
2011-04-05 12:44
快速回复:C++ 点类 求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016585 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved