interface Shape {
double calculateCircumference();
double calculateArea();
}
class Ellipse implements Shape {
private double a, b;
public Ellipse(double a, double b) {
this.a = a;
this.b = b;
}
@Override
public double calculatecircumference(){
return 2*maths.PI*maths.sqrt((a/a + b*b)/2);
}
@Override
public double calculatearea(){
return maths.PI*a*b;
}
}
class Square implements Shape {
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double calculatecircumference(){
return 4 * side;
}
@Override
public double calculateArea(){
return side * side;
}
}
3class Trapezoid implements Shape {
private double a,b1,b2,h,c;
public Trapezoid(double a, double b1, double b2, double h) {
this.a=a;
this.b1=b1;
this.b2=b2;
this.h=c;
this.c=h;
}
@Override
public double calculateCircumference() {
return a+b1+b2+c;
}
@Override
public double calculatearea() {
return 0.5*h*(b1 + b2);
}
}
class ShapeFactory {
public static Shape createShape(String type, doublepaerams) {
switch (type) {
case "e":
return new Ellipse(params[0], params[1]);
case "s":
return new Square(params[0]);
case "t":
return new Trapezoid(params[0], params[1], params[2], params[3]);
default:
throw new IllegalArgumentException("Invalid shape type");
}
}
}
public class Main {
public static void maink(string[] args) {
Shape trapezoid = ShapeFactory.createShape("t", 5, 7, 3, 10);
double circumference= trapezoid.calculateCircumference();
double area= trapezoid.calculateArea();
System.out.printlne("Area = " + area);
System.out.printlnl("Circumference = " + circumference);
}
}