public abstract class ArrayDrawer
{
//Global Data
/**
* Create array with object scope to store squares in
*/
protected Square[] squares = new Square[10];
/**
* Create array with object scope to store triangles in
*/
protected Triangle[] triangles = new Triangle[10];
/*
* Description: This method will allow the squares to be entered into the array
* and will place them in the first empty location
* Precondition: The square array must already exist and have been set to null.
* Postcondition: The square will reside in the square array.
*/
public void addSquare(Square z)
{
/**
* Use findFirstEmptySquare to locate the first null spot in the square array
*/
int x = findFirstEmptySquare();
/**
* Take the empty spot and place the square in it
*/
if (x >= 0)
{
squares[x] = z;
}
else
{
//indicates that the array is full
System.out.println("The array is at maximum capacity");
}
}
/**
* Description: This method will search for the first empty spot in the square array
* Precondition: The square array must already exist
* Postcondition: There will now be one less empty spot since a square will
* be residing in the formerly empty location.
*/
private int findFirstEmptySquare()
{
/**
* Function of this method is to scan the array for the first null
* position
*/
for (int i = 0; i < squares.length; i++)
{
/**
* Scan the array by using int i to correspond to the position of the
* empty spot in the square array.
*/
if (squares[i] == null)
{
//Indicates that the scan located a null spot in the array
return i;
}
}
//Indicates that the scan produced no null spots in array
return -1;
}
/**
* Description: This method is when a square is removed from the square array
* Precondition: The square array must already exist and there must be at least
* square in the array.
* Postcondition: There will be one more empty spot since the square that was
* residing in that was removed.
*/
public void deleteSquare(int p)
{
for (int x = 0; x < squares.length; x++)
//Take the filled seat and remove the child
if (p == x)
{
//Removes a specific triangle from the bus array
squares[x] = null;
}
}
/*
* Description: This method will allow the triangles to be entered into the triangle array
* and will place them in the first empty location
* Precondition: The triangle array must already exist and have been set to null.
* Postcondition: The triangle will reside in the array.
*/
public void addTriangle(Triangle z)
{
/**
* Use findFirstEmptySquare to locate the first null spot in the triangle array
*/
int x = findFirstEmptyTriangle();
/**
* Take the empty spot and place the square in it
*/
if (x >= 0)
{
triangles[x] = z;
}
else
{
//indicates that the array is full
System.out.println("The array is at maximum capacity");
}
}
/**
* Description: This method will search for the first empty spot in the triangle array.
* Precondition: The array must already exist.
* Postcondition: There will now be one less empty spot since a triangle will
* be residing in the formerly empty location.
*/
private int findFirstEmptyTriangle()
{
/**
* Function of this method is to scan the array for the first null
* position
*/
for (int i = 0; i < triangles.length; i++)
{
/**
* Scan the array by using int i to correspond to the position of the
* empty spot in the array.
*/
if (triangles[i] == null)
{
//Indicates that the scan located a null spot in the array
return i;
}
}
//Indicates that the scan produced no null spots in array
return -1;
}
/**
* Description: This method is when a triangle is removed from the triangle array
* Precondition: The triangle array must already exist and there must be at least
* triangle in the array.
* Postcondition: There will be one more empty spot since the triangle that was
* residing in that was removed.
*/
public void deleteTriangle(int p)
{
for (int x = 0; x < triangles.length; x++)
//Take the filled seat and remove the child
if (p == x)
{
//Removes a specific triangle from the bus array
triangles[x] = null;
}
}
/**
* Description: This method will print all of the occupied positions in the arrays.
* It will first print squares, then triangles.
* Precondition: The arrays must already exist and there must be at least
* item in the arrays
* Postcondition: There will be a printout of all of the occupied slots in the arrays
* and what is occupying them
*/
public void print()
{
/**
* Print out the Square array
*/
squares.print();
/**
* Print out the Triangle array
*/
triangles.print();
}
public abstract double computeArea();
public class Square extends ArrayDrawer
{
//Data fields
private double side = 0;
private double area = 0;
private double coordx = 0;
private double coordy = 0;
/**
* Description: This method computes the area of the Square.
* Precondition: The sides must have already been entered into the array.
* Postcondition: There will be a resulting area.
*/
@Override
public double computeArea()
{
return area = side * side;
//Test
//System.out.println(area);
}
/*
* Description: This method sets the coordinates for the object.
* Precondition: The array must exist and coordinates must have already
* been entered in.
* Postcondition: The item in the array will have set coordinates.
*/
public void setCoord(double x, double y)
{
coordx = x;
coordy = y;
}
/**
* Description: Prints out the information located in the square array
* Precondition: There is something residing in the square array
* Postcondition: N/A
*/
@Override
public void print()
{
for (int x = 0; x < 10; x++)
{
if (squares[x] != null)
{
System.out.println(squares[x]);
}
}
//Prints Coordx
//Prints Coordy
//Prints Side
//Prints Area
}
}
public class Triangle extends ArrayDrawer
{
//Data fields
private double base = 0;
private double height = 0;
private double area = 0;
private double coordx = 0;
private double coordy = 0;
/**
* Description: This method computes the area of the Triangle.
* Precondition: The sides must have already been entered into the array.
* Postcondition: There will be a resulting area.
*/
@Override
public double computeArea()
{
return area = .5 * base * height;
//Test
//System.out.println(area);
}
/*
* Description: This method sets the coordinates for the object.
* Precondition: The array must exist and coordinates must have already
* been entered in.
* Postcondition: The item in the array will have set coordinates.
*/
public void setCoord(double x, double y)
{
coordx = 0;
coordy = 0;
}
/**
* Description: Prints out the information located in the triangle array
* Precondition: There is something residing in the triangle array
* Postcondition: N/A
*/
@Override
public void print()
{
for (int x = 0; x < 10; x++)
{
if (squares[x] != null)
{
System.out.println(squares[x]);
}
}
//Prints Coordx
//Prints Coordy
//Prints Base
//Prints Height
//Prints Area
}
}
public static void main(String[] args)
{
ArrayDrawer ar1 = new ArrayDrawer();
/**
* Create a triangle with the following information:
* Base = 1
* Height = 2
* Coords(3,4)
*/
double b = 1;
double h = 2;
double cx = 3;
double cy = 4;
ar1.addTriangle(b);
ar1.addTriangle(h);
ar1.addTriangle(cx);
ar1.addTriangle(cy);
/**
* Create a triangle with the following information:
* Base = 5
* Height = 6
* Coords(7,8)
*/
b = 5;
h = 6;
cx = 7;
cy = 8;
ar1.addTriangle(b);
ar1.addTriangle(h);
ar1.addTriangle(cx);
ar1.addTriangle(cy);
/**
* Create a square with the following information:
* Size = 9
* Coords(10,11)
*/
double s = 0;
cx = 10;
cy = 11;
ar1.addSquare(s);
ar1.addSquare(cx);
ar1.addSquare(cy);
/**
* Print all geometric objects with the following parameters:
* Square array prints first
* Triangle array prints second
* prints: "After creating a square with size = 9, coords = (10,11), this
* is what is in the array", same for triangle
*/
System.out.println("After creating a square with size = 9 and coordinates "
+ "(10,11), this is what resides in the two arrays: ");
/**
* Create a triangle with the following information:
* Base = 12
* Height = 13
* Coords(14,15)
*/
b = 12;
h = 13;
cx = 14;
cy = 15;
ar1.addTriangle(b);
ar1.addTriangle(h);
ar1.addTriangle(cx);
ar1.addTriangle(cy);
/**
* Delete the triangle in position 1
*/
/**
* Print all geometric objects with the following parameters:
* Square array prints first
* Triangle array prints second
* prints: "After deleting the triangle in position 1 of the triangle array,
* this is what remains:"
*/
System.out.println("After deleting the triangle in position 1 of the triangle array," +
" this is what remains:");
/**
* Create a triangle with the following information:
* Base = 16
* Height = 17
* Coords(18,19)
*/
b = 16;
h = 17;
cx = 18;
cy = 19;
ar1.addTriangle(b);
ar1.addTriangle(h);
ar1.addTriangle(cx);
ar1.addTriangle(cy);
/**
* Print all geometric objects with the following parameters:
* Square array prints first
* Triangle array prints second
* prints: "After creating a triangle with base = 16, height = 17 and
* coordinates (18,19), this is what resides in the arrays: "
*/
System.out.println("After creating a triangle with base = 16, height = 17 and "
+" coordinates (18,19), this is what resides in the arrays: ");
/**
* Create a triangle with the following information:
* Base = 20
* Height = 21
* Coords(22,23)
*/
b = 20;
h = 21;
cx = 22;
cy = 23;
ar1.addTriangle(b);
ar1.addTriangle(h);
ar1.addTriangle(cx);
ar1.addTriangle(cy);
/**
* Create a square with the following information:
* Size = 24
* Coords(25,26)
*/
s = 24;
cx = 25;
cy = 26;
ar1.addSquare(s);
ar1.addSquare(cx);
ar1.addSquare(cy);
/**
* Print all geometric objects with the following parameters:
* Square array prints first
* Triangle array prints second
* prints: "After creating a square with size = 24 and coordinates (25,26),
* this is what remains in the array: "
*/
System.out.println("After creating a square with size = 24 and coordinates (25,26),"
+ " this is what remains in the array: ");
/**
* Change the coordinates of all objects to (-1,-1)
*/
/**
* Print all geometric objects with the following parameters:
* Square array prints first
* Triangle array prints second
* prints: "After changing the coordinates of all objects to (-1, -1),
* this is what remains in the array: "
*/
System.out.println("After changing the coordinates of all objects to (-1, -1), "
+ "this is what remains in the array: ");
}
}