Get Instant Help From 5000+ Experts For
question

Writing Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Editing:Proofread your work by experts and improve grade at Lowest cost

loader
Phone no. Missing!

Enter phone no. to receive critical updates and urgent messages !

Add File

Error goes here

Files Missing!

Please upload all relevant files for quick & complete assistance.

Guaranteed Higher Grade!

CSE1OOF-Oriented Programming Fundamentals

12 Pages / 2,836 Words Published On: 18-07-2020
Question:
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:

  • valuesThis is an integer array that stores a collection of input integers passed in a constructor. Note its access mode is protected.
  • sizeThis 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.
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.

 

  1. 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.

 

  1. 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
  1. 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.
  1. 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.
  1. 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.

 

  1. 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!

Download Sample Now

Earn back the money you have spent on the downloaded sample by uploading a unique assignment/study material/research material you have. After we assess the authenticity of the uploaded content, you will get 100% money back in your wallet within 7 days.

up arrow icon

Upload
Unique Document

Clipboard Icon

Document
Under Evaluation

wallet

Get Money
into Your Wallet

Total 12 pages

Cite This Work

To export a reference to this article please select a referencing stye below:

My Assignment Help. (2020). CSE1OOF-Oriented Programming Fundamentals. Retrieved from https://myassignmenthelp.com/free-samples/cse1oof-oriented-programming-fundamentals.

"CSE1OOF-Oriented Programming Fundamentals." My Assignment Help, 2020, https://myassignmenthelp.com/free-samples/cse1oof-oriented-programming-fundamentals.

My Assignment Help (2020) CSE1OOF-Oriented Programming Fundamentals [Online]. Available from: https://myassignmenthelp.com/free-samples/cse1oof-oriented-programming-fundamentals
[Accessed 06 June 2023].

My Assignment Help. 'CSE1OOF-Oriented Programming Fundamentals' (My Assignment Help, 2020) <https://myassignmenthelp.com/free-samples/cse1oof-oriented-programming-fundamentals> accessed 06 June 2023.

My Assignment Help. CSE1OOF-Oriented Programming Fundamentals [Internet]. My Assignment Help. 2020 [cited 06 June 2023]. Available from: https://myassignmenthelp.com/free-samples/cse1oof-oriented-programming-fundamentals.


Stuck on Any Question

Our best expert will help you with the answer of your question with best explanation.

question

Writing Get your essay and assignment written from scratch by PhD expert

Rewriting: Paraphrase or rewrite your friend's essay with similar meaning at reduced cost

Editing: Proofread your work by experts and improve grade at Lowest cost

question
We will use e-mail only for:

arrow Communication regarding your orders

arrow To send you invoices, and other billing info

arrow To provide you with information of offers and other benefits

Phone no. Missing!

Enter phone no. to receive critical updates and urgent messages !

loader
250 words
Error goes here

Error goes here

Files Missing!

Please upload all relevant files for quick & complete assistance.

Other Samples
icon
5% Cashback

On APP - grab it while it lasts!

Download app now (or) Scan the QR code

*Offer eligible for first 3 orders ordered through app!

screener
ribbon
callback request mobile
Have any Query?
close
Subtraction Payment required!

Only one step away from your solution of order no.