Programming Lab #3:Assigned: Wed 1 Apr 1998 Due: Thu 9 Apr 1998
For this project you will write a program which:
Your implementation should create an empty DLL for the user when it is first
started up, and then accept commands to traverse or modify the list. You only
need to create a single list (conceptually, creating several should be easy in
an object-oriented environment). Your list should be generic, but for the purposes
of the lab we will just use integers via the "MyInteger" wrapper.
This assignment is based on the one given in the Weiss text as Programming Project
16.14 on page 452 of the text, although with a couple of additions for advancement
and printing.
Note I am not requiring that you implement a DCL, or doubly-circularly
linked list; however, you may do so if you wish. If so, you should be prepared to
describe (in person at demo time and on paper for the hard-copy version) what
differences were motivated by this change, including e.g. changes in the command
structure and error conditions. Implementation of the DCL will not count as extra
credit, but should be motivated by your own desire for some extra fun.
For details on the methods you should support, the command-line interface,
error reporting, etc., see below.
Note that it will be helpful to consult the textbook for information on
implementation techniques.
The following provides some more explanation about each of the methods
listed in the textbook. You should write a class (say,
Note also that, just as for the linked list iterator class given in the text on
page 400, your insertion and removal methods should throw an ItemNotFound
exception.
Regarding command syntax, let's use single- or double-character commands,
corresponding to the method names as follows:
No arguments to these commands.
No arguments to these commands.
No arguments to these commands.
These should take a single integer parameter (give an error if none is given).
These should take a single integer parameter (give an error if none is given).
No arguments to these commands.
No arguments to these commands.
Note that the use of the "R" character for a single-character command as well as
for the beginning of a double-character command makes parsing a little more
difficult.
Here is a sample run showing typical input/output (you should feel free to use
appropriate introductory text and prompts of your own design):
Your project will be assessed on the basis of both a "live" demonstration
and a hard copy description and print-out of the project code.
The printed version
should specify both members of your group and should specifically mention any free
late days used, remaining problems or bugs, special enhancements, etc. In addition
to "raw code", you should include a brief introduction describing anything that is
special in your approach to the problem (bugs, enhancements, etc., should also be
mentioned here).
Your grade will be determined in part by the correctness of your code, but also
by virtue of the techniques you use to implement it.
I will be available in lab on Monday mornings from 10:00 - 11:30 for demonstrations.
You may also demonstrate at other times (Thursday morning office hours will likely
be popular), including by appointment, but you must demonstrate your project and hand
in your hard copy by the due date unless you receive a specific provision otherwise
(see also the information about free late days on the syllabus).
|