-->
当前位置:首页 > Eng > 正文内容

函数题:使用类输出图形

Luz2年前 (2022-11-19)Eng769
声明一个图形基类 Shape,在它的基础上派生出矩形类 Rectangle 和圆形类 Circle,他们都有计算面积和周长、输出图形信息等成员函数,再在 Rectangle 类的基础上派生出正方形类 Square。编写程序完成各类的定义和实现,以及类的使用。
注意:
题目中定义的所有数值类型的变量都使用 double 类型
π的值为 3.14159

### 测试程序样例:
c++
#include <iostream>
#define PI 3.14159
using namespace std;

class Shape{
public:
double getArea(){return 0;}
double getPerimeter(){return 0;}
};

class Rectangle:public Shape {
protected:
double height;
double width;
public:
Rectangle() {};
Rectangle(double _height, double _width) {
height = _height;
width = _width;
}
double getArea(){
return height * width;
}
double getPerimeter(){
return 2 * (height + width);
}
void Print(){
cout << "Width=" << width << ",Height=" << height << endl;
}
};
/* 请在这里填写答案 */
int main() {
double ra, rb;
cin >> ra >> rb;
Rectangle r1(ra, rb);
double sa;
cin >> sa;
Square s1(sa);
double ca, cb, cc;
cin >> ca >> cb >> cc;
Circle c1(ca, cb, cc);
cout << "Rectangle" << endl;
r1.Print();
cout << "Area=" << r1.getArea() << endl;
cout << "Perimeter=" << r1.getPerimeter() << endl ;
cout << "Square" << endl;
s1.Print();
cout << "Area=" << s1.getArea() << endl;
cout << "Perimeter=" << s1.getPerimeter() << endl;
cout << "Circle" << endl;
c1.Print();
cout << "Area=" << c1.getArea() << endl;
cout << "Perimeter=" << c1.getPerimeter() << endl;
return 0;
}



### 输入样例:

在这里给出一组输入。例如:

in
4 2.5
8
4 5 6.5


### 输出样例:

out
Rectangle
Width=2.5,Height=4
Area=10
Perimeter=13
Square
Side=8
Area=64
Perimeter=32
Circle
Center=[4,5],Adius=6.5
Area=132.732
Perimeter=40.8407

### 提示
需要补充的类定义如下:
c++
class Square:public Rectangle{
//......
};
class Circle: public Shape{
//......
};








answer:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。