java编程
编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则...
编写一个程序,用于根据用户输入的命令行参数数量来计算长方形、正方形、三角形的面积。如果输入的参数为一个、二个、三个则它们应分别对应正方形、长方形、三角形,如果没有参数,则通过异常处理方法显示错误消息。
提示:定义一个抽象的父类,并提供一个抽象的方法area(). 再派生出三个子类,重写area()方法,然后在main方法中编写测试逻辑。 展开
提示:定义一个抽象的父类,并提供一个抽象的方法area(). 再派生出三个子类,重写area()方法,然后在main方法中编写测试逻辑。 展开
2个回答
展开全部
public class Test {
public static void main(String[] args) {
switch(args.length){
case 1:
System.out.println( (new Square(Double.parseDouble(args[0]))).area());
break;
case 2:
System.out.println(
(new Rectangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1])
)).area());
break;
case 3:
System.out.println(
(new Triangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1]),
Double.parseDouble(args[2])
)).area());
break;
default:
System.out.println("参数数量错误:"+args.length);
}
}
static abstract class Shape{
public abstract String area();
}
static class Square extends Shape{
private double l;
public Square(double l) {
this.l=l;
}
@Override
public String area() {
return String.format("正方形: 边长%.3f*边长%.3f=面积%.3f",l,l,l*l); }
}
static class Rectangle extends Shape{
private double w,h;
public Rectangle(double w, double h) {
this.w=w;
this.h=h;
}
@Override
public String area() {
return String.format("长方形: 长%.3f*宽%.3f=面积%.3f",w,h,w*h);
}
}
static class Triangle extends Shape{
private double a,b,c;
public Triangle(double a,double b, double c) {
this.a=a;
this.b=b;
this.c=c;
}
@Override
public String area() {
double p=(a+b+c)/2;
double area= Math.sqrt(p*(p-a)*(p-b)*(p-c));
return String.format("三角形: 边长%.3f, 边长%.3f, 边长%.3f => 面积%.3f",a,b,c,area);
}
}
}
=========================
三角形: 边长12.000, 边长4.200, 边长9.560 => 面积18.073
长方形: 长12.000*宽4.200=面积50.400
正方形: 边长12.000*边长12.000=面积144.000
==================
要自己做题,不然不会的还是自己
public static void main(String[] args) {
switch(args.length){
case 1:
System.out.println( (new Square(Double.parseDouble(args[0]))).area());
break;
case 2:
System.out.println(
(new Rectangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1])
)).area());
break;
case 3:
System.out.println(
(new Triangle(
Double.parseDouble(args[0]),
Double.parseDouble(args[1]),
Double.parseDouble(args[2])
)).area());
break;
default:
System.out.println("参数数量错误:"+args.length);
}
}
static abstract class Shape{
public abstract String area();
}
static class Square extends Shape{
private double l;
public Square(double l) {
this.l=l;
}
@Override
public String area() {
return String.format("正方形: 边长%.3f*边长%.3f=面积%.3f",l,l,l*l); }
}
static class Rectangle extends Shape{
private double w,h;
public Rectangle(double w, double h) {
this.w=w;
this.h=h;
}
@Override
public String area() {
return String.format("长方形: 长%.3f*宽%.3f=面积%.3f",w,h,w*h);
}
}
static class Triangle extends Shape{
private double a,b,c;
public Triangle(double a,double b, double c) {
this.a=a;
this.b=b;
this.c=c;
}
@Override
public String area() {
double p=(a+b+c)/2;
double area= Math.sqrt(p*(p-a)*(p-b)*(p-c));
return String.format("三角形: 边长%.3f, 边长%.3f, 边长%.3f => 面积%.3f",a,b,c,area);
}
}
}
=========================
三角形: 边长12.000, 边长4.200, 边长9.560 => 面积18.073
长方形: 长12.000*宽4.200=面积50.400
正方形: 边长12.000*边长12.000=面积144.000
==================
要自己做题,不然不会的还是自己
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询