大佬们救救孩子吧,呜呜

设计一个多文件工程程序,其功能是计算圆周和矩形的面积和周长。

望采纳

下面是一个计算圆周和矩形的面积和周长的多文件工程程序的示例代码。它包含两个文件:shape.h和shape.cpp。

shape.h内容如下

#include <iostream>
#include <cmath>

// 定义 Shape 类
class Shape {
public:
  // 计算面积的虚函数
  virtual double area() const = 0;
  // 计算周长的虚函数
  virtual double perimeter() const = 0;
};

// 定义 Circle 类
class Circle: public Shape {
public:
  // Circle 类的构造函数,用于初始化圆的半径
  Circle(double radius): radius_(radius) {}

  // 计算圆的面积
  double area() const override {
    return M_PI * radius_ * radius_;
  }

  // 计算圆的周长
  double perimeter() const override {
    return 2 * M_PI * radius_;
  }

private:
  // 圆的半径
  double radius_;
};

// 定义 Rectangle 类
class Rectangle: public Shape {
public:
  // Rectangle 类的构造函数,用于初始化矩形的长和宽
  Rectangle(double length, double width): length_(length), width_(width) {}

  // 计算矩形的面积
  double area() const override {
    return length_ * width_;
  }

  // 计算矩形的周长
  double perimeter() const override {
    return 2 * (length_ + width_);
  }

private:
  // 矩形的长和宽
  double length_, width_;
};

shape.cpp文件内容如下:

#include "shape.h"

int main() {
  // 创建一个圆形,半径为 5
  Circle circle(5);
  // 计算圆的面积和周长
  std::cout << "Circle area: " << circle.area() << std::endl;
  std::cout << "Circle perimeter: " << circle.perimeter() << std::endl;

  // 创建一个长为 10,宽为 5 的矩形
  Rectangle rectangle(10, 5);
  // 计算矩形的面积和周长
  std::cout << "Rectangle area: " << rectangle.area() << std::endl;
  std::cout << "Rectangle perimeter: " << rectangle.perimeter() << std::endl;

  return 0;
}

如果你运行这段代码,它应该会输出:

Circle area: 78.5398
Circle perimeter: 31.4159
Rectangle area: 50
Rectangle perimeter: 30