Project 1

The project documents will be added to this page as they become available. If you get a page that says "not yet available," it should become available in the future. Ask about it only if we announced that it was supposed to be available.

Note:Files listed as "pdf" can be viewed or downloaded and printed at high-quality with Adobe's Acrobat Reader.

Files listed as text are plain ASCII text files. The should display in your browser with correct formatting, but can also be downloaded from the course file server; downloading with an ftp utility set to ASCII text mode is recommended for code and sample files to avoid problems involved with platform-specific end-of-line differences.


Component Specification Files

All files are ASCII text files. It is best to download these with a utility that ensures you have the correct line endings for your platform.

The header files listed below should be downloaded and used in your project as-is, without modification. These define the modules and their interfaces. The comments in these files provide essential details on what each module and function does.

The source and header files listed below named with "skeleton" provide pieces of code that your project must use as-is, without modification, but you will add your own code to complete the file, and rename with the correct name for the module. See the comments in the file for instructions.

This following text file contains the character string constants that were used in the instructor's solution to generate the output message text. You can avoid typing errors by downloading this file and then copy-pasting the strings into your program.

Additional Starter Files

The following files are useful, but are not part of the specifications. All are text files.

Behavior Samples

The following sample behavior files (all text files) illustrate the program behavior and contain all of the different output message text strings produced by the program (see the strings.txt file). Your program should match these samples exactly so that you can be sure it is producing all of the different kinds of messages correctly. However, these samples are not a complete test of your program. Your program will be tested for a large number of other possible inputs and input sequences. The console interaction files are a capture of the console display during the program run. The _in.txt and _out.txt files are for you to use with redirected I/O. When given the _in.txt file, your program's stdout output should match the _out.txt file exactly. The other output files are written during the by the program, and your program should produce files that match exactly with these samples.

The following sample illustrates the "normal" behavior of the program and contains the corresponding messages. Your program should reproduce the output files exactly.

There are output files for the two different implementations, showing that the only difference in program behavior is the items-allocated values.

The following sample shows the error messages produced by the program. Your program should reproduce the output file exactly. These were obtained with the list implementation.

The following sample illustrates the behavior of the program when you input excess whitespace and use "type-ahead." Your program should reproduce the stdout and the output files exactly. These were obtained with the list implementation.

These samples demonstrate the program behavior and are supposed to contain every possible type of output message string so that you can prevent your autograder score from being affected by spelling errors and typos.

These samples are not a complete test of your program!!! While they illustrate how the program generally works, and they are supposed to contain all of the constant output strings, they do not at all contain all of the interesting combinations of conditions! Your program will be tested for a large number of other possible inputs and input sequences. You must devise your own complete test set to find the bugs in your code.

The console outputs are a saved copy of a console window after entering the commands by hand. The stdin input file is suitable for redirecting input, and the stdout output can be compared with the redirected output of your program. Your program should match the stdout output.

Other Information

See the course web page for how to compare files and redirect I/O. In the examples directory on the file server you can find the redirect_io module that you can use to redirect I/O from a C program on any platform. You can use this to help test your program's output against the supplied samples. The instructions are in the header file.

For a walkthrough on how to check your code before submitting and what the results of submitting should look like, see submit example.

For an explanation of the autograder feedback for this project, see AGoutput.