请使用Ve6或使用【答题】菜单打开考生目录pmj3下的工程文件pmj3。此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示三角形的类MyTriangle;程序应当显示: 6.82843 2 但程序中有缺

admin2019-03-05  32

问题 请使用Ve6或使用【答题】菜单打开考生目录pmj3下的工程文件pmj3。此工程中包含一个源程序文件proj3.cpp,其中定义了用于表示平面坐标系中的点的类MyPoint和表示三角形的类MyTriangle;程序应当显示:
6.82843
2
但程序中有缺少部分,请按照以下提示,把缺失部分补充完整:
(1)在“//**1******found****”的下方是构造函数的定义,它用参数提供的3个顶点对point1、point2和point3进行初始化。
(2)在“//**2******found****”的下方是成员函
数perimeter的定义,该函数返回三角形的周长。
(3)在“//**3******found****”的下方是成员函
数area的定义中的一条语句。函数area返回三角形的面积。
方法是:若a、b、c为三角形的3个边长,并令s=,则三角形的面积A为A=
注意:只在指定位置编写适当代码,不要改动程序中的其他内容,也不要删除或移动“****found****”。
j/proj3.cpp
#include
#include
USingnamespacestd;
classMyPoint{//表示平面坐标系中的点的类
doublex;
doubley;
public:
MyPoint(doublex,doubley)
{this->x=x;this->y=y;}
doublegetX()const{returnx;}
doublegetY()const{returny;}
voidshow()const{cout<<’(’<},
classMyTriangle{//表示三角形的类
MyPointpointl;//三形的第一个顶点
MyPointpoint2;//三形的第二个顶点
MyPointpoint3;//三角形的第三个顶点
public:
MyTriangle(MyPointp1,MyPointp2,
MyPointp3);
doubleperimeter()const;//返回三角形的周长
doublearea()const;//返回三角形的面积
};
//**1************found**********
MyTriangle::MyTriangle(MyPointp1,
MyPointp2,MyPointp3):________{}
doubledistance(MyPointp1,MyPointp2)//返回两点之间的距离
{
returnsqrt((p1.getX()-p2.getX
())*(p1.getX()-p2.getX())+(p1.
getY()-p2.getY())*(p1.getY()-p2.
getY()));
}
//**2************found**********
doubleMyTriangle________
{
returndistance(point1,point2)+
distance(point2,point3)+distance
(point3,pointl);
}
doubleMyTriangle::area()const
{//**3************found**********
doubleS=________;//使用perimeter函数
returnsqrt(S*(S—distance
(pointl,point2))*(S—distance
(point2,point3))*(S—distance
(point3,pointl)));
}
intmain()
{
MyTriangletri(MyPoint(0,2),MyPoint(2,0),MyPoint(0,0));
cout<tri.area()<return0;
}

选项

答案(1)point1(p1), point2(p2), point3(p3) (2)::perimeter()const (3)(this->perimeter())/2

解析 (1)主要考查考生对构造函数的掌握,使用成员列表初始化。
(2)主要考查考生对成员函数的掌握,根据类的定义中对该函数的声明:double perimeter()const,可知返回类型为double型。
(3)主要考查考生对成员函数调用的掌握,程序要求使用perimeter函数,因此这里直接调用perimerter函数即可。
转载请注明原文地址:https://kaotiyun.com/show/lvAp777K
0

最新回复(0)