Practise combining multiple classes and methods

Assignment Help JAVA Programming
Reference no: EM132422763

CSE1OOF Object Oriented Programming Fundamentals - La Trobe University

Assignment

Assessment Objectives:

• to design programs that conform to given specifications
• to practise combining multiple classes and methods into a whole program
• to implement programs in Java.

Task 1: Vector

In mathematics and physics, a vector is an element of a vector space. If the space is N dimensional, such a vector consists of N scalars. For example, the vector (0, 0) represents the origin point of a two-dimensional Euclidean space.

Task 1 requires you to write a Java class for a simplified vector that handle integer scalars. To enable rapid development of the program, the following Java file is provided:

Vector.java

An object of Vector class has the following attributes:

• values This is an integer array that stores a collection of input integers passed in a constructor. Note its access mode is protected.
• size This is an integer that represents the size of values attribute, i.e. the number of input integers. Note its access mode is protected.

Vector class has the following two overloaded constructors:

• The first constructor has two parameters: an integer array that stores input integers passed by users, and an integer that represents a default value. It takes following actions:

1. If the integer array parameter is null or contains less than two elements, values attribute is initialised of length 2, and both elements inside are set to the default value parameter; otherwise, values attribute is initialised of the same length as the integer array parameter, and all elements in the integer array parameter are copied to values attribute. Note it is NOT allowed to assign the value of the integer array parameter to values attribute. (Recall that an array is an object, and its corresponding object variable holds a memory address)

2. size attribute is set to the actual length of integer attribute.

• The second constructor has any number of integers as parameters for values attribute. It takes similar actions to what the first constructor does, with the default value parameter of zero (0). Note the second constructor is required to reuse the first constructor. (Recall what you have learned on the this keyword and varargs)

Vector class has the following four methods:

• toString

This is a public overrided method, which has no parameters but returns a String to represent the information about the current object's values attribute. For example, if the values attribute has elements {2, 2, 2, 2}, the returned String is "[ 2 2 2 2 ]".

• getValues

This is a public method, which has no parameters but returns an integer array. Specially, it returns a copy of all elements in values attribute. Note it is NOT allowed to return values attribute here. (Recall private leakage)

• getSize

This is a public method, which has no parameters but returns an integer. Specially, it returns the value of size attribute.

• main

This is a public static method to test the class and has been provided already. Note it is NOT allowed to make any change on this method. If the class is correctly written, it is supposed to output following information:

[ 0 0 ]
[ 0 0 ]
[ 1 2 ]
[ 1 1 ]
[ 4 5 6 ]
[ 4 5 6 ]
[ 4 5 6 ]

Task 2: RangedVector

Task 2 requires you to write a Java class for a more complicated vector compared to the previous one. It ensures all elements in values attribute in a specific range. To enable rapid development of the program, the following Java file and test data are provided:

RangedVector.java v1.dat
v2.dat v3.dat

RangedVector class inherits Vector class in Task 1. (Recall the lectures on inheritance in Week 10, especially the extends keyword)

Beside the attributes inherited from Vector class, an object of RangedVector class has the following attributes:

• lowerbound This is an integer that specifies the smallest value stored in values attribute.
i.e. any element in values attribute is larger than or equal to it.
• upperbound This is an integer that specifies the largest value stored in values attribute.
i.e. any element in values attribute is smaller than or equal to it.

RangedVector class has one constructor. It has three parameters: an integer array that stores input integers passed by users, an integer that represents the lowerbound, and another integer that represents the upperbound. The constructor takes following actions:

1. It calls the first constructor of bass class, i.e. Vector class, and pass the integer array parameter and the lowerbound integer parameter (as the default value) to that constructor. (Recall the lectures on inheritance in Week 10, especially the super keyword)

2. It sets upperbound and lowerbound attributes to the corresponding parameters. It is assumed that lowerbound parameter is always smaller than or equal to upperbound parameter.

3. It checks each element in values attirbute to ensure if it is in the range of [lowerbound, upperbound] (inclusive). Specifically, if an element is smaller than lowerbound attribute, it is set to lowerbound attribute; if an element is larger than upperbound attribute, it is set to upperbound attribute.

RangedVector class has the following four methods:

• getDistance

This is a public method that has one parameter, i.e. another object of RangedVector class, and returns the Euclidean distance between the current vector and the parameter vector in double. Specifically, it takes the following actions,

1. If the parameter object is null or has a difference size of values from the current one, it returns -1.0.

2. Otherwise, as mentioned above, it calculates the Euclidean distance between the two vector objects. Suppose the current object's values is x = {x1, x2, ..., xn} and the other's values is y = {y1, y2, ..., yn}, it returns a double d as follows:
d = 2√(x1 - y1)2 + (x2 - y2)2 + ? + (xn - yn)2

• add

This is a public method that has one parameter, i.e. another object of RangedVector class, and returns an object of Vector class. Specifically, it takes following actions:
1. If the parameter object is null or has a different size to the current object, it returns a null.

2. Otherwise, it adds the values attributes of the current object and the parameter object and returns an object of Vector class by using its first constructor with the added integer array and the default value of 0 as parameters. For example, if the two RangedArray objects have values attributes {1, 2, 3} and {4, 5, 6}, the method creates an object of Vector class with an integer array {5, 7, 9} and 0 as the constructor's parameters and then returns it.

• toString

This is a public overrided method, which has no parameters but returns a String to represent the information about the current object. Specifically, it takes following actions:
1. If lowerbound and upperbound attributes are same, it calls toString method of base class.

2. Otherwise, it returns a String about the values attribute, e.g. {1, 2, 3, 4}, the lowerbound attribute, e.g. 1, and the upperbound attribute, e.g. 4, as
"[ 1 2 3 4 ] in range of [ 1, 4 ]"

• main

This is a public static method to test the class and has been provided already. Regarding change on main method, you are ONLY allowed to add code between the two following comments:

//---CHANGE ON main METHOD STARTS HERE

//---CHANGE ON main METHOD ENDS HERE

You are required to add code in the abovementioned area to enable the following actions:

1. The program takes as command line arguments the paths to three .dat files as command arguments. For example:
java RangedVector v1.dat v2.dat v3.dat

2. If command line arguments are less than or more than three, it prints the following information:
Error: The program requires as input 3 .dat files.

3. Otherwise, it creates an object of RangedVector class for data read from each .dat file and stores all objects in an RangedVector array named rv.

4. Each .dat file, no matter the one provided for testing or marking, consists one line of integers separated by white space. The first integer is lowerbound, the second is upperbound, and the rest are used as values in an object of RangedVector class. For example, v1.dat contains the following line:
3 7 1 3 5 7 9

Hence, the program takes 3 as lowerbound parameter, 7 as upperbound parameter, and {1, 3, 5, 7, 9} as the interger array parameter to the constructor and then creates an object of RangedVector class.

Any .dat test file for this assignment contains at most 16 integers.

5. If the class is correctly written, it is supposed to output following information with v1.dat, v2.dat and v3.dat as command line arguments:
RV 0: [ 3 3 5 7 7 ] in the range of [ 3, 7 ]
RV 1: [ 4 4 6 8 8 ] in the range of [ 4, 8 ]
RV 2: [ 2 2 2 2 ]
--->
Euclidean distance between RV 0 and RV 1: 2.24
Addition of RV 0 and RV 1: [ 7 7 11 15 15 ]
Euclidean distance between RV 0 and RV 2: -1.00 Addition of RV 0 and RV 2: Invalid!
Euclidean distance between RV 1 and RV 2: -1.00 Addition of RV 1 and RV 2: Invalid!

Attachment:- Data-For-Students.zip

Reference no: EM132422763

Questions Cloud

What environmental factors led to the emotional response : How might the suggested Mindfulness practices be used during future times of conflict? What needs to be put into place for the plan to be successful
Obtain half of the monopoly profits : Consider Firm 1 and Firm 2, who produce identical products and compete in a market with the inverse demand curve p(y) = 20-y. Their competition
Find a symmetric nash equilibrium among the n firms : Consider only stage 2. Suppose N firms entered this market. Find a symmetric Nash equilibrium among the N firms that entered.
Draw the game tree for bargaining game : Question 1: Draw the game tree for this Bargaining game.
Practise combining multiple classes and methods : Design programs that conform to given specifications - practise combining multiple classes and methods into a whole program
Calculate equilibrium quantities for both cournot duopolists : a. Calculate the equilibrium quantities for both Cournot duopolists (and).
Draw a payoff tree and use backwards induction : Draw a payoff tree and use backwards induction to solve for the Nash equilibrium of this game.
How are the roles organized? what type of entity is it : How would you describe their target market as it relates to demographics, geographic areas, behavior or psychographics? Type of organization?
Draw the payoff matrix : Question 1: Draw the payoff matrix. Question 2: Which outcome do you expect? Why?

Reviews

Write a Review

JAVA Programming Questions & Answers

  Recursive factorial program

Write a class Array that encapsulates an array and provides bounds-checked access. Create a recursive factorial program that prompts the user for an integer N and writes out a series of equations representing the calculation of N!.

  Hunt the wumpus game

Reprot on Hunt the Wumpus Game has Source Code listing, screen captures and UML design here and also, may include Javadoc source here.

  Create a gui interface

Create GUI Interface in java programing with these function: Sort by last name and print all employees info, Sort by job title and print all employees info, Sort by weekly salary and print all employees info, search by job title and print that emp..

  Plot pois on a graph

Write a JAVA program that would get the locations of all the POIs from the file and plot them on a map.

  Write a university grading system in java

University grading system maintains number of tables to store, retrieve and manipulate student marks. Write a JAVA program that would simulate a number of cars.

  Wolves and sheep: design a game

This project is designed a game in java. you choose whether you'd like to write a wolf or a sheep agent. Then, you are assigned to either a "sheep" or a "wolf" team.

  Build a graphical user interface for displaying the image

Build a graphical user interface for displaying the image groups (= cluster) in JMJRST. Design and implement using a Swing interface.

  Determine the day of the week for new year''s day

This assignment contains a java project. Project evaluates the day of the week for New Year's Day.

  Write a java windowed application

Write a Java windowed application to do online quiz on general knowledge and the application also displays the quiz result.

  Input pairs of natural numbers

Java program to input pairs of natural numbers.

  Create classes implement java interface

Interface that contains a generic type. Create two classes that implement this interface.

  Java class, array, link list , generic class

These 14 questions covers java class, Array, link list , generic class.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd