Assigned: Friday, 23 April 2004
Due: Thursday, 29 April 2004
Summary: In this assignment, you will build a simple to-do list.
Citation: This assignment is based on another assignment (this time in C), also written by Samuel A. Rebelsky.
Turning it in: Email me your files.
Collaboration: You must work with at least one other person. You may work in group of up to size four, and may discuss your design with any size group. You may also work with each other on general debugging issues.
We have been exploring the
GeneralList ADT and its variants
in class recently. One of the standard applications of lists is
to keep track of tasks that need to be done. Since my creativity
is limited, I'm making that task your first list project.
You have many goals in the project. First, you must implement the
GeneralList interface using circular, doubly-linked lists.
Next, you must
build a simple
Task class for the tasks that get stored in
the list. Third, you must build a
TaskList class from those
previous classes. Finally, you must build a
class that provides the user interface.
Each task should store, at minimum,
If you want extra work, store for each task a list of prerequisite tasks that must be completed before that task can be started.
At minimum, your TaskManager class (and, therefore, your underlying TaskList class) should provide at least the following operations:
You may add others you deem appropriate. If you've implemented the prerequisite tasks mentioned above, you could print out a list of all the tasks that must be completed before a user-selected task.
You must create at least the following classes and interfaces for the two parts of the assignment.
CircularlyLinkedList, which implements the
DoublyLinkedNode, which is used in the construction of
Task, which stores tasks.
TaskList, which stores lists of tasks. Note that the constructor for this class should probably take a plain
GeneralListas its parameter.
TaskManager, the user interface.
You may, of course, create other classes.
Monday, 21 April 2003 [Samuel A. Rebelsky]
Thursday, 23 April 2004 [Samuel A. Rebelsky]
I usually create these pages
on the fly, which means that I rarely
proofread them and they may contain bad grammar and incorrect details.
It also means that I tend to update them regularly (see the history for
more details). Feel free to contact me with any suggestions for changes.
This document was generated by
Siteweaver on Fri May 7 09:44:09 2004.
The source to the document was last modified on Wed Apr 28 22:20:04 2004.
This document may be found at