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

Concepts tested by this program: Variables Input/output Loops Conditional Statem

ID: 3908537 • Letter: C

Question

Concepts tested by this program:

Variables

Input/output

Loops

Conditional Statements

Methods

Arrays

Multi-Dimensional Arrays

Classes

Objects

Program: The Circle2D class

Problem Description:

Define the Circle2D class that contains:

·        Two double data fields named x and y that specify the center of the circle with get methods.

·        A data field radius with a get method.

·        A no-arg constructor that creates a default circle with (0, 0) for (x, y) and 1 for radius.

·        A constructor that creates a circle with the specified x, y, and radius.

·        A method getArea() that returns the area of the circle.

·        A method getPerimeter() that returns the perimeter of the circle.

·        A method contains(double x, double y) that returns true if the specified point (x, y) is inside this circle. See Figure 10.14(a).

·        A method contains(Circle2D circle) that returns true if the specified circle is inside this circle. See Figure 10.14(b).

·        A method overlaps(Circle2D circle) that returns true if the specified circle overlaps with this circle. See the figure below.

  

    (a)         (b)         (c)

Figure 10.14

(a) A point is inside the circle. (b) A circle is inside another circle. (c) A circle overlaps another circle.

Draw the UML diagram for the class. Implement the class. Write a test program that creates a Circle2D object c1 (new Circle2D(2, 2, 5.5)), displays its area and perimeter, and displays the result of c1.contains(3, 3), c1.contains(new Circle2D(4, 5, 10.5)), and c1.overlaps(new Circle2D(3, 5, 2.3)).

Explanation / Answer


You have not mentioned programming language. Based on the problem description, assumed it to be java.
Given below is the code for the question.
To indent code in eclipse , select code by pressing ctrl+a and then indent using ctrl+i
Please do rate the answer if it was helpful. Thank you


Circle2D.java
--------

public class Circle2D {
private double x, y, radius;

public Circle2D(){
x = 0;
y = 0;
radius = 1;
}
public Circle2D(double x1, double y1, double rad1){
x = x1;
y = y1;
radius = rad1;
}

public double getArea(){
return Math.PI * radius * radius;
}

public double getPerimeter(){
return 2 * Math.PI * radius;
}

public boolean contains(double x1, double y1){
double dx = x - x1;
double dy = y - y1;
double distance = Math.sqrt(dx * dx + dy * dy); //distance between center and point
if(distance < radius)
return true;
else
return false;
}

public boolean contains(Circle2D other){
double dx = x - other.x;
double dy = y - other.y;
double distance = Math.sqrt(dx * dx + dy * dy); //distance between the 2 centers

//if this circle's radius is more than sum of (distance between centers and other's radius)
if(radius >= other.radius + distance)
return true;
else
return false;

}

public boolean overlaps(Circle2D other){
double dx = x - other.x;
double dy = y - other.y;
double distance = Math.sqrt(dx * dx + dy * dy); //distance between the 2 centers

//if the distance between the centers is less than sum of the radii
if(distance < radius + other.radius )
return true;
else
return false;

}


public double getX() {
return x;
}

public void setX(double x) {
this.x = x;
}

public double getY() {
return y;
}

public void setY(double y) {
this.y = y;
}

public double getRadius() {
return radius;
}

public void setRadius(double radius) {
this.radius = radius;
}

}

TestCircle2D.java
--------

public class TestCircle2D {
public static void main(String[] args) {
Circle2D c1 = new Circle2D(2, 2, 5.5);

System.out.printf("Created circle c1 at (%.2f, %.2f) with radius %.2f ", c1.getX(), c1.getY(), c1.getRadius());
System.out.printf("Area = %.2f ", c1.getArea());
System.out.printf("Perimeter = %.2f ", c1.getPerimeter());
System.out.println("c1.contains(3, 3) = " + c1.contains(3, 3));
System.out.println("c1.contains(new Circle2D(4, 5, 10.5)) = " + c1.contains(new Circle2D(4, 5, 10.5)));
System.out.println("c1.overlaps(new Circle2D(3, 5, 2.3)) = " + c1.overlaps(new Circle2D(3, 5, 2.3)));
}
}


output
------
Created circle c1 at (2.00, 2.00) with radius 5.50
Area = 95.03
Perimeter = 34.56
c1.contains(3, 3) = true
c1.contains(new Circle2D(4, 5, 10.5)) = false
c1.overlaps(new Circle2D(3, 5, 2.3)) = true

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote