Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Illegal Triangle Exception: Define a Triangle class with three sides. In a trian

ID: 3642911 • Letter: I

Question

Illegal Triangle Exception:
Define a Triangle class with three sides. In a triangle, the sum of any two sides is greater than the other side. The Triangle class must adhere to this rule. Create the IllegalTriangleException class, and modify the constructor of the Triangle class to throw an IllegalTriangleException object if a triangle is created with sides that violate the rule.

For example, the constructor should throw the exception:
public Triangle(double side1, double side2, double side3) throws IllegalTriangleException {

Explanation / Answer

/* Illegal Triangle Exception*/ /* program to read 3 sides of a triangle */ /* through exception if the sum of 2 sides is not >= the third side*/ // create class triangle public class Triangle { //set some of the variables to be used in the class private double sideA; private double sideB; private double sideC; //we use a throw statement to check if the user input can create a valid triangle or if the input is invalid // create constructor public Triangle(double sideA, double sideB, double sideC) // throw exception throws IllegalTriangleException { if (sideA + sideB >= sideC && sideB + sideC >= sideA && sideA + sideC >= sideB && sideA > 0 && sideB > 0 && sideC > 0){ success(); } else{ throw new IllegalTriangleException(sideA, sideB, sideC); } }// end constructor //we create a small method to let the user know they have a valid triangle // create method success public void success(){ JOptionPane.showMessageDialog(null, "Success, you have a valid triangle."); } //we create a few accesors and mutators for the sides // create method setsideA public void setSideA(double sideA) { this.sideA = sideA; } // create method getSideA public double getSideA() { return sideA; } // create method setSideB public void setSideB(double sideB) { this.sideB = sideB; } // create method getSideB public double getSideB() { return sideB; } // create method setSideC public void setSideC(double sideC) { this.sideC = sideC; } // create method getSideC public double getSideC() { return sideC; } }// end class ---------------------------------------------------------------- // needed JoptionPnae import javax.swing.JOptionPane; // create class public class TriangleTest { /** * The program ask the user for three inputs/sides of a triangle, * the program passes this value into the classes and subclasses * to check and see if the input entered are a valid triangle * @param args */ // main method public static void main(String[] args){ //we ask the user for the triangle sides. String sideAString = JOptionPane.showInputDialog(null,"Enter the lenght for side A: "); // read sideA double sideA = Double.parseDouble(sideAString); String sideBString = JOptionPane.showInputDialog(null,"Enter the lenght for side B: "); // Read sideB double sideB = Double.parseDouble(sideBString); String sideCString = JOptionPane.showInputDialog(null,"Enter the lenght for side C: "); // read sideC double sideC = Double.parseDouble(sideCString); //we do a try-catch statements to check and see if the input is valid, if the input is not valid the catch part takes care of it try{ new Triangle(sideA, sideB, sideC); } catch(IllegalTriangleException ex){ JOptionPane.showMessageDialog(null, ex); } } }// end class -------------------------------------- /* create class IllegalTriangleException public class IllegalTriangleException extends Exception { //we set the variables to be used in the subclass protected double sideA; protected double sideB; protected double sideC; //i'm not quite sure what this is doing, i know is a constructor and we are passing the sides from the triangle class //but not quite sure why but I know that without it we get an error in the throw statement. public IllegalTriangleException(double sideA, double sideB, double sideC) { this.sideA = sideA; this.sideB = sideB; this.sideC = sideC; } //we override the toString to display the user that he had invalid numbers public String toString(){ return "You have entered invalid numbers"; } }// end class