Note that there are some explanatory texts on larger screens.

plurals
  1. POOOP advice - should I change how my program runs?
    primarykey
    data
    text
    <p>below I have a small program i wrote for working out the area of shapes....</p> <p>My question is this the right way to do it, a friend did similar and had multiple shapes which inherited from main shape. OOP? is mine ok as i will only ask the area of a shape and no more? and how would i change this to make it more OO?</p> <p>Main Prog /////</p> <pre><code>package areaprog; import java.util.Scanner; import java.util.InputMismatchException; public class Mainprog { public static void main (String [] args){ //Area Menu Selection System.out.println("What shape do you need to know the area of?\n" + "1: Square?\n" + "2: Rectangle?\n" + "3: Triangle?\n" + "4: Circle? \n" + "5: Exit\n" ); //User input for menu Scanner reader = new Scanner(System.in); System.out.println("Number: "); //Menu syntax checking while (!reader.hasNextDouble()) { System.out.println("Thats not a number you tool.\n"); System.out.println("Now pick again\n" + "1: Square?\n" + "2: Rectangle?\n" + "3: Triangle?\n" + "4: Circle? \n" + "5: Exit\n" ); reader.next(); //ask for next token } double input = reader.nextDouble(); reader.nextLine(); //Depending on user selection, depends on what method is called using switch. Scanner scan = new Scanner(System.in); //Square selection and InputMismatch Exception try { if (input == 1){ System.out.println("What is a length of 1 side of the Square?\n"); double s1 = scan.nextDouble(); double SqAns = AreaCalculator.getSquareArea(s1); System.out.println("The area of you square is: " + SqAns); } } catch (InputMismatchException e) { System.out.println("Why are you trying to be clever? use an interger"); } //Rectangle selection if (input == 2){ System.out.println("What is the width of your rectangle?.\n"); double r1 = scan.nextDouble(); System.out.println("What is the height of your rectangle?\n"); double r2 = scan.nextDouble(); double RecAns = AreaCalculator.getRectArea(r1, r2); System.out.println("The area of your rectangle is: " + RecAns); } //Triangle selection if (input == 3){ System.out.println("What is the base length of the triangle?."); double t1 = scan.nextDouble(); System.out.println("What is the height of your triangle?"); double t2 = scan.nextDouble(); double TriAns = AreaCalculator.getTriArea(t1, t2); System.out.println("The area of your triangle is " + TriAns); } //Circle selection if (input == 4){ System.out.println("What is the radius of your circle?."); double c1 = scan.nextDouble(); double CircAns = AreaCalculator.getCircleArea(c1); System.out.println("The area of your circle is " + CircAns); } //Exit application if (input == 5){ System.out.println("Goodbye."); } } } </code></pre> <p>AreaCalculator.java ////</p> <pre><code> package areaprog; public class AreaCalculator { public static double getRectArea(double width, double height) { double aValue = width * height; return aValue; } public static double getCircleArea(double radius){ double PI = Math.PI; double aValue = PI * Math.pow(radius, 2); return aValue; } public static double getSquareArea(double side) { double aValue = Math.pow(side, 2); return aValue; } public static double getTriArea(double base , double height) { double aValue = (base/2)* height; return aValue; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload