/* 函数综合练习题.cpp */ /* 一圆型游泳池如图所示,现在需在其周围建一圆型过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。 过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。 图形描述:大圆嵌套小圆: 小圆在大圆中间,小圆为游泳池,大圆与小圆间隔为过道。 */ #include using namespace std; const float PI = 3.14159; const float FencePrice = 35; const float ConcretePrice = 20; class Circle { private: float radius; public: Circle(float r); float Circumference() const; float Area() const; }; Circle::Circle(float r) { radius = r; } // 计算圆的周长 float Circle::Circumference() const { return 2 * PI * radius; } // 计算圆的面积 float Circle::Area() const { return PI * radius * radius; } int main(int argc, char const *argv[]) { float radius; float FenceCost, ConcreteCost; // 提示用户输入半径 cout << "Enter the radius of the pool: "; cin >> radius; // 声明 Circle 对象 Circle Pool(radius); Circle PoolRim(radius + 3); // 计算栅栏造价并输出 FenceCost = PoolRim.Circumference() * FencePrice; cout << "Fencing Cost is ¥" << FenceCost << endl; // 计算过道造价并输出 ConcreteCost = (PoolRim.Area() - Pool.Area()) * ConcretePrice; cout << "Concrete Cost is ¥" << ConcreteCost << endl; return 0; }