打开考生文件夹下的解决方案文件proj2,此项目包含程序文件main.cpp,其中有类Graphics(“图形”)、lsocelesTriangles(“等腰三角形”)、Parallelogram(“平行四边形”)的定义和主函数main的定义。请在程序中的

admin2020-12-21  29

问题 打开考生文件夹下的解决方案文件proj2,此项目包含程序文件main.cpp,其中有类Graphics(“图形”)、lsocelesTriangles(“等腰三角形”)、Parallelogram(“平行四边形”)的定义和主函数main的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述定义。
    此程序的正确输出结果应为:

    注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不能删除或移动“//*******
found*******”。
    #include
    #include
    using namespace std;
    class Graphics//图形类
    {
    public:
    Graphics(int e):edges(e){}
    //*******found*******
  protected:
    int edges;
    };
    elasS IsocelesTriangles:public Graphics//等腰三角形类
    {
    public:
    IsocelesTriangles(int x):Graphics(x){}
    void Draw();
    };
    void lsocelesTrimlgles::Draw()
    int i,j;
    if(edges<=0)
    cout<<“errors”<<endl;
    if(edges>0)
    {
    for(i=0;i<edges;i++)
    {
    for(j=0;j<edges-i;j++)
    tout<<setw(2)<<’’;
    //*****found*****
    for(j=0; ________;j++)//输出每行的*号
    cout<<setw(2)<<‘*’;
    cout<<endl;
    }
    }
    cout<<endl;
}
//*********found*********
________//平行四边形类
{
public:
  Parallelogram(int x):Graphics(x){}
    void Draw();
};
void Parallelogram::Draw()
{
    int i,j;
    if(edges<=0)
    cout<<“erros”<<endl;
    if(edges>0)
    }
    for(i=0;i<edges;i++)
    {
    //*****found*****
    for(j=O; ________;j++)//输出前导空格
    cout<<setw(2)<<’’;
    for(j=0;j<edges;j++)
    cout<<setw(2)<<‘*’;
    cout<<endl;
    }
    }
    }
cout<<endl;
}
  int main()
  {
    Graphics*objs[2];
    objs [0]=new IsocelesTriangles(6);
    objs[1]=new Parallelogram(6);
    for(int i=0;i<2;i++)
    objs->Draw();
    delete objs[0];
    delete objs[1];
    return 0;
    }

选项

答案(1)virtual void Draw()=0; (2)j<2*i+l (3)class Parallelogram:public Graphics

解析 题意中,Graphics是基类,lsoeelesTriangles和Parallelogram是Graphics的派生类。main函数中定义成员Graphics指针类犁的数组objs.它包含两个元素,分别是IsoeelesTriangles和Parallelogram对象的地址,所以在for循环中,通过Graphics指针调用虚函数Draw。(1)由于程序中没有给出Graphics的成员函数Draw的定义,所以需要定义为纯虚函数。(2)根据输出可知,等腰三角形的Draw中,每行先输出空格,后输出*,每行的空格数量为edges-i,*号的数量为行号的2倍加1,即2 * i+l。(3)平行四边形和等腰三角形一样,公有继承于Graphics。(4)从题意输出可知,平行四边形的Draw函数也是先输出空格,后输出*,其中每行前导空格的数量分别为5,4,3,2,1,0,*的数量为edges个。
转载请注明原文地址:https://jikaoti.com/ti/F7l0FFFM
0

最新回复(0)