Explore BrainMass
Share

Explore BrainMass

    Another Measurer in Java

    This content was COPIED 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 = . . .;

    data.add(new Rectangle(5, 10, 20, 30));
    data.add(new Rectangle(10, 20, 30, 40));
    data.add(new Rectangle(20, 30, 5, 10));

    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
    */
    public void add(Object x)
    {
    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);
    }.

    © BrainMass Inc. brainmass.com October 10, 2019, 7:17 am ad1c9bdddf
    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