• YTU 2623: B 抽象类-形状


    2623: B 抽象类-形状

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 235  解决: 143

    题目描述

    定义一个抽象类Shape, 类中有两个纯虚函数。

    具体类正方形类Shape和矩形类Rectangle,公有继承抽象类Shape。


    请在下面的程序段基础上完成整个设计。

    在主程序中输入正方形类边长 和 矩形类的长和宽,输出对应形状的名称和面积。

    #include <iostream>
    using namespace std;

    //将程序需要的其他成份写在下面,只提交begin到end部分的代码
    //******************** begin ********************


    //********************* end ********************

    class Square:public Shape //正方形
    { public:
         Square(int l):edge(l){}
          void draw()
         {   
               cout<<"Square";
         }
         int area()
         {
              return edge*edge;
          }
    private:
         double edge; 
    };


    int main()
    {
       Shape * p=NULL;

       int e,l,w;
       cin>>e;

       Square  s(e);
       p=&s;
       p->draw();
       cout<<" area="<<p->area()<<endl;

       cin>>l>>w;
       Rectangle r(l,w);
       p=&r;
       p->draw();
       cout<<" area="<<p->area()<<endl;

       return 0;
    }

    输入

    正方形的边长  
    矩形的长和宽

    输出

    对应形状的名称 面积
    对应形状的名称 面积

    样例输入

    1
    3 4
    

    样例输出

    Square area=1
    Rectangle area=12

    提示

    只提交begin到end部分的代码

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include <iostream>
    using namespace std;
    class Shape
    {
    public:
        virtual void draw()=0;
        virtual int area()=0;
    };
    class Rectangle:public Shape
    {
    public:
        Rectangle(int rq,int h)
        {
            rr=rq;
            hh=h;
        }
        void draw()
        {
            cout<<"Rectangle";
        }
        int area()
        {
            return rr*hh;
        }
    private:
        double rr,hh;
    };
    class Square:public Shape //正方形
    {
    public:
        Square(int l):edge(l) {}
        void draw()
        {
            cout<<"Square";
        }
        int area()
        {
            return edge*edge;
        }
    private:
        double edge;
    };
    int main()
    {
        Shape * p=NULL;
        int e,l,w;
        cin>>e;
        Square s(e);
        p=&s;
        p->draw();
        cout<<" area="<<p->area()<<endl;
        cin>>l>>w;
        Rectangle r(l,w);
        p=&r;
        p->draw();
        cout<<" area="<<p->area()<<endl;
        return 0;
    }
    

  • 相关阅读:
    SPA项目开发之动态树以及数据表格和分页
    SPA项目开发之首页导航左侧菜单栏
    SPA项目开发之登录
    使用vue-cli搭建spa项目
    Splay 平衡树
    主席树(可持久化线段树 )
    P3195 [HNOI2008]玩具装箱TOY
    P2962 [USACO09NOV]灯Lights
    【hdu4405】AeroplaneChess
    HDU3853:LOOPS
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989518.html
Copyright © 2020-2023  润新知