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

  • 7
  • 0
  • 约1.93千字
  • 约 2页
  • 2020-10-06 发布于浙江
  • 举报

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

PAGE PAGE 2 四、设计程序(共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。调用类的成员函数或友元函数求该矩形周长、面积、矩形重心与原点距离。 答案: [源程序] #include iostream #include math 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: 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分 {coutDestructor called.endl;} 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分 {output(r.x,r.y),a=r.a,b=r.b; return output; } int main() { CRectangle rect(100,50,123,68); //创建对象 ……….……………………………………2分 cout长方形左下角点及两边长度为:rectendl; …………………………………2分 cout周长为:rect.length()endl; ………………..…………………………………2分 cout面积为:rect.area()endl; …………………….………………………………2分 cout重心与原点的距离为:distance(rect)endl; …………………………………2分 //注意:对象rect在distance()中的位置 return 0; } 运行结果://供参考,试卷上不用写出来

文档评论(0)

1亿VIP精品文档

相关文档