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

  Creating a simple chess program

JAVA Assignment - For this assignment you will start creating a simple chess program. Your program will consist of 11 java files in 3 packages

  Company facilitate access to its customers

Recently, the FBI asked Apple Computer to help unlock an iPhone. To what degree should a company facilitate access to its customers' encrypted data?

  Write a java method to take a positive integer value

Write a java method to take a positive integer value as its parameter and returns a string of 1s and 0s that represents its binary value.

  Design and implement a graphical user interface program

Design and implement a Graphical User Interface (GUI) program in Java. Use several classes from the AWT and Swing graphics packages.

  What would the code look like for a java program

What would the code look like for a java program that computes the average of those three doubles

  Create at least two vectors and demonstrate the use of each

Create a separate class, VectorTest, that will demonstrate the use of your Vector class. You must create at least two vectors, and demonstrate the use of each method. When you demonstrate the use of each method, print the results to the console ..

  Eplain the main purpose of using javascript on a website

question 1 what is the purpose of using javascript on a website? what is a specific example of a javascript

  Create a console based non-gui java program

Create a console based, non-GUI Java program using NetBeans Integrated Development Environment (IDE) that displays "Hello world!".Take a screenshot that shows the program's successful compilation and execution.

  Displays the calendar for the current month

Prepare a program that displays the calendar for the current month. You will use the Prior and next buttons to show the calendar of the previous or next month.

  Develop a comprehensive suite of unit tests

ICT221 Object-Oriented Programming - The University of the Sunshine Coast - choose a simple one-player, two-dimensional (2D) boardgame, and then implement

  Create class date with the given capabilities

In the first case the constructor should receive three integer values. In the second case it should receive a String and two integer values.

  Develop basic math operation game in java

develop young kids to basic math such as subtraction, addition, division, multiplication. Math problems are generated randomly for them to answer

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