Write a java class for a more complicated vector

Assignment Help JAVA Programming
Reference no: EM132385034

Topic- object oriented programming with java

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.

Access Modifiers in objects

Unless stated, all attributes must have private as their access modifier. Any classes that have any non-private object attributes will result in the whole assignment mark being heavily reduced, up to and including, being awarded 0, regardless of the correctness of the program. This includes omitting access modifiers, which means that the object attributes have the java default access modifier package.
 
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:
?? = 2√(??1 − ??1)2 + (??2 − ??2)2 + ? + (???? − ????)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!

Reference no: EM132385034

Questions Cloud

Develop inclusive multicultural organisations and societies : Assignment - UNDERSTANDING DIVERSITY AND BUILDING INCLUSIVE ORGANISATIONS AND SOCIETIES. What is your understanding of the events that you were exposed
What is the expected value? of the game : You are playing a game that consists of tossing three? coins. You win ?$4 if all three tosses are heads and you lose ?$1 for any other result.
Percent of correct orders of a drive : Suppose that you and two friends go to the drive-thru window at the restaurant and each of you place an order. Find the probability that
Compute the frame check sequence using cyclic redundancy : Explain and draw the Error Detection Process for Cyclic Redundancy Check - Compute the frame check sequence using Cyclic Redundancy Check (CRC).
Write a java class for a more complicated vector : 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.
What is the probability that sales will be less than : If the restaurant sales average $100,000 per month and the standard deviation is $10,000, what is the probability that sales will be less than $90,000.
What are we attempting to measure : For the following problem, put answers a - d in the box divided by commas. Also, the only answer that requires a calculation is d.
BUS-1168 Management Communication Assignment : BUS-1168 Management Communication - Journal Entries Assignment Help and Solution - Lethbridge College, Canada - Observe situations that relate to communication
Discuss how this question could create bias : Please rate your satisfaction with the institution." Discuss how this question could create bias.

Reviews

Write a Review

JAVA Programming Questions & Answers

  Integers as a parameter and returns the number

Write a method maxOccurrences that accepts a list of integers as a parameter and returns the number the number of times the most frequently occurring integer

  Calculate the interest for a bank account

Calculate the interest for a bank account.Your Program should use Scanner to collect account balance and interest rate.

  Can swot be valuable on a departmental basis

Can SWOT be valuable on a departmental basis? Can the IT department get something out of their own SWOT analysis?

  Develop a thorough testing example with different values

If the rate of y is less than z, then the queue may never get full. The program will simulate process synchronization. You will want to make sure that you output a message during each of these transactions

  Create a webpage that prints

Write a programme to create a webpage that prints the name of the STUDENT database in Wide Latin font and set the subtitle with description of the STUDENT to the screen. Set the page layout to the webpage.

  Create a taxreturn class with fields

Create a TaxReturn class with fields that hold a taxpayer's Social Security number, last name, first name, middle initial, zip code, annual income

  Instantiate two savingsaccount objects

saver1 and saver2, with balances of $2000.00 and $3000.00, respectively (was trying to figure out the formula, what I have written so far is as follows, and I am trying to see if I missed something

  Create file using any word-processing program or text editor

Create a file using any word-processing program or text editor. Write an application that displays the file's name, containing folder, size, and time of last modification. Save the file as FileStatistics.java.

  Provide example in which sequential file is better choice

What are the advantages and disadvantages of sequential and random access files? Provide an example in which a sequential file is a better choice than a random

  Develop a menu driven console java program

Develop a Menu Driven Console Java Program to demonstrate you can use Java constructs including input/output via GUI dialogs, Java primitive and built-in types, Java defined objects, arrays, selection and looping statements and various other Java ..

  Which class provides prebuilt dialog boxes

Which class provides prebuilt dialog boxes that enable programs to display windows containing messages (such windows are called message dialogs)

  Scenario - clinic management system

Change the category of a doctor - Clinic Management System - Java client application that perform

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