Explore BrainMass
Share

# Another Measurer in Java

This content was STOLEN from BrainMass.com - View the original, and get the already-completed solution here!

Using a different Measurer object, process a set of Rectangle objects to find the rectangle with the largest perimeter.

You need to supply the following class in your solution:
PerimeterMeasurer

Use the following class as your tester class:
import java.awt.Rectangle;

/**
This program tests the measurement of rectangles by perimeter.
*/
public class PerimeterTester
{
public static void main(String[] args)
{
DataSet data = . . .;

double avg = . . .;
Rectangle max = . . .;

System.out.println("Average perimeter: " + avg);
System.out.println("Expected: ");
System.out.println("Largest perimeter: " + max);
System.out.println("Expected: ");
}
}

/**
Computes the average of a set of data values.
*/
public class DataSet
{
private double sum;
private Object maximum;
private int count;
private Measurer measurer;

/**
Constructs an empty data set with a given measurer.
@param aMeasurer the measurer that is used to measure data values
*/
public DataSet(Measurer aMeasurer)
{
sum = 0;
count = 0;
maximum = null;
measurer = aMeasurer;
}

/**
Adds a data value to the data set.
@param x a data value
*/
{
sum = sum + measurer.measure(x);
if (count == 0
|| measurer.measure(maximum) < measurer.measure(x))
maximum = x;
count++;
}

/**
Gets the average of the added data.
@return the average or 0 if no data has been added
*/
public double getAverage()
{
if (count == 0) return 0;
else return sum / count;
}

/**
Gets the largest of the added data.
@return the maximum or 0 if no data has been added
*/
public Object getMaximum()
{
return maximum;
}
}

/**
Describes any class whose objects can measure other objects.
*/
public interface Measurer
{
/**
Computes the measure of an object.
@param anObject the object to be measured
@return the measure
*/
double measure(Object anObject);
}.

https://brainmass.com/computer-science/java/another-measurer-java-575205

#### Solution Summary

The solution uses a measurer to find several rectangles' maximum perimeter and average perimeter.

\$2.19
Similar Posting

## A Java Length class

Objectives
? Construct and use Objects
? Design the public interface of a class
? Determine the instance variables necessary for a class
? Implement constructors
? Implement simple methods using conditionals
? Access instance fields and local variables
Hand-in Requirements
The project folder should include the following files:
? Length.xml
? Length.java
? LengthTest.java
? the public interface as a text or Word file
Overview
Write a program to construct and manipulate Length objects that can handle any of the following units: meters, inches, feet, yards, miles. In addition to modifying the methods, you will include methods for returning the number of meters, for adding two Length objects, and testing whether two Length objects are approximately equal.
Writing the New and Improved Length Class
Constants:
The following constants should be included in the Length class before the instance fields. These constants should be used by your methods. Do not use the numbers in your methods instead of the named constants.
public static final double INCHES_PER_YARD = 36;
public static final double FEET_PER_YARD = 3;
public static final double METERS_PER_YARD = 0.9144;
public static final double YARDS_PER_MILE = 1760;
public static final double EPSILON = 0.000001;

Instance fields:
myNumber - a double value representing the number of the measurement
myUnit - a String value representing the unit of the measurement
Constructors:
/* The constructor has two parameters: */
/* the number and the unit of the measurement. */
public Length(double number, String unit)

Methods:Three methods will be added, and the behavior of some methods will be changed.

/* getMeters returns the length in meters.
This should be implemented to calculate the appropriate conversion
based on the value of myUnit, e.g.,

if ( myUnit.equals("yards") )
meters = myNumber * METERS_PER_YARD;

If myUnit cannot be recognized, assume the unit is meters.
*/
public double getMeters( )

/* add returns a Length that is the sum of two Lengths, e.g.,
if length1 and length2 are two Length objects, then
length1.add(length2) will return a new Length object.

This can be implemented by using the getMeters method,
e.g., this.getMeters() + other.getMeters(), then returning
new Length(sum, "meters")
*/

/* aboutEqual returns true if the two lengths are within EPSILON
meters of each other.

First, get this.getMeters() and other.getMeters(). Then, return
true if they are close to each other (within EPSILON).
*/

The getInches, getFeet, getYards, and getMiles methods should be modified. First get the value of the getMeters method, e.g., this.getMeters(), then convert the number of meters to the desired unit using the named constants, and finally return that value.