In: Computer Science
1.
Write a class Rectangles which manages an array of Rectangle objects.
The constructor of the Rectangles takes an array of Rectangle objects. You can assume the array is filled
Provide these methods
Provide javadoc
Tester File:
RectanglesTester.java
import java.awt.Rectangle; public class RectanglesTester { public static void main(String[] args) { Rectangle[] recs = { new Rectangle(30, 50, 5, 20), new Rectangle(20, 40, 50, 40), new Rectangle(10, 10, 20, 10), new Rectangle(50, 10, 2, 8) }; Rectangles processor = new Rectangles(recs); System.out.printf("Aveage: %.2f\n", processor.averageArea()); System.out.println("Expected: 579.00"); processor.swapMaxAndMin(); System.out.println(processor.toString()); System.out.println("Expected: [java.awt.Rectangle[x=30,y=50,width=5,height=20], java.awt.Rectangle[x=50,y=10,width=2,height=8], java.awt.Rectangle[x=10,y=10,width=20,height=10], java.awt.Rectangle[x=20,y=40,width=50,height=40]]"); Rectangle[] recs2 = { new Rectangle(30, 50, 5, 20), new Rectangle(20, 40, 50, 40), new Rectangle(10, 10, 20, 10), }; Rectangles processor2 = new Rectangles(recs2); System.out.printf("Aveage: %.2f\n", processor2.averageArea()); System.out.println("Expected: 766.67"); processor2.swapMaxAndMin(); System.out.println(processor2.toString()); System.out.println("Expected: [java.awt.Rectangle[x=20,y=40,width=50,height=40], java.awt.Rectangle[x=30,y=50,width=5,height=20], java.awt.Rectangle[x=10,y=10,width=20,height=10]]"); } }
If you have any doubts, please give me comment...
import java.awt.Rectangle;
public class Rectangles{
Rectangle rects[];
public Rectangles(Rectangle inRects[]){
rects = inRects;
}
private double area(Rectangle r){
return r.getHeight()*r.getWidth();
}
public double averageArea(){
double avg_area = 0.0;
int len = rects.length;
for(int i=0; i<len; i++){
avg_area += area(rects[i]);
}
avg_area /= len;
return avg_area;
}
public void swapMaxAndMin(){
int max = 0;
int min = 0;
for(int i=1; i<rects.length; i++){
if(area(rects[max])<area(rects[i]))
max = i;
if(area(rects[min])>area(rects[i]))
min = i;
}
Rectangle temp = rects[max];
rects[max] = rects[min];
rects[min] = temp;
}
public String toString(){
String result = "[";
for(int i=0; i<rects.length; i++){
result += rects[i];
if(i!=rects.length-1)
result+=", ";
}
result += "]";
return result;
}
}