编程实现图形计算,可以通过计算不同图形的面积输出结果 图形包括平行四边形、矩形、三角形、圆形等 实现思路: 1. 定义形状类Shape,包含方法CalculatedArea() 2. 定义形状类的子类:矩形Rectangle、平行四边形Parallelogram、圆形Circle和三角形triangle 3. 定义运算类Operation,可以计算所有形状的面积
时间: 2023-06-09 18:06:23 浏览: 273
设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类、三角形类来继承图形类,并实现上述两个方法
5星 · 资源好评率100%
,需要传入一个形状类对象,调用形状类对象的CalculatedArea()方法计算面积并返回结果。
具体实现可以参考以下代码:
```
// 定义形状类
class Shape {
public:
virtual double CalculatedArea() = 0; // 求面积的抽象方法
virtual ~Shape() {}
};
// 矩形类
class Rectangle : public Shape {
public:
Rectangle(double width, double height) : width_(width), height_(height) {}
virtual double CalculatedArea() { return width_ * height_; } // 重写求面积方法
private:
double width_;
double height_;
};
// 平行四边形类
class Parallelogram : public Shape {
public:
Parallelogram(double width, double height) : width_(width), height_(height) {}
virtual double CalculatedArea() { return width_ * height_; } // 只需重写求面积方法,和矩形相同
private:
double width_;
double height_;
};
// 三角形类
class Triangle : public Shape {
public:
Triangle(double bottom, double height) : bottom_(bottom), height_(height) {}
virtual double CalculatedArea() { return bottom_ * height_ / 2; } // 重写求面积方法
private:
double bottom_;
double height_;
};
// 圆形类
class Circle : public Shape {
public:
Circle(double radius) : radius_(radius) {}
virtual double CalculatedArea() { return 3.14 * radius_ * radius_; } // 重写求面积方法
private:
double radius_;
};
// 运算类
class Operation {
public:
static double CalculatedShapeArea(Shape* shape) {
if (shape) {
return shape->CalculatedArea();
}
return 0;
}
};
```
使用时,可以先定义各个形状的对象,再通过Operation类计算面积:
```
// 例子:计算一个三角形和一个圆形的面积
int main() {
Shape* triangle = new Triangle(10.0, 5.0);
Shape* circle = new Circle(5.0);
double triangle_area = Operation::CalculatedShapeArea(triangle);
double circle_area = Operation::CalculatedShapeArea(circle);
std::cout << "Triangle area: " << triangle_area << std::endl;
std::cout << "Circle area: " << circle_area << std::endl;
delete triangle;
delete circle;
return 0;
}
```
阅读全文