码迷,mamicode.com
首页 > 编程语言 > 详细

C++类与对象实验(六)

时间:2014-12-02 20:45:49      阅读:683      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   sp   on   文件   

题:

1、 设计描述平面坐标上的点CPoint类,该类满足下述要求:

•具有x,y坐标信息;

•具有带默认形参值的构造函数,参数分别用于初始化x和y坐标信息;

•具有获取x、y信息的GetX和GetY函数,具有设置x、y信息的SetX和SetY函数;

2、 设计一个矩形类CRectangle,该类满足下述要求:

•具有矩形的左下角和右上角两个点的坐标信息,这两个点的数据类型是CPoint;

•具有带参数的构造函数CRectangle(const CPoint &, const CPoint &),参数分别用于设置左下角和右上角两个点的坐标信息;

•具有设置左下角和设置右上角的两个点坐标的功能SetLPoint(const CPoint &)和SetRPoint(const CPoint &);

•具有获得周长(GetPerimeter)和获得面积(GetArea)的功能。

3、 在main函数中,完成以下工作:

•动态创建一个CRectangle类的对象a_rectagnle,其初始的左下角和右上角坐标分别为(2,5)、(6,8);调用GetPerimeter和GetArea获得矩形周长和面积,并将周长和面积显示在屏幕上;

///////////////////////////////////////////////////////

接下来,我把总的代码发出来:

我采用了.h和.cpp文件,类在.h文件中声明,在.cpp文件中定义。

总的工程包括:cpoint.h  cpoint.cpp  rectangle.h  rectangle.cpp  main.cpp

cpoint.h

#ifndef _CPOINT_H
#define _CPOINT_H
#include <iostream>
using namespace std;
class CPoint
{
public:
    CPoint(int X,int Y):x(X),y(Y){}
    int GetX();
    int GetY();
    void SetX(int);
    void SetY(int);    
private:
    int x,y;
};

#endif

cpoint.cpp

#include "cpoint.h"
int CPoint::GetX()
{
    return x;
}
int CPoint::GetY()
{
    return y;
}
void CPoint::SetX(int X)
{
    x=X;
}
void CPoint::SetY(int Y)
{
    y=Y;
}

rectangle.h

#ifndef _RECTANGLE_H
#define _RECTANGLE_H
#include "cpoint.h"
class CRectangle
{
public:
    CRectangle(const CPoint &a,const CPoint &b):c1(a),c2(b){}
    void SetLPoint(const CPoint &);
    void SetRPoint(const CPoint &);
    void GetPerimeter();
    void GetArea();
private:
    CPoint c1,c2;
};
#endif

rectangle.cpp

#include "rectangle.h"
#include "cpoint.h"
void CRectangle::SetLPoint(const CPoint &a)
{
    c1=a;
}
void CRectangle::SetRPoint(const CPoint &b)
{
    c2=b;
}
void CRectangle::GetPerimeter()
{
    int Perimeter=0;
    Perimeter=( c2.GetX()-c1.GetX() )*2 + ( c2.GetY()-c1.GetY() )*2;
    cout << "Perimeter is:" << Perimeter << endl;
}
void CRectangle::GetArea()
{
    int Area=0;
    Area=( c2.GetX()-c1.GetX() )*( c2.GetY()-c1.GetY() );
    cout<<"Area is:"<<Area<<endl;
}

main.cpp

#include "rectangle.h"
int main()
{
    const CPoint a(2,5),b(6,8);
    CRectangle *p=new CRectangle(a,b);
    p->SetLPoint(a);
    p->SetRPoint(b);
    p->GetPerimeter();
    p->GetArea();

    delete p;
    return 0;
}

OK,就是这样啦!

 

C++类与对象实验(六)

标签:style   blog   io   ar   color   os   sp   on   文件   

原文地址:http://www.cnblogs.com/ht-beyond/p/4138336.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!