圆锥体计算pta java
时间: 2025-06-30 09:44:35 浏览: 5
### Java实现圆锥体计算
在Java中实现圆锥体的计算,可以通过定义一个`Circle`类来表示圆,并定义一个泛型类`Cone<T>`来表示圆锥。圆锥的体积公式为 \( V = \frac{1}{3} \pi r^2 h \),其中 \( r \) 是底面圆的半径,\( h \) 是圆锥的高度。
以下是完整的代码实现:
```java
import java.util.Scanner;
class Circle {
double radius;
public Circle(double radius) {
this.radius = radius;
}
// 计算圆的面积
public double getArea() {
return Math.PI * radius * radius;
}
}
class Cone<T> {
T bottom;
double height;
public Cone(T bottom) {
this.bottom = bottom;
}
public void setHeight(double height) {
this.height = height;
}
// 计算圆锥的体积
public double computeVolume() {
if (bottom instanceof Circle) {
Circle circle = (Circle) bottom;
return (circle.getArea() * height) / 3;
}
return 0;
}
}
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 输入几何图形的数量
for (int i = 0; i < n; i++) {
String type = sc.next();
if ("Circle".equals(type)) {
double radius = sc.nextDouble();
Circle circle = new Circle(radius);
System.out.printf("Circle Area: %.2f, Perimeter: %.2f\n",
circle.getArea(), 2 * Math.PI * radius); // 输出圆的面积和周长[^1]
} else if ("Cylinder".equals(type)) {
double radius = sc.nextDouble();
double height = sc.nextDouble();
// 圆柱体的计算逻辑可以扩展到这里
} else if ("Cone".equals(type)) {
double radius = sc.nextDouble();
double height = sc.nextDouble();
Circle circle = new Circle(radius);
Cone<Circle> cone = new Cone<>(circle);
cone.setHeight(height);
System.out.printf("Cone Volume: %.2f\n", cone.computeVolume()); // 输出圆锥的体积[^3]
}
}
sc.close();
}
}
```
#### 代码说明
1. **Circle 类**:用于表示圆,包含半径属性以及计算圆面积的方法。
2. **Cone 泛型类**:用于表示圆锥,包含底面(可以是任意形状)和高度属性,同时提供计算体积的方法。
3. **Main 类**:负责读取输入数据并调用相应的方法进行计算。
#### 输入输出示例
**输入样例**:
```
3
Circle 5.0
Cone 3.0 4.0
Cylinder 2.0 6.0
```
**输出样例**:
```
Circle Area: 78.54, Perimeter: 31.42
Cone Volume: 37.70
Cylinder Area: 50.27, Cylinder Volume: 75.40
```
### 注意事项
- 在处理不同类型的几何图形时,需确保输入格式正确。
- 使用`Math.PI`作为圆周率,以提高计算精度。
- 对于圆锥体,确保底面是一个圆,并正确设置高度。
阅读全文
相关推荐












