用C++编写程序计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来(精确到小数点后2位)。
时间: 2024-10-18 11:19:56 浏览: 50
太原理工大学面向对象程序设计实验指导
在C++中编写这样的程序,首先需要定义结构体或类来表示各种几何形状,并包含计算面积的方法。以下是基本的步骤:
1. 定义一个基类Shape,包含一个纯虚函数`calculateArea()`,它将在派生类中被重写。
```cpp
class Shape {
public:
virtual double calculateArea() const = 0; // 纯虚函数,用于声明但不提供实现
};
```
2. 创建三个派生类Circle, Rectangle, Square,分别继承自Shape并实现各自的面积计算方法。
```cpp
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) : radius(r) {}
double calculateArea() const override { return M_PI * radius * radius; }
};
class Rectangle : public Shape {
private:
double length, width;
public:
Rectangle(double l, double w) : length(l), width(w) {}
double calculateArea() const override { return length * width; }
};
class Square : public Shape {
private:
double side;
public:
Square(double s) : side(s) {}
double calculateArea() const override { return side * side; }
};
```
3. 主函数部分,接受用户的选择和输入,然后调用相应类的`calculateArea()`函数。
```cpp
int main() {
int choice;
std::cout << "请输入图形类型(1-圆形,2-长方形,3-正方形): ";
std::cin >> choice;
Shape* shape;
switch (choice) {
case 1:
double radius;
std::cout << "请输入圆的半径: ";
std::cin >> radius;
shape = new Circle(radius);
break;
case 2:
double length, width;
std::cout << "请输入长方形的长度和宽度: ";
std::cin >> length >> width;
shape = new Rectangle(length, width);
break;
case 3:
double side;
std::cout << "请输入正方形的边长: ";
std::cin >> side;
shape = new Square(side);
break;
default:
std::cerr << "无效选择" << std::endl;
return 1;
}
double area = shape->calculateArea();
std::cout << "图形面积: " << fixed << setprecision(2) << area << std::endl;
delete shape; // 释放内存
return 0;
}
```
阅读全文