Features to be
implemented |
|
- Declare a new type 'CDPointer' that
is a pointer to a CDNode (analogous to 'NodePointer'
from my notes on linked lists).
|
|
- Declare a new type 'CDNode'
(analogous to 'Node' from my notes on
linked lists) which is a record with two fields: a) 'Data'
which is of type 'CD' as declared in
the previous assignment b) 'Next' which is a CDPointer.
|
|
- Declares a head pointer of type 'CDPointer'.
|
|
- Displays instructions on how to use the program each time that it is
run.
|
|
- Display a signoff message to indicate to the user that he or she has
quit the program.
|
|
- Some form of debug mode has been implemented.
|
|
- Displays a menu showing the list management functions.
|
|
- (Q)uit implemented: The user can quit the program. Until the
user quits the program loops in the fashion described with the previous
assignment.
|
|
- (D)isplay implemented: The program display the list in a
fashion that is similar to the previous assignment.
|
|
- CD prices are displayed in dollar values (as described in the previous
assignment).
|
|
- (L)oad implemented: This feature can be implemented in
one of the two ways (you will only get credit for one way because the
second way is an improved version of the first).
|
|
|
- As the information for each CD is read in from file it's added to the
end of the list.
|
|
|
- As the information for each CD is read in from file it's inserted in
correct alphabetical order (and not sorted) according to the name of the
CD (no shifting of elements should be necessary).
|
|
- Correctly handle the case of an empty input file. This feature is
identical to the previous assignment.
|
|
- (S)ave implemented: This feature is identical to the previous
assignment.
|
|
- (F)ind implemented: This feature is identical to the
previous assignment.
|
|
- (P)resent implemented: You can implement either the basic or
enhanced version as described in the previous assignment.
|
|
- (A)dd implemented: You can implement this feature in one of two
possible ways (you will only get credit for one way because the second way
is an improved version of the first).
|
|
|
- New CDs will be added to the end of the list.
|
|
|
- New CDs will be inserted in it's correct alphabetical order (and not
sorted) according to the name of the CD (no shifting of elements should be
necessary).
|
|
- (R)emove implemented: You can implement this feature in one of
two possible ways (you will only get credit for one way because the second
way is an improved version of the first).
|
|
|
- When this feature is invoked the last CD is removed.
|
|
|
- When this feature is invoked, the user is prompted to enter the name
of the CD and the program will search for that title in the fashion
described in the previous assignment except that no shifting should be
needed.
|
|
- (O)rder reverse display implemented:
In order to receive credit for this feature
you cannot use doubly linked lists (which has pointers to the previous
and successor nodes - don't worry if you don't know what I am
referring to because this topic will covered in a later course: CPSC
331). Instead you must use a recursive function or procedure call to
display the list in reverse order. That is, the last element is displayed
first, the second last element is displayed second until the first element
is reached and it is displayed last. Note: The list should only be
displayed in reverse order, the list should not actually be resorted
into reverse order by invoking this feature. Because this features is
a 'bonus' (actually a bonus on top of a bonus) you may have to do some
extra reading to in order to sufficiently understand recursion to
implement it for this assignment. Consequently I recommend that you work
on this feature last, after you've gotten all the other features working
because it will likely take up substantially more time than everything
else. (JT: Hint completing this feature depends upon your ability
think and trace code in a backwards fashion).
|