| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1666 人关注过本帖
标题:测试一个名为Retangle的矩形类,并计算该矩形类的面积
只看楼主 加入收藏
liwenbo29
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-28
收藏
 问题点数:0 回复次数:5 
测试一个名为Retangle的矩形类,并计算该矩形类的面积
设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角与右上角两个点的坐标,能计算矩形的面积
我自己写的程序请高手指点
#include "iostream.h"
#include "math.h"
class Point
{
public:
    Point(int xx=0,int yy=0){X=xx;Y=yy;}
    Point(Point &p);
    int GetX() {return X;}
    int GetY() {return Y;}
private:
    int X,Y;
};
Point::Point(Point &p)
{
    X=p.X;
        Y=p.Y;
        
}
class Rectangle
{
public:
    Rectangle(Point xp1,Point xp2);
    double GetDis(){return dist;}
private:
    Point p1,p2;
    double dist;
};
Rectangle::Rectangle(Point xp1,Point xp2)
:p1(xp1),p2(xp2)
{
    
    double x=double(p1.GetX()-p2.GetX());
    double y=double(p1.GetX()-p2.GetY());
    dist =sqrt(x*x+y*y);
}
void main ()
{
    Point myp1(4,7),myp2(9,5);
    Rectangle myd(myp1,myp2);
    cout <<"The area is:";
    cout <<myd.GetDis()<<endl;
}
搜索更多相关主题的帖子: Retangle 矩形 面积 
2008-11-28 16:09
quqiuyu2005
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-11-28
收藏
得分:0 
在下不是高手,但可以请楼主注意几个地方可以写的更规范些,请共同思考。
#include "iostream.h"
#include "math.h"
class Point
{
public:
    Point(int xx=0,int yy=0){X=xx;Y=yy;}  //初始化方式
    Point(Point &p);
    int GetX() {return X;}
    int GetY() {return Y;}
private:
    int X,Y;
};
Point::Point(Point &p)//拷贝构造函数参数类型
{
    X=p.X;
        Y=p.Y;
        
}
class Rectangle
{
public:
    Rectangle(Point xp1,Point xp2);
    double GetDis(){return dist;}
private:
    Point p1,p2;
    double dist;
};
Rectangle::Rectangle(Point xp1,Point xp2)
:p1(xp1),p2(xp2)
{
   
    double x=double(p1.GetX()-p2.GetX());
    double y=double(p1.GetX()-p2.GetY());
    dist =sqrt(x*x+y*y);
}
void main ()
{
    Point myp1(4,7),myp2(9,5);
    Rectangle myd(myp1,myp2);
    cout <<"The area is:";
    cout <<myd.GetDis()<<endl;
}
2008-11-28 18:23
pmars
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2008-11-12
收藏
得分:0 
我不知道哪错了,我拿过去就开始改,之后你看看,
#include <iostream>
#include <cmath>
using namespace std;

class Point
{
public:
    Point(int xx=0,int yy=0){X=xx;Y=yy;}
    Point(Point &p);
    int GetX() {return X;}
    int GetY() {return Y;}
private:
    int X,Y;
};

Point::Point(Point &p)
{
    X=p.X;
    Y=p.Y;
        
}

class Rectangle
{
public:
    Rectangle(Point xp1,Point xp2);
    double GetDis(){return dist;}
private:
    Point p1,p2;
    double dist;
};

Rectangle::Rectangle(Point xp1,Point xp2)
{
    p1=xp1;
    p2=xp2;
    double x=double(p1.GetX()-p2.GetX());
    double y=double(p1.GetX()-p2.GetY());
    dist =sqrt(x*x+y*y);
}

int main ()
{
    Point myp1(4,7),myp2(9,5);
    Rectangle myd(myp1,myp2);
    cout <<"The area is:";
    cout <<myd.GetDis()<<endl;
    system("pause");
    return 0;
}

建议用c++版的写法!
2008-11-29 12:23
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
矩形的左下角与右上角
右上角和左下角各坐标的差不就是边长了。

倚天照海花无数,流水高山心自知。
2008-11-29 12:27
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
Point::Point(Point &p)
{
    X=p.X;
        Y=p.Y;
        
}
楼主这个构造函数MS没有用到啊 ,不知道用继承来写会不会好一点啊

不要在你的智慧中夹杂傲慢,也不要使你们的谦卑缺乏智慧的成分。
2008-11-29 13:58
snowstorm
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2008-10-12
收藏
得分:0 
回复 第4楼 nuciewth 的帖子
那如果矩形的长边不与x轴平行 这种方法不就不行了吗

坚持就是胜利 我要吃高档面包
2008-12-06 10:33
快速回复:测试一个名为Retangle的矩形类,并计算该矩形类的面积
数据加载中...
 
   



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

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