用Java写例:一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键输入。要求编程计算并输出过道和栅栏的造价。
时间: 2024-10-09 08:02:29 浏览: 24
繁琐的游泳池
这是一个Java编程问题,我们可以按照需求定义两个类,一个是游泳池,另一个是过道。以下是简化的示例代码:
```java
import java.util.Scanner;
class Pool {
private double radius;
public Pool(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2 * Math.PI * radius; // 圆形游泳池周长
}
public double getArea() {
return Math.PI * Math.pow(radius, 2); // 游泳池面积
}
}
class Pathway {
private double width;
public Pathway(double width) {
this.width = width;
}
public double perimeterOfPathway(Pool pool) {
double outerRadius = pool.getRadius() + this.width; // 过道外圆半径
return 2 * Math.PI * outerRadius; // 过道周长
}
public double areaOfPathway(Pool pool) {
double innerRadius = pool.getRadius(); // 过道内圆半径
double pathwayWidth = this.width / 2; // 过道实际宽度
return Math.PI * Math.pow(outerRadius, 2) - Math.PI * Math.pow(innerRadius, 2) + pathwayWidth * Math.PI * (outerRadius - innerRadius);
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入游泳池半径:");
double radius = scanner.nextDouble();
Pool pool = new Pool(radius);
Pathway pathway = new Pathway(3);
double poolPerimeter = pool.getPerimeter();
double poolArea = pool.getArea();
double pathwayCost = pathway.perimeterOfPathway(pool) * 35; // 栅栏费用
double pathwayTotalArea = pathway.areaOfPathway(pool) * 20; // 过道总成本,包括地面和墙壁
System.out.println("游泳池的周长为:" + poolPerimeter + " 米,面积为:" + poolArea + " 平方米");
System.out.println("过道的总造价为:$" + pathwayCost + " 元,包括栅栏和过道地面");
System.out.println("过道总面积为:" + pathwayTotalArea + " 平方米");
}
}
```
这个程序会提示用户输入游泳池的半径,然后根据输入计算游泳池的周长、面积,以及过道的总长度(用于栅栏)和总面积(包括地面和两侧)。注意,栅栏按长度计费,而过道按面积计费。
阅读全文