使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转

admin2015-05-30  12

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
    (1)定义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型。请在注释//********1********之后添加适当的语句。
    (2)定义类CEarth的构造函数CEarth(double d,int r),并在其中计算地球绕太阳公转的轨道周长。假定:circumference=2*d*3.1416。请在注释//********2********之后添加适当的语句。
    (3)定义类Earth的成员display(),用于显示所有信息。包括地球距太阳的距离,地球的公转周期,以及地球绕太阳公转的轨道周长。请在注释//********3********之后添加适当的语句。
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
    l  #include
    2    using namespace std ;
    3    class CPlanet
    4    {
    5    protected:
    6    //********1********
    7
    8    public:
    9    CPIanet(double d,int r)
    10    {
    11    distance=d;
    12    revolvePeriod=r ;
    13    }
    14  };
    15  clasS CEarth:public CPlanet{
    16   double circumference ;
    17   public:
    18    //********2********
    19    CEarth(double d,int r)
    20    {
    21    circumference=2*d*3.1416 ;
    22    }
    23    //********3********
    24
    25    {
    26    cout<<”diStance="<    27    cout<    Period="<    28    Cout<<"revolution
circumference="<    29    }
    30  };
    31  void main()
    32    {
    33    CEarth earth(9300000,365);
    34    earth.display(),
    35  }

选项

答案(1)添加语句:double distance;int revolvePeriod; (2)将“CEarth(double d,int r)”补充完整为:CEarth(double d,int r):CPIanet(d,r) (3)添加语句:void display()

解析 程序中定义了类CPlanet和CEarth,CEa~h公有派生于类CPlanet。类CPlanet含有保护成员变量distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期,类CEarth含有成员变量circumference,表示地球绕太阳公转的轨道周长,其构造函数CEarth(double d,int r)计算处地球绕太阳公转的轨道周长赋值给circumference,display()用于显示所有信息。
    [解题思路]
(1)题目1要求“义类CPlanet的保护数据成员distance和revolvePeriod,它们分别表示行星距太阳的距离和行星的公转周期。其中,distance为double型,revolvePeriod为int型”,因此第1个标识下是添加数据成员distance和revolvePeriod的声明,因此第1个标识下应添加“doubledistance;int revolvePeriod;”。
(2)假定:circumference=2 d 3.1416”,第2个标识下构造函数CEarth(double d,int r)完成类成员变量的初始化,在函数体内部完成了circumference的初始化,而变量distance和revolvePeriod并没有初始化,需调用基类的构造函数来初始化这两个变量,因此第2个标识下应改为“CEarth(double d,int r):CPlanet(d,r)”。
(3)第3个标识下完成成员函数displayO的定义,函数display()的返回值为void,因此第3个标识下应添加“void display()”。
转载请注明原文地址:https://kaotiyun.com/show/fJNp777K
0

最新回复(0)