zoukankan      html  css  js  c++  java
  • 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;
    }
    

  • 相关阅读:
    【Java并发】并发笔记(一)
    【深入Java基础】排序算法(一)
    QDU-GZS and String
    牛客网36-A,B题解
    QDU-GZS与素数大法(素数筛法)
    csdn自动展开+去广告+净化剪切板+免登陆(如有侵权,立即删博)
    QDU第一届程序设计大赛——E到I题解法(非官方题解)
    Codeforces Round #529 -C- Powers Of Two(二进制拆分)
    CodeForces
    分配物资(模拟)
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989518.html
Copyright © 2011-2022 走看看