Topical Information

This project will help you show your mastery of dynamic arrays, classes, and libraries. (This time it is a dynamic array as a member of a class.)

Program Information

Somewhere on the net, you find a lovely little class designed to help manage a list of temperature values. You think it could be a decent basis for more general purposes, so you download it and begin your enhancements. Here are the links, in case you forgot to bookmark them (*grin*):

First you'll need to remove all specific references to 'temperature' to make it a generic list of double data. This may require changes to identifiers, strings, etc. in various places.

Next add a method called get_last with no input to return [a copy of] the last item currently in the list. (Note that this will not change the list's contents...)

Now add a method called delete_last. It will remove the last item from the list. It can be a pure void function — no inputs and no output. (But this one, does change the list's contents! In particular, don't forget to update the size member variable...oh, that's how you remove it, isn't it? *silly Jason*)

If get_last is called by an empty list object, you may return 0.0 or NaN. If delete_last is called by an empty list object, you may simply ignore the attempt.

As a final upgrade from the temperature list, you decide you should make the list member variable dynamic instead of 'static'. You'll need to pass the number of items to be in the list to the constructor and an extra member variable to track the size. (I'd rename the current member variable something like physical_size and call this new one logical_size, but any reasonable pair of names will do...)

Remember where nullptr checks should be placed. Don't forget your destructor! (And with that, don't forget your copy constructor and your operator=...)


Place your class in its own library. Make a driver program capable of thoroughly testing its capabilities.

Other libraries may also be used for collections of functions.

This assignment is (Level 3.5).

Options


Note: This project is adapted from ones given in textbooks by Walter Savitch.