Starting from:

$29

assignment 4- lab exercise

 
Design a class named Rectangle. The class contains: a. Five private data fields [10 points] • x (double) : The x position of the center. In a valid rectangle, the range of x is in (-10, 10) • y (double) : The y position of the center. In a valid rectangle, the range of y is in (-10, 10) • width (double) : The width of the rectangle. In a valid rectangle, the range of width is in [0, 5] • height(double) : The height of the rectangle. In a valid rectangle, the range of height is in [0, 5] • color (java.awt.Color): The color of rectangle. b. Design three constructors: [10 points] 1. A constructor with two parameters including x and y 2. A constructor with four parameters including x, y, width and height. 3. A constructor with seven parameters, the first four parameters are double type, which represent the x, y, width and height of current rectangle, and the last three parameters are integers, which represent the red, green and blue value of current color respectively. • If a rectangle has no width and height, in constructor method we need to set width=1 and height=1 as default value. • If a rectangle has no color, in constructor method we need to set a default color whose red, green and blue value are all 100. • For the third constructor, if the value of red green and blue are larger than 255 or smaller than 0, we need to set it as its closest boundary value.
c. Design the getter and setter method for each private field of Rectangle. [10 points]
d. Design a toString() method, which can return a String value as following output format. [10 points] The first test: public class Test1 { public static void main(String[] args) { Rectangle r1=new Rectangle(0,1,2,2,100,150,100); Rectangle r2=new Rectangle(3,1,3,1,-1,350,100); Rectangle r3=new Rectangle(2,2); Rectangle r4=new Rectangle(3,-1,2,2); System.out.println(r1)
System.out.println(r2); System.out.println(r3); System.out.println(r4); } }
e. Design a public method named intersect() with a Rectangle parameter and a return value (boolean). If the current rectangle is intersected with the parameter rectangle, it will return true, otherwise it will return false. [10 points] f. Design a public static method named intersect() with two Rectangle parameters and a return value (boolean). If two rectangles are intersected, it will return true, otherwise it will return false. [10 points] The Second Test: public class Test2 { public static void main(String[] args) { Rectangle r1=new Rectangle(0,0,2,2,100,50,100); Rectangle r2=new Rectangle(1.5,2,3,1,-1,350,100); Rectangle r3=new Rectangle(1.6,-1,1,3,50,100,200); Rectangle r4=new Rectangle(1,1,1,2,180,100,40); System.out.println(r1.intersect(r2)); System.out.println(r1.intersect(r3)); System.out.println(r1.intersect(r4)); System.out.println(Rectangle.intersect(r3, r4)); } }
g. Design a public method named isValid() with a return value (boolean). Only when the range of its width and height are in [0, 5] (0 and 5 are included) and
Centre[0.0,1.0] Shape[2.0,2.0] Color[100,150,100] Centre[3.0,1.0] Shape[3.0,1.0] Color[0,255,100] Centre[2.0,2.0] Shape[1.0,1.0] Color[100,100,100] Centre[3.0,-1.0] Shape[2.0,2.0] Color[100,100,100]  
false false true true
the range of it x and y position are in (-10,10) (-10 and 10 are not included), it will return true, otherwise it will return false. [10 points]
h. Design a public method named isInBoundary() with a return value (boolean). If the whole rectangle can be drawn in the screen (-10,10), it will return true, otherwise it will return false. [10 points]
The third Test: Rectangle r1=new Rectangle(-2,1,5,5,100,150,200); Rectangle r2=new Rectangle(9,1,5,5,250,100,40); System.out.println(r1.isInBoundary()); System.out.println(r2.isInBoundary()); ‘ (The whole rectangle of the blue one can be drawn in the screen, so it is in boundary, but the orange one is not.)
i. In same package, we create a class named RectangleTest, in which there is a main method. In main method, we will read several lines as following format. For each line, we need create an object of Rectangle according to the data in line. After that, we need to output all valid rectangles, which are not intersect with the first valid rectangle in the line order. [10 points] The fourth Test:
Sample input:
9.27,6.61,3,7.18,209,144,247 3.4,4.0,4.5,4.5,100,100,100 -2.89,7.61,5.57,5.06 8.43,6.66 7.42,0.68,2.07,2.93,78,39,165 6.70,1.54,3.52,3.12 1.14,0.76,2.37,3.07,236,105,137 1.06,-0.80,3.03,2.66,132,120,273 3.01,-9.08,2.76,2.36,138,148,119 -0.51,-4.99,6.42,5.65 -4.36,8.70,3.03,2.63,16,138,221 9.40,2.41,6.47,4.90 Sample output:
   
 
j. Design a public method named draw() , in which we need to draw the current rectangle in screen. We need to make sure that: [10 points] • Only draw the valid rectangle. • The rectangle in screen needs to have its color. In main method, adding following two statements, just before you using draw method. StdDraw.setXscale(-10,10); StdDraw.setYscale(-10,10);
The fifth Test:
Sample input: -4.98,-8.00,3.29,1.66 0.17,-8.00,2.37,3.43 4.04,-8.00,1.67,1.77 6.84,-8.00,3.35,3.30,87,9,260 6.84,-4.03,2.20,2.83,200,139,78 6.84,-0.89,3.04,1.97,122,195,14 6.84,2.63 6.84,6.09,2.04,1.80 4.36,6.09
Centre[8.4,6.7] Shape[1.0,1.0] Color[100,100,100] Centre[7.4,0.7] Shape[2.1,2.9] Color[78,39,165] Centre[1.1,-0.8] Shape[3.0,2.7] Color[132,120,255] Centre[3.0,-9.1] Shape[2.8,2.4] Color[138,148,119] Centre[-4.4,8.7] Shape[3.0,2.6] Color[16,138,221]  
2018-­‐2019 Fall  Semester                                                                         Lab  Exercise  A  
5  
0.64,6.09,3.07,3.25,-10,299,288 -2.28,6.09,2.56,3.22 -5.19,6.09,1.68,2.37,-20,-30,184 -5.19,3.68,3.11,2.34 -5.19,-0.82 -5.19,-4.86,2.67,2.99,129,7,49
Sample output:
Sample input: -1.96,-8.00,2.99,-2.39,230,119,148 2.80,-8.00 7.23,-8.00,2.44,3.20 7.23,-4.07,2.63,2.04,241,27,267 7.23,0.57,8.84,1.98 7.23,5.91 7.23,9.18,-2.15,2.26 3.26,9.18 1.15,9.18,1.86,2.16,69,204,101 -2.51,9.18,2.52,3.41 -5.18,9.18,-1.02,3.1
-6.18,6.75,-2.51,2.22,81,26,176 -7.18,2.01,2.43,2.88,116,85,169 -8.18,-1.42
Sample output:
 
    What  to  submit   1. Please  submit  three  “.java”  files  including  “Rectangle.java”   “RectangleTest.java”  and  “StdDraw.java”  ,  and  make  sure  that   those  “.java”  files  have  no  package  information  included.   • Rectangle.java:  It  is  for  you  to  create  and  edit  all  questions.   • RectangleTest.java:     It  is  for  you  to  add  necessary  code  to  finish   question  i,  and  do  not  remove  other  code  in  this  file.   • StdDraw.java:  You  can  do  no  change  about  this  file,  but  do  not   forget  to  remove  package  information  if  you  added  it.  

More products