C++代写:CMPSC122MyArray


用C++代写一个关于array的generic class,属于常见的数据结构编程。

Requirement

Implement a generic (template) class called MyArray. A generic class is a
general version of a class; it is a homogenous data structure that handles
multiple data types. MyArray will be similar to C++ vectors. The array size
will grow dynamically when the user inserts an element to a full array. The
class should not use vectors. Instead, you should use dynamic memory
allocation (a dynamic array).
The class should have three member variables:

  • myarray: the dynamic array
  • size: the current size of the array
  • used: the number of elements currently used in the array
    The class should have the following functionalities:
  • A default constructor that initializes the size of the array to 5 elements.
  • A default destructor that frees the dynamic memory that was allocated.
  • int length( ) a method that returns an integer value indicating the number of elements currently used in the array.
  • void insertHead(Item i) a method that inserts a new item making it the first element in the array. If the array is full, then a new dynamic array of double the size should replace the existing array and the items in the old array are copied to the new array.
  • void insertTail(Item i) a method that inserts a new item making it the last element in the array. If the array is full, then a new dynamic array of double the size should replace the existing array.
  • void deleteHead( ) deletes the first element in the array.
  • void deleteTail( ) deletes the last element in the array.
  • void sortAscending( ) sorts the elements of the array in ascending order. Use bubbleSort to do that.
  • void sortDescending( ) sorts the elements of the array in descending order. Use bubbleSort to do that.
  • Item getMax( ) returns the maximum value in the array.
  • Item getMin( ) returns the minimum value in the array.
  • C++ allows the overloading of the [ ] operator. This feature makes it possible to access an element in a MyArray object in an array-like behavior. Overload this operator and make sure to have boundary checks using assertions. If the user tries to access an element outside the range of the array or at a location that is not used yet then an error message should be displayed on the screen.
    For example, the following code:
    MyArray a1;
    cout << “Number of elements in a1= “ << a1.length() << endl;
    a1.insertTail(35);
    a1.insertTail(45);
    a1.insertHead(55);
    a1.deleteTail();
    for (int i = 0; i < a1.length(); i++)
    cout << a1[i] << endl;
    —|—

Will result in:
Number of elements in a1 = 0
If we try any of the two instructions the result should be an assertion error:
cout << a1[4]; //Subscript uninitialized.
cout << a1[14]; //Subscript out of range.
—|—
Write a main( ) method that provides a menu driven interface that allows the
user to test whether each member function of myArray is working properly. The
menu should provide the following functionalities:

  • Create a new array: allows the user to create an array of one of the following types: bool, char, double, float, int, string
  • Get Length: the current number of elements used in the array
  • Insert a new element at the head of the array
  • Insert a new element at the tail of the array
  • Delete the first element
  • Delete the last element
  • Sort the elements in ascending order
  • Sort the elements in descending order
  • Print all the elements in the array
  • Display the maximum value
  • Display the minimum value
  • Quit the program

What to hand in

Please submit your C++ source file electronically through Canvas


文章作者: SafePoker
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 SafePoker !
  目录