
(Triangle class) Design a new Triangle class that extends the abstract GeometricObject class. Draw the UML diagram for the classes Triangle and GeometricObject then implement the Triangle class. Write a test

Program to create Triangle class
Program Plan:
- Include a class name named “Exercise_13_01”.
- Include the scanner package.
- Declare the main() function.
- Create a scanner object.
- Prompt the user to enter three sides of the triangle.
- Prompt the user to enter a color.
- Prompt the user to enter a Boolean value on whether the triangle is filled.
- Create triangle object with the entered user input.
- Set color and set filled in the triangle.
- Print the output.
- Close the main() function.
- Close the class “Exercise_13_01”.
- Include an abstract class “GeometricObject”.
- Declare all the data types of the variables.
- Construct a default geometric object.
- Construct a geometric object with color and filled value.
- Assign color and fill to the object.
- Set a new color.
- Define an isFilled method returns filled and since filled is Boolean; the get method is named isFilled.
- Set a new filled and getDateCreated method.
- Override toString function to return output.
- Define Abstract method getArea.
- Define Abstract method getPerimeter.
- Close class.
- Include a class “Triangle” that extends the class GeometricObject.
- Declare the three sides of the triangle.
- Include a triangle constructor.
- Assign values to all three sides of the triangle.
- Assign triangle values to all attributes.
- Return side1 and Set side1 to a new length.
- Return side2 and Set side2 to a new length.
- Return side3 and Set side3 to a new length.
- Create a Function to return area of the Triangle.
- Create a function to return a string description of the object.
- Close class.
The java code to design a new Triangle class that extends the abstract GeometricObject class and to design a test program that prompts the user to enter three sides of the triangle, a color, and a Boolean value to indicate whether the triangle is filled or not.
Explanation of Solution
Program:
File name: Exercise_13_01.java
//package to have user input
import java.util.Scanner;
//class Definition
public class Exercise_13_01
{
// Main method
public static void main(String[] args)
{
// Create a Scanner object
Scanner input = new Scanner(System.in);
/* Prompt the user to enter three sides of the triangle */
System.out.print("Enter three side of the triangle: ");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
// Prompt the user to enter a color
System.out.print("Enter a color: ");
String color = input.next();
/*Prompt the user to enter a boolean value on whether the triangle is filled*/
System.out.print("Is the triangle filled (true / false)? ");
boolean filled = input.nextBoolean();
/* Create triangle object with the entered user input */
Triangle triangle = new Triangle(side1, side2, side3);
// set color
triangle.setColor(color);
// set filled
triangle.setFilled(filled);
// print the output
System.out.println(triangle.toString());
System.out.println("Area: " + triangle.getArea());
System.out.println("Perimeter: " + triangle.getPerimeter());
System.out.println("Color: " + triangle.getColor());
System.out.println("Triangle is" + (triangle.isFilled() ? "" : " not ")
+ "filled");
}
}
Filename: GeometricObject.java
//abstract class GeometricObject definition
public abstract class GeometricObject
{
//data type declaration
private String color = "while";
private boolean filled;
private java.util.Date dateCreated;
// Construct a default geometric object
protected GeometricObject()
{
dateCreated = new java.util.Date();
}
/* Construct a geometric object with color and filled value */
protected GeometricObject(String color, boolean filled)
{
dateCreated = new java.util.Date();
//assign color and fill
this.color = color;
this.filled = filled;
}
// Return color
public String getColor()
{
return color;
}
// Set a new color
public void setColor(String color)
{
this.color = color;
}
/* isFilled method returns filled and Since filled is boolean,the get method is named isFilled */
public boolean isFilled()
{
return filled;
}
// Set a new filled
public void setFilled(boolean filled)
{
this.filled = filled;
}
// Get dateCreated
public java.util.Date getDateCreated()
{
return dateCreated;
}
//override toString function to return output
@Override
public String toString()
{
return "created on " + dateCreated + "\ncolor: " + color +
" and filled: " + filled;
}
// define Abstract method getArea
public abstract double getArea();
//Define Abstract method getPerimeter
public abstract double getPerimeter();
}
Filename: Triangle.Java
/*Class definition of Triangle that extends the class GeometricObject */
public class Triangle extends GeometricObject
{
//declare the three sides of the triangle
private double side1;
private double side2;
private double side3;
//triangle constructor
public Triangle()
{
}
//assign values to all three sides of the triangle
public Triangle(double side1, double side2, double side3)
{
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
//assign triangle values to all attributes
public Triangle(double side1, double side2, double side3, String color, boolean filled)
{
this(side1, side2, side3);
setColor(color);
setFilled(filled);
}
// Return side1
public double getSide1()
{
return side1;
}
// Set side1 to a new length
public void setSide1(double side1)
{
this.side1 = side1;
}
// Return side2
public double getSide2()
{
return side2;
}
// Set side2 to a new length
public void setSide2(double side2)
{
this.side2 = side2;
}
// Return side3
public double getSide3()
{
return side3;
}
// Set side3 to a new length
public void setSide3(double side3)
{
this.side3 = side3;
}
// Function to Return area of the Triangle
@Override
public double getArea()
{
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
/* override function to Return perimeter of the triangle */
@Override
public double getPerimeter()
{
return side1 + side2 + side3;
}
/*override function to Return a string description of the object*/
@Override
public String toString()
{
return super.toString() + "\nArea: " + getArea() + "\nPerimeter: " + getPerimeter();
}
}
UML Diagram:
Explanation:
- Here, GeometricObject is an abstract class that extends the triangle class which is represented using an arrow. The triangle class then contains a rectangle that represents the objects used to input the three sides of the triangle.
- The remaining part is used to represent all the methods and functions used in the triangle class.
- The Triangle() method creates a triangle with default sides. The method Triangle(side1:double, side2; double,side3;double) creates a triangle of the specified sides.
- Then the respective sides of the triangles are returned using getSide() methods.
- Then the method getArea() returns the area of the triangle and the method getPerimeter() returns the perimeter of the triangle and the function toString() returns a string description of the object.
Enter three side of the triangle: 3
4
5
Enter a color: red
Is the triangle filled (true / false)? false
created on Sun Jul 08 13:24:03 IST 2018
color: red and filled: false
Area: 6.0
Perimeter: 12.0
Area: 6.0
Perimeter: 12.0
Color: red
Triangle is not filled
Want to see more full solutions like this?
Chapter 13 Solutions
Introduction to Java Programming and Data Structures, Comprehensive Version Plus MyProgrammingLab with Pearson EText -- Access Card Package
Additional Engineering Textbook Solutions
Elementary Surveying: An Introduction To Geomatics (15th Edition)
Modern Database Management
SURVEY OF OPERATING SYSTEMS
Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)
Computer Science: An Overview (13th Edition) (What's New in Computer Science)
Starting Out with C++ from Control Structures to Objects (9th Edition)
- Instructions This is an individual assessment - not a group assessment. AND NOT FOR GRADING PURPOSES. NOTE: The marks allocation on each bullet point below is only there to give an idea of how much the questions/instructions in bullet points would be in a real assessment. But regardless provide accurate report that will not have high plagiarism. Write a report which addresses the following: Discuss Software Quality in the context of Software Engineering and how it can be achieved. Discuss any one aspect/attribute/characteristic of Software Quality and why it is desirable to have it in modern applications/systems/apps and how it can be implemented. Find one real world software project/system/app or case study and discuss how Software Quality (or a part thereof or aspect thereof) was managed/implemented in the project/system/app or a phase in the project. Search and find a report(s) or a case study with sufficient details which gives information about software quality within the…arrow_forwardThis is an individual assessment - not a group assessment. AND NOT FOR GRADING PURPOSES. NOTE: The marks allocation on each bullet point below is only there to give an idea of how much the questions/instructions in bullet points would be in a real assessment. But regardless provide accurate report that will not have high plagiarism. Write a report which addresses the following: Discuss Software Quality in the context of Software Engineering and how it can be achieved. Discuss any one aspect/attribute/characteristic of Software Quality and why it is desirable to have it in modern applications/systems/apps and how it can be implemented. Find one real world software project/system/app or case study and discuss how Software Quality (or a part thereof or aspect thereof) was managed/implemented in the project/system/app or a phase in the project. Search and find a report(s) or a case study with sufficient details which gives information about software quality within the software project…arrow_forwardPlease do not answer otherwise i will unhelpful. computer science.arrow_forward
- Do this by hand: (1) Draw the circuit, (2) list all input rows, (3) compute intermediate columns left→rig (4) give the final output. (5) Submit a screenshot of your results. Y = (A · B + C) · (B+D)arrow_forwardRead Chapters 5-6 of Ralph Stair's "Fundamentals of Information Systems" textbook, 9th edition. 4. Give a brief explanation of the distinctions between credit, charge, debit, and smart care in Chapter 5: Discussion Questions. 1. List and briefly explain the elements that must be present for a business to truly benefit from its BI and analytics initiatives in Chapter 6: Discussion topics.arrow_forwardTask: How would the decimal number -19.375 be represented as a 32-bit IEEE-754 single-precision floating-point value? instructions: Do all conversions by hand. Show all intermediate steps. Submit a screenshot of your handwritten work.arrow_forward
- Show your manual work, submit a screenshot of your result Multiply 1. 00110112 × 001102 2. 01010102 x 001012 Divide 3) 11110002001112 4) 10001112001002arrow_forwardPerform the 8-bit 2's complement binary addition manually. Indicate the result and whether there is overflow or not. SHOW ALL WORK FOR FULL CREDIT. Submit your screenshot. Add: 1011 0000 + 1001 1111arrow_forwardWatch the "Cloud Computing Fundamentals" video, learn more about cloud computing, and study Ralph Stair's "Fundamentals of Information Systems" textbook, 9th edition. Research cloud computing and respond to the following discussion question: How would you describe the features, advantages, and drawbacks of cloud computing if you were a company's chief information officer?arrow_forward
- Please code the following in R: You will only need use of one package: dplyr Be sure to install that package and activate it while you use your project using library or attach statement. After this step, read in the 2 data sets (Quant.csv and Cat.csv) and combine them into one. When combined, the data frame should have 522 observations and 11 variables. Once combine, add the correct labels for the indicator values to each of the categorical variables. Some of the Cat data:arrow_forwardPlease provide the R code for the following question and discuss the results: The built in dataset iris has data on four floral measurements for three different species of iris. Make a pairs plot of the data. What relationships (correlations) look strongest? The grouping evident with the Species variable in the last plot should make you curious. Add the argument col=iris$Species to the last plot you made. Does this change your conclusions about correlations between any of the relationships? Can you make a lattice plot (xyplot()) showing Sepal.Length as a function of Sepal.Width for the different species?arrow_forwardYou are completing my “Lab Assignment 01 Worksheet” exactly as specified below. Produce ALL deliverables in one response, in the order given. Use clear headings that match the worksheet, include realistic Windows 10/11 screenshots, and provide copy-pasteable command output and links.arrow_forward
- EBK JAVA PROGRAMMINGComputer ScienceISBN:9781337671385Author:FARRELLPublisher:CENGAGE LEARNING - CONSIGNMENTMicrosoft Visual C#Computer ScienceISBN:9781337102100Author:Joyce, Farrell.Publisher:Cengage Learning,C++ Programming: From Problem Analysis to Program...Computer ScienceISBN:9781337102087Author:D. S. MalikPublisher:Cengage Learning
- C++ for Engineers and ScientistsComputer ScienceISBN:9781133187844Author:Bronson, Gary J.Publisher:Course Technology PtrProgramming Logic & Design ComprehensiveComputer ScienceISBN:9781337669405Author:FARRELLPublisher:CengageProgramming with Microsoft Visual Basic 2017Computer ScienceISBN:9781337102124Author:Diane ZakPublisher:Cengage Learning




