- Program Correctness (75%): The programs do everything that the
lab requires. If you have a question about how a program handles
a certain input, check the executables that have been provided.
Deduct 20 points for not using my dllist interface and 20 points
for not using my stack interface.
- Part 1 (20 points) -- Dllist Implementation: Award 20 points if
the student's photo_sorter works properly. If the student's photo_sorter
does not work properly, then test it with your photo_sorter. Each
working routine (dll_prepend, dll_append, dll_insert_after, and
dll_delete) is worth 5 points.
- Part 2 (20 points) --photo_sorter
- normal cases
- (2 points) append works (a set of append commands only)
- (2 points) prepend works (a set of prepend commands only)
- (2 points) insert_after works: use a command to create a one item list
(either append or prepend), and
then multiple insert_after commands
- (2 points) delete works: use
a number of commands to create a list with a few elements,
then a number of delete commands
- (2 points) a mixed set of commands works
- boundary conditions
- (1 points) a mixed set of commands that ultimately leads to an empty
list (i.e., a series of delete commands wipes out the list's
elements), and then starts inserting new elements into the
list again.
- (1 points) no commands
- (2 points) create a very large list
- (1 points) put a blank line in the commands
- (1 points) have a before command insert before the first photo in the list
- (1 points) have an after command insert after the last photo in the list
- error conditions
- (1 points) invalid command
- (1 points) wrong number of arguments to a command (you only need to
test one command)
- (1 points) for a insert_before, insert_after, or delete command, the
target photo does not exist (you only need to test one
command)
- Part 3 (20 points)--Stack Implementation
- new_stack (3 points)
- free_stack (2 points)
- push (5 points)
- pop (5 points)
- top (3 points)
- empty (2 points)
- Part 4 (15 points)--call_stack
- works correctly on normal cases (10 points)
- error checking (5 points)
- (1 point) Ensure there are an appropriate number of command line arguments
- (2 points) Ensure that a function has been defined before calling it. If a
function is not defined, print an error message and quit.
- (1 point) Make sure that the user defined main. This will need to be
a special check just before main is pushed onto the call stack.
This check handles the special case of an empty file.
- (1 point) Make sure that when a function is defined, that
the user has not previously defined the same function. For example,
if the user is defining function B, make sure that B has not been
previously defined.
- Commenting (15%): See the commenting
information
on the course's lab web page for advice on how to comment your programs,
- Program Style (10%): Are the programs well-organized and do they
solve the problem in the most straightforward, efficient way possible?