java program

h66umi6q
homework04.pdf

Outcomes ▪ Write programs that use objects.

▪ Write programs that use ArrayList.

▪ Write programs that use abstract classes, and interfaces.

▪ Write applications using object oriented programming concepts.

▪ Organize classes in packages.

Scoring ▪ If you do not submit a .zip file containing your source code,

your score will be zero.

▪ If you submit source code that does not compile, your score

will be zero.

▪ If you submit source code without the correct class name(s)

or the correct method names (see below), your score will be

decreased by 50 points.

▪ In addition, deductions will be made for not meeting the following

requirements:

o At the beginning of each java file, add a comment with the following

information:

▪ Student’s name

▪ Course/section,

▪ Date

▪ Filename

▪ Description of the program/class o Indentation guidelines:

▪ The code inside of a class must be indented with respect

to the class definition.

▪ The code inside of a method must be indented with respect

to the method definition.

▪ The code inside of if / else / else if / while / for

/ do-while structures must be indented with respect to its

corresponding structure.

▪ Curly braces can be positioned at the end of the corresponding

structure definition, or in the following lines aligned with the

corresponding structure. o Comments:

▪ At least, one-line comment should be added per method or

constructor.

▪ Comments must describe the functionality or objective of the

method.

▪ Please add more comments about your code, if you think

that will help the grader.

Rubric Full credit Partial credit

Implement the Person

Solution

(25 points)

You implements the Person

Solution.

You implements the

Person Solution,

but with some

errors.

Implement the Distance

Solution

( 40 points)

You implements the Distance

Solution.

You implements the

Distance Solution,

but with some

errors.

Implement the Rectangle

Solution

(35 points)

You implements the Rectangle

Solution.

You implements the

Rectangle

Solution, but with

some errors.

Description This assignment consists of the development of three solutions. Each solution should

be stored in its own folder.

DistanceSolution 1. Create a project named DistanceSolution.

2. Create a class named distance.

3. Include that class in a package named metrics.

4. Inside the class distance, create two static methods named manhattanDistance

and euclideanDistance.

5. The method manhattanDistance receives as parameters two Double array lists.

a. If the the two lists do not contain the same number of elements, this

method returns -1

b. Otherwise, the method shoud calculate the Manhattan distance between

the two vectors and return it as a double value.

c. For more information about how to calculate the Manhattan distance

between two vectors, see

https://xlinux.nist.gov/dads/HTML/manhattanDistance.html

6. The method euclideanDistance receives as parameters two Double array

lists

a. If the array lists do not contain the same number of elements, this

method returns -1

b. Otherwise, the method shoud calculate the Euclidian distance between the

two vectors and return it as a double value.

c. For more information about the Euclidean distance, see

https://xlinux.nist.gov/dads/HTML/euclidndstnc.html

7. Create a program for testing these methods. Name this program

DistanceTest.

8. In DistanceTest,

a. Create two numerical array lists of size 3. Provide double values for

these array lists.

b. Display the content of these array lists.

c. Display the Manhattan distance between these vectors (array lists) by

calling the method manhattanDistance.

d. Create other two numerical array lists of size 5. Provide double

values for these array lists.

e. Display the content of these array lists.

f. Display the Euclidian distance between these vectors (array lists) by calling

the method euclideanDistance.

Sample run == Distance Solution ==

Vector 1: [ 5.0, 6.7, 11.0]

Vector 2: [ -9.0, 8.0, 0.3]

Manhattan distance between vector 1 and vector 2: 26.00

Vector 3: [ 0.5, 6.0, -2.0, 4.12, 15.6]

Vector 4: [ -10.0, 8.6, 0.001, 9.2, 4.0]

Euclidean distance between vector 3 and vector 4: 16.77

RectangleSolution 1. Create a project named RectangleSolution.

2. The class java.awt.Rectangle does not contain a method to calculate the

area of a Rectangle object; also it does not implement the interface

Comparable.

3. Create a subclass of the Rectangle class named ComparableRectangle

which also implements the Comparable interface.

4. Include that class in a package named geometry.

5. Create a constructor which receives two parameters width and height. Use

these parameters to initialize the corresponding instance variables in the

ComparableRectangle object.

6. Create a public method named getArea which returns the area of the

ComparableRectangle object.

7. Implement the method compareTo. Remember that this method receives another

ComparableRectangle as parameter.

8. Create a program for testing this class. Name this program RectangleTest.

9. In RectangleTest,

a. Create three ComparableRectangle objects. The first and second

ComparableRectangle objects will have the same width and height.

The third ComparableRectangle will have a different witdh and

height.

b. Display the measures of these ComparableRectangle objects by using

the method toString.

c. Also, display the result obtained by comparing

i. First ComparableRectangle with second ComparableRectangle.

ii. First ComparableRectangle with third

ComparableRectangle. iii. Third ComparableRectangle with

second ComparableRectangle.

Sample run == Comparable Rectangle Solution ==

Rectangle 1: geometry.ComparableRectangle[x=0,y=0,width=5,height=8]

Rectangle 2: geometry.ComparableRectangle[x=0,y=0,width=5,height=8]

Rectangle 3: geometry.ComparableRectangle[x=0,y=0,width=11,height=2]

Compare Rectangle 1 to Rectangle 2: 0

Compare Rectangle 1 to Rectangle 3: 18

Compare Rectangle 3 to Rectangle 2: -18