Description
Topics Covered:
- Master the use of functions in C++.
- Utilize call-by-value and call-by-reference implementation of functions.
- Demonstrate mastery of pointer arrays.
- Become familiar with dynamic memory allocation using pointers.
- Basic use of header file.
Description:
Develop a program that mimics some of the functionalities of an ArrayList in Java. Your program should maintain a pointer array of doubles and be able to perform the following functions:
- void insert(int index, double num, double *&arr, int &size)
- Adds an element (num) to the array (arr) at a given position (index) and updates the size.
- You may allow the user to add to the immediate end of the array (at position n for an array of n elements) but not past. You should print an error message if they try to print beyond these bounds.
- void remove(int index, double *&arr, int &size)
- Removes an element from the array (arr) at a given position (index) and updates the size.
- If index is out of the bounds of the arr then an error message should be printed.
- int get(int index, double *arr, int size)
- Returns the element at the given position (index).
- Should check if the index given is outside the bounds of the array. If it is out of bounds an error message should be printed.
- void clear(double *&arr, int &size)
- Clears all elements of the array (arr) and updates the size (size) to be 0.
- int find(double num, double *arr, int size)
- Returns the first index in which a given element (num) is found in the array (arr).
If not found -1 is returned.
- bool equals(double *arr1, int size1, double *arr2, int size2)
- Returns true if the contents of the two arrays are equal and false if they are not equal.
- void init(double *arr, int size)
- Populates the elements of the array (arr) with input from the user (or via file redirection).
- void print(double *arr, int size)
- Prints the elements of the array.
Additional Specifications:
- I have provided two files: sampleMain.cpp and myArray.h
- I will be using sampleMain.cpp to test your program so you should test using that.
○ In myArray.h you should write ALL YOUR CODE. This is the file that you will be required to submit. DO NOT RENAME THIS FILE!
- DO NOT USE GLOBAL VARIABLES.
- You should check your code with Valgrind for memory leaks. You will get points off for both memory leaks as well as errors reported in Valgrind.
- Your program should consist of a header that contains the following information:
- First name and last name of the programmer.
○ Date and time of the program completion.
○ A brief description of the program function.
○ Input requirements and format.
○ The output of the program.
○ Any additional needed comments (e.g. related to compilation, execution or other requirements).
- Each function needs to be properly commented.
- Your comments need to include a description of the function.
○ Description of the inputs.
○ Description of the output.
○ Any additional notes assisting future programmers to comprehend the complex portions of your functions.
- Make sure your program compiles and runs on one of the Linux machines in the Linux lab before you submit.
- Submit the source code (.h) not the executable (a.out).