• The drill here is quite similar to last time...

  • As always, make sure your code is clear and well-commented.

  • As usual, mail a copy of your source code, as attachments if possible, to c373@ms.washington.edu (note: only .c, .cpp, and .h files are necessary. Do not mail us a copy of your entire executable or any sample input/output, for example).

  • If you are interested in entering the First Annual BEL++ programming contest, send your BEL++ code to brad@cs.washington.edu. Please include a brief description of what your program does and why you consider it to be interesting (see the mail "BEL++ Update" from April 27 for details)

  • Turn in a few demonstrations of your code working on BEL++ programs. You may either use the samples provided (be sure it's clear which one you were using), or your own test files. If you use your own test files, please include a copy of the source code as well. Please select just a few examples which you think demonstrate that your program is working completely and correctly.

  • Also, turn in a copy of your complete source code. This time around, it's almost certain that you implemented your own ADTs or modified Weiss', so include the source code for those as well.

  • On a separate page attached to your source code, please include a very brief paragraph explaining how your code is organized. This should cover:
    • what ADTs you used and how you created them (e.g., what modifications you made to Weiss' code, or what sort of implementation and operations you implemented if you did your own).
    • a "directory" explaining what code each file you're turning in contains. For example:
      	exprtree.c -- my binary expression tree implementation
      	hash.c -- my modifications to Weiss' hash table implementation
              main.c -- my main file
      
    • anything else about your program that you think is interesting or worth mentioning.

  • In addition, I'd like you to mark a few key sections of your code on the printout with a number in a circle (using a big magic marker for example). This will help us find key pieces of code quickly:
    1. Any changes you made to Weiss' ADTs if you used them (if you didn't, no need to highlight anything here).
    2. Your code to implement a Hash Table. (This may overlap with the previous item.)
    3. The code that reads in a BEL++ statement and processes it.
    4. Your code to determine what type of statement the user is entering ("p", "e" "d", or "q").
    5. Your routine that creates a binary expression tree.
    6. Your routine that prints a binary expression tree.
    7. Your routine that evaluates a binary expression tree.
    8. Any code which might flatter the grader.