Advertisement
nate23nate23

hw 5 works

Oct 24th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.51 KB | None | 0 0
  1. /*
  2.  * Name:Nate Wheeler
  3.  * Date:10-23-2016
  4.  * Course Number:csc220
  5.  * Course Name:data structures
  6.  * Problem Number:hw 5
  7.  * Email: nate23nate23@gmail.com
  8.  * Short Description of the Problem:
  9.  * Design and implement a class named Triangle that extends Shape.
  10.  */
  11.  
  12. package shapes;
  13.  
  14. public class Triangle extends Shape {
  15.     private double side1;
  16.     private double side2;
  17.     private double side3;
  18.  
  19.     public Triangle() {
  20.         super("white", false);
  21.         this.side1 = 1.0;
  22.         this.side2 = 1.0;
  23.         this.side3 = 1.0;
  24.  
  25.     }
  26.  
  27.     public Triangle(double s1, double s2, double s3) throws NonTriException {
  28.         super("white", false);
  29.         if (sideCheck(s1, s2, s3) == false)
  30.             throw new NonTriException("This is not a Triangle.");
  31.         this.side1 = s1;
  32.         this.side2 = s2;
  33.         this.side3 = s3;
  34.         this.getDateCreated();
  35.     }
  36.  
  37.     public Triangle(double s1, double s2, double s3, String color, boolean filled) throws NonTriException {
  38.         super(color, filled);
  39.         if (sideCheck(s1, s2, s3) == false)
  40.             throw new NonTriException("This is not a Triangle.");
  41.         this.side1 = s1;
  42.         this.side2 = s2;
  43.         this.side3 = s3;
  44.     }
  45.  
  46.     public double getSide1() {
  47.         return this.side1;
  48.     }
  49.  
  50.     public double getSide2() {
  51.         return this.side2;
  52.     }
  53.  
  54.     public double getSide3() {
  55.         return this.side3;
  56.     }
  57.  
  58.     public void setSide1(double s1) {
  59.         this.side1 = s1;
  60.     }
  61.  
  62.     public void setSide2(double s2) {
  63.         this.side2 = s2;
  64.     }
  65.  
  66.     public void setSide3(double s3) {
  67.         this.side3 = s3;
  68.     }
  69.  
  70.     public double getArea() {
  71.         //check to see if sides make a triangle, proof against incorrect setters
  72.         if (sideCheck(this.side1, this.side2, this.side3) == true){
  73.         double s = (this.side1 + this.side2 + this.side3) / 2;
  74.         return Math.sqrt(s * (s - this.side1) * (s - this.side2) * (s - this.side3));
  75.         }
  76.         return -1;
  77.     }
  78.  
  79.     public double getPerimeter() {
  80.         //will return -1 if triangle check is false
  81.         if (sideCheck(this.side1, this.side2, this.side3) == true){
  82.         return this.side1 + this.side2 + this.side3;
  83.         }
  84.         return -1;
  85.     }
  86.  
  87.     public String toString() {
  88.         return "Triangle: side1 = " + this.side1 + ", side2 = " + this.side2 + ", side3 = " + this.side3;
  89.     }
  90.  
  91.     public boolean sideCheck(double s1, double s2, double s3) {
  92.         return ((s1 + s2) > s3 && (s3 + s2) > s1 && (s1 + s3) > s2);
  93.     }
  94.  
  95.     // exception for when sides dont make triangle
  96.     class NonTriException extends RuntimeException {
  97.         /**
  98.          *
  99.          */
  100.         private static final long serialVersionUID = 1L;
  101.  
  102.         public NonTriException() {
  103.         }
  104.  
  105.         public NonTriException(String message) {
  106.             super(message);
  107.         }
  108.     }
  109.  
  110. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement