#pragma once #include <iostream> #include <iomanip> using namespace std; class Base { public: virtual void disp() = 0; }; class Triangle : public Base { public: Triangle(double b, double h) : base(b), height(h) {} void disp() { double area = 0.5 * base * height; cout << "三角形面积:" << area << endl; } private: double base, height; }; class Square : public Base { public: Square(double l) : length(l) {} void disp() { double area = length * length; cout << "正方形面积:" << area << endl; } private: double length; }; class Circle : public Base { public: Circle(double r) : radius(r) {} void disp() { double area = 3.14 * radius * radius; cout << "圆形面积: " << fixed << setprecision(2) << area << endl; } private: double radius; };#include"标头.h" int main() { Base* p; Triangle t(20, 20); Square s(20); Circle c(20); p = &t; p->disp(); p = &s; p->disp(); p = &c; p->disp(); return 0; }如何修改才能使代码的输出结果为:“三角形面积:200 正方形面积:400 圆形面积:1256.64”
时间: 2024-03-10 08:47:51 浏览: 102
使用include <iostream>时一定要加using namespace std
您可以将 Circle 类的 disp 函数修改如下:
```
void disp() {
double area = 3.14 * radius * radius;
cout << "圆形面积: " << fixed << setprecision(2) << area << endl;
}
```
将 setprecision(2) 改为 setprecision(3),这样就可以输出保留两位小数的圆形面积了。另外,如果您想输出整数面积而不是带小数的面积,可以将所有 disp 函数中的 cout << 语句修改为以下形式:
```
cout << "三角形面积:" << (int)area << endl;
```
这样可以将面积转换为整数后输出。
阅读全文