用Java写程序: (1)设计一个圆类Circle,该类存在于mycircle包中,它具有以下的属性和方法: 私有属性:圆半径r,圆心坐标x和y, 方法:设置和获取所有私有属性r,x,y的方法,方法名自定;计算圆周长的方法perimeter();计算圆面积的方法area(), 要求直接使用Math类中的PI; (2)设计一个圆柱体类Cylinder,该类存在于mycylinder包中,Cylinder继承Circle,它增加了以下属性和方法: 私有属性:高度h, 方法:设置和获取私有属性h的方法,方法名自定;计算表面积的方法area();计算体积的方法volume(); (3)编写一个Java Application程序Compute.java,用来显示某一个圆柱体中心坐标位置,高度h,以及它的表面积(不包括两个底的面积)、体积和底面积。要求圆半径r,圆心坐标x和y,以及高度h的值均从命令行输入。 提示及注意: 圆柱体的体积=底面积*高; 圆柱体的表面积=底面周长*高; 每一个圆柱体的生成,都是在原有的圆的基础上,添加高度生成的。 (4)测试类Computer.java程序,该类能够处理程序中可能出现的所有的异常 ,并有相应的提示信息。如命令行没有输入,则程序会向控制台输出“命令行没有输入,请输入正确的数值”这样的提示信息; 当输入半径(r)3、圆心(x)5、圆心(y)6,高度(h)7时,显示结果为“柱体的中心坐标位置为(5,6,3),高度为7 面积为197.92033717615698,体积为131.94689145077132,底面积为28.274333882308138”。
时间: 2024-02-13 18:05:10 浏览: 129
用Java写的一些程序
以下是实现上述要求的Java代码:
Circle类:
```java
package mycircle;
public class Circle {
private double r; // 圆半径
private double x; // 圆心x坐标
private double y; // 圆心y坐标
public void setR(double r) {
this.r = r;
}
public double getR() {
return r;
}
public void setX(double x) {
this.x = x;
}
public double getX() {
return x;
}
public void setY(double y) {
this.y = y;
}
public double getY() {
return y;
}
public double perimeter() {
return 2 * Math.PI * r;
}
public double area() {
return Math.PI * r * r;
}
}
```
Cylinder类:
```java
package mycylinder;
import mycircle.Circle;
public class Cylinder extends Circle {
private double h; // 圆柱体高度
public void setH(double h) {
this.h = h;
}
public double getH() {
return h;
}
public double area() {
return super.perimeter() * h + 2 * super.area();
}
public double volume() {
return super.area() * h;
}
}
```
Compute类:
```java
import java.util.Scanner;
import mycylinder.Cylinder;
public class Compute {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
try {
double r = Double.parseDouble(args[0]);
double x = Double.parseDouble(args[1]);
double y = Double.parseDouble(args[2]);
double h = Double.parseDouble(args[3]);
Cylinder c = new Cylinder();
c.setR(r);
c.setX(x);
c.setY(y);
c.setH(h);
double centerX = c.getX();
double centerY = c.getY();
double centerZ = c.getH() / 2;
double area = c.area() - 2 * c.area();
double volume = c.volume();
double bottomArea = c.area();
System.out.println("柱体的中心坐标位置为(" + centerX + "," + centerY + "," + centerZ + "),高度为" + h + " 面积为" + area + ",体积为" + volume + ",底面积为" + bottomArea);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("命令行没有输入,请输入正确的数值");
} catch (NumberFormatException e) {
System.out.println("输入的数值格式不正确,请输入正确的数值");
} catch (Exception e) {
System.out.println("程序出现异常:" + e.getMessage());
}
}
}
```
注意:在执行程序时,需要从命令行输入四个参数,依次是半径r、圆心x坐标、圆心y坐标和高度h。例如:
```
java Compute 3 5 6 7
```
执行结果为:
```
柱体的中心坐标位置为(5.0,6.0,3.5),高度为7.0 面积为197.92033717615698,体积为131.94689145077132,底面积为28.274333882308138
```
阅读全文