Shape系列-9

2020年1月17日 951点热度 0人点赞 0条评论

Shape系列-9

时间: 1ms        内存:128M

描述:

小聪新买个白板要随意画图形。小聪认为自己变成水平不错了,于是自己编个程序,求随意画的三个图形的面积。但是写了大部分,发现了问题。问题一:三个图形的面积都是10000;问题二,case语句写的不好。小聪认为小强的Shape类有问题,请小强修改Shape类,并且帮自己完善case语句。下面是小聪给小强的程序代码。

#include<ctime>
#include<iostream>
#define PI 3.14
using namespace std;

class Shape
{
public:
 
 Shape(int c=0){color=c;}
 int getColor(){return color;}
 double area(){return 10000;};
 
protected:
 int color;
};

class Point:public Shape
{
public:
 Point(int c=0,double a=0,double b=0):Shape(c){x=a;y=b;}
 
 double getX(){return x;}
 double getY(){return y;}
 double area(){return 0;}
protected:
 double x,y;
};

class Circle:public Point
{
public:
 Circle(int c=0,double a=0,double b=0,double r=0)
  :Point(c,a,b){radius=r;}
 
 double getRadius(){return radius;}
 double area(){return PI*radius*radius;}
private:
 double radius;
};

class Rectangle:public Point
{
public:
 Rectangle(int c=0, double a=0,double b=0,double w=0,double h=0):
   Point(c,a,b),width(w),height(h){}
 
   double getWidth(){return width;}
   double getHeight(){return height;}
      double area(){return width*height;}
private:
 double width,height;
};

int main()
{
 int i,k,a,b,r,c,w,h;
 Shape *pt[3];
 for(i=0;i<3;i++)
 {
  cin>>c;
  cin>>a>>b;
  cin>>k;
  switch(k)
  {
  **************
  小聪的Case语句
  **************
  }
 }
 for(i=0;i<3;i++)
 {
  cout<<"Shape"<<i<<":color:"<<pt[i]->getColor()<<
   " position:"<<pt[i]->getX()<<","<<pt[i]->getY()<<
   " area:"<<pt[i]->area()<<endl;
 }
 return 0;
}

提示:请改错并填充后提交完整的程序。

输入:

三个图形的信息。每个图形的输入为三行。

第一行:图形的颜色c、位置 a 和 b;

第二行:图形的判定标志 k:0为点,1 为圆,2 为矩形;

第三行:图形的其他信息:点无信息、圆为半径r,矩形为宽w和高h。

输出:

三个图形的颜色、位置和面积。

示例输入:

5 1 2
0
6 2 3
1
1
7 3 4
2
10 20

示例输出:

Shape0:color:5 position:1,2 area:0
Shape1:color:6 position:2,3 area:3.14
Shape2:color:7 position:3,4 area:200

提示:

参考答案:

解锁文章

没有看到答案?微信扫描二维码可免费解锁文章

微信扫描二维码解锁

使用微信扫描二维码打开广告页面后可以立即关闭,再刷新此页面即可正常浏览此文章

所跳转广告均由第三方提供,并不代表本站观点!

已经扫描此二维码?点此立即跳转

code

这个人很懒,什么都没留下

文章评论