首页 > 代码库 > C++类与对象实验(六)

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

题:

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++类与对象实验(六)