
(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: Brief Version (11th Global Edition)
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)
- Reading Chapters 9 of Ralph Stair's "Fundamentals of Information Systems" 9th Edition: Chapter 9: Problem-solving: 1. Identify three commonly used antivirus software packages. Develop a spreadsheet that compares the cost and fundamental features of each package. Which antivirus solution would you choose and why? Upload an Excel Report with a title, data, and show off what you have learned.arrow_forwardComputer Science A Caesar cipher is one of the simplest forms of encryption. It is a substitution cipher where each letter in the plaintext is shifted a certain number of places down the alphabet. For example, with a right shift of 3, 'A' would be replaced by 'D', 'B' would become 'E', and so on. The alphabet "wraps around," so with a shift of 3, 'X' would become 'A'. Your task is to implement this logic. 1. Develop a set of functions to encrypt a string using a Caesar cipher. 2. Develop a set of functions to decrypt a string using a Caesar cipher. 3. Develop a set of functions to help solve (break) a Caesar cipher by showing all possible shifts.4. Implement all of the above functions for TWO of the following languages: Encrypt, Decrypt, Solve in COBOL Encrypt, Decrypt, Solve in Fortran Encrypt, Decrypt, Solve in Pascal Examples of Usage The usage for encrypt and decrypt should be as follows: encrypt(str, shiftAmount) decrypt(str, shiftAmount) Pascal code fragment: var x: string;…arrow_forwardNo AI USE PLEASE. You are using a web browser to load a webpage. Let’s assume the size of the webpage is negligible. The access link rate of the webserver is 1 Gigabits per second. The IP address for the associated URL is not cached in your local host, so a DNS lookup is necessary to obtain the IP address. Suppose that n DNS servers are visited before your host receives the IP address from DNS; the successive visits incur an RTT of RTT1, . . . , RTTn. Let RTT0 denote the RTT between the local host and the webserver containing the webpage. Now answer the following: 1) Ignore all types of delays at the client and the servers. How much time elapses from when the client clicks on the link of the webpage until the client receives the content of the webpage? 2) Now suppose, the HTML file references 10 additional objects (15 MB each) on the same server. Considering only the transmission delay at the webserver for each of these objects and ignoring all other delays at the host and the servers,…arrow_forward
- In a client-server file distribution paradigm, let’s assume the server has an upload rate of 25 Mbps. Each client’s download rate is 3 Mbps. Now consider multiple scenarios where the number of clients is 50, 200, and 1000. For each of these scenarios, consider 2 possible upload rates of each client: 200 Kbps, and 1Mbps. For these 6 combinations of the number of clients and the client-upload rate, what are the minimum distribution times for a file of size 30 Gigabit? Now, if the same file needs to be distributed in a P2P paradigm, what will be the 6 minimum distribution times? Show all calculations and provide detailed explanations. No AI use Pleasearrow_forwardFirst study the attached code for a simple internet ping server (UDP_Ping_Server.py). You will have to implement a corresponding client in python. The functionality provided by these programs will be similar to the functionality provided by standard ping programs available in modern operating systems. However, these programs will use a simpler protocol, UDP, rather than the standard Internet Control 1Message Protocol (ICMP) to communicate with each other. The ping protocol allows a client machine to send a packet of data to a remote machine, and have the remote machine return the data back to the client unchanged (an action referred to as echoing). Among other uses, the ping protocol allows hosts to determine round-trip times to other machines. Do not modify the attached server code. In this server code, 30% of the client’s packets are simulated to be lost. The server sits in an infinite loop listening for incoming UDP packets. When a packet comes in and if a randomized integer is…arrow_forward1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 199282222 20 # We will need the following module to generate randomized lost packets import random from socket import * # Create a UDP socket # Notice the use of SOCK_DGRAM for UDP packets serverSocket = socket (AF_INET, SOCK_DGRAM) # Assign IP address and port number to socket serverSocket.bind(('', 12000)) while True: # Generate random number in the range of 0 to 10 rand = random.randint(0, 10) # Receive the client packet along with the address it is coming from message, address = serverSocket.recvfrom (1024) # Capitalize the message from the client message = message.upper() # If rand is less is than 4, we consider the packet lost and do not respond if rand < 4: continue # Otherwise, the server responds serverSocket.sendto (message, address)arrow_forward
- Reading Chapters 7-8 of Ralph Stair's "Fundamentals of Information Systems" 9th Edition: Chapter 7: Discussion questions: 4. How could you use a community of practice (COP) to help you in your work or studies? How would you go about identifying who to invite to join the CoP? Chapter 8: Discussion questions: 2. Thoroughly discuss the pros and cons of buying versus building software.arrow_forwardYou are using a web browser to load a webpage. Let's assume the size of the webpage is negligible. The access link rate of the webserver is 1 Gigabits per second. The IP address for the associated URL is not cached in your local host, so a DNS lookup is necessary to obtain the IP address. Suppose that n DNS servers are visited before your host receives the IP address from DNS; the successive visits incur an RTT of RTT1, ..., RTTn. Let RTTo denote the RTT between the local host and the webserver containing the webpage. Now answer the following: 1) Ignore all types of delays at the client and the servers. How much time elapses from when the client clicks on the link of the webpage until the client receives the content of the webpage? 2) Now suppose, the HTML file references 10 additional objects (15 MB each) on the same server. Considering only the transmission delay at the webserver for each of these objects and ignoring all other delays at the host and the servers, recalculate the…arrow_forwardIn a client-server file distribution paradigm, let's assume the server has an upload rate of 25 Mbps. Each client's download rate is 3 Mbps. Now consider multiple scenarios where the number of clients is 50, 200, and 1000. For each of these scenarios, consider 2 possible upload rates of each client: 200 Kbps, and 1Mbps. For these 6 combinations of the number of clients and the client-upload rate, what are the minimum distribution times for a file of size 30 Gigabit? Now, if the same file needs to be distributed in a P2P paradigm, what will be the 6 minimum distribution times?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




