import java.util.Scanner; public class GeometryCalculator { public static void main(String[] args) { int userResponse; double [] sides; System.out.println("Welcome to the Geometry Calculator"); displayMenu(); userResponse = getUserInput(); switch(userResponse) { case 1: sides = getSideLengths(3); System.out.println("The area of your Triangle is " + computeTriangleArea(sides)); break; case 2: sides = getSideLengths(2); System.out.println("The area of your Rectangle is " + computeRectangleArea(sides)); break; case 3: sides = getSideLengths(1); System.out.println("The area of your Pentagon is " + computePentagonArea(sides)); break; default: System.out.println("Your response was invalid!"); } } public static void displayMenu() { System.out.println("*************************************"); System.out.println("1 - Triangle Area (3 Sides)"); System.out.println("2 - Rectangle Area (Length and Width)"); System.out.println("3 - Regular Pentagon Area (1 Side)"); System.out.println("*************************************"); } public static int getUserInput() { String userInput; Scanner keyboard = new Scanner(System.in); userInput = keyboard.nextLine(); if(userInput.equals("1")) { return 1; } else if(userInput.equals("2")) { return 2; } else if(userInput.equals("3")) { return 3; } else { return -1; } } private static double[] getSideLengths(int numSides) { double[] sideLengths = new double[numSides]; Scanner keyboard = new Scanner(System.in); for(int i = 0; i < numSides; i++) { System.out.print("Enter side " + (i+1)+ ": "); sideLengths[i] = keyboard.nextDouble(); } return sideLengths; } private static double computeTriangleArea(double[] sideLengths) { double s = (sideLengths[0] + sideLengths[1] + sideLengths[2])/2; return Math.sqrt(s * (s - sideLengths[0]) * (s - sideLengths[1]) * (s - sideLengths[2])); } private static double computeRectangleArea(double[] sideLengths) { return sideLengths[0] * sideLengths[1]; } private static double computePentagonArea(double[] sideLengths) { double apothem = sideLengths[0]/(2*Math.tan(Math.PI/5)); return ((sideLengths[0]/4)*apothem)*10; } }