您好,欢迎来到六九路网。
搜索
您的当前位置:首页北方工大期末复习资料期中编程题答案

北方工大期末复习资料期中编程题答案

来源:六九路网


四、设计程序(共40分)

1)说明并定义一个长方形类CRectangle。其数据成员定义为私有,包括左下角点坐标x,y;x方向长度a与y方向长度b。定义公有成员函数作为CRectangle的外部接口,包括输入或修改长方形的坐标;输出该长方形坐标、长宽,周长与面积等若干个。必须包括以下函数:

①带参数的构造函数:实现在对象的创建时完成长方形坐标与尺寸的初始化。

②析构函数:使对象在被构造和析构时向用户发出相应提示信息。

③length()函数:计算长方形周长。

④area( )函数:计算长方形面积。

⑤求长方形重心与原点(0,0)距离的函数distance( ):将该函数声明为类CRectangle的友元函数,通过调用该函数计算长方形类的对象的重心与原点距离。

⑥重载运算符“<<”的函数:能输出CRectangle类对象的信息。

2)创建CRectangle的对象rect,左下角点(100,50),长度a=123,宽度b=68。调用类的成员函数或友元函数求该矩形周长、面积、矩形重心与原点距离。

答案:

[源程序]

1

#include

#include

using namespace std;

class CRectangle………………………………………………………………………………1分

{public:

CRectangle(double x1,double y1,double a1,double b1 );

~CRectangle( );

double length() const {return 2*(a+b);} ………………….………………………………5分

double area() const {return a*b;} …………………………………………………………5分

void set_xy(double xx,double yy){x=xx;y=yy;} //修改坐标

friend double distance(const CRectangle &); //加不加const都可以

friend ostream& operator <<(ostream &, CRectangle &);

private:

2

double x,y,a,b; ………………………………………………………………………………2分

};

CRectangle::CRectangle(double x1,double y1,double a1,double b1) ...………………………5分

{x=x1; y=y1; a=a1; b=b1;}

CRectangle::~CRectangle()....................................................…………………………………2分

{cout<<\"Destructor called.\"<double distance(const CRectangle &r2) …………………….…………………………………5分

{double d,xx,yy;

xx=r2.x+r2.a/2;yy=r2.y+r2.b/2; //注意:用r2.x等

d=sqrt(xx*xx+yy*yy);

return d;

}

ostream& operator <<(ostream &output, CRectangle &r) …………………………..…………5分

3

{output<<\"(\"<return output;

}

int main()

{ CRectangle rect(100,50,123,68); //创建对象 ……….……………………………………2分

cout<<\"长方形左下角点及两边长度为:\"<cout<<\"周长为:\"<cout<<\"面积为:\"<cout<<\"重心与原点的距离为:\"<//注意:对象rect在distance()中的位置

return 0;

}

运行结果://供参考,试卷上不用写出来

4

5

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 69lv.com 版权所有 湘ICP备2023021910号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务