1. Program Correctness (80%): The programs do everything that the lab requires.

    1. PreLab Homework (6 points): 2 points for each question
    2. PostLab Homework (9 points): 3 points for each question
    3. Print Family Tree (25 points)
      1. Prints the family tree correctly (20 points)
      2. Uses the proper level of indenting for each level of the family tree (e.g., the first level is indented no spaces, the second level is indented 4 spaces, the third level is indented 8 spaces, etc).
    4. Family Tree (40 points): Deduct 20 points if the solution does not use a doubly linked list to associate names with family tree nodes.
      1. Correctly echos out all the lines in the input (8 points)
      2. Correctly calculates the position of each node (20 points): The calculated totals may differ from mine by 1 or 2 pixels per node
      3. Error Checking (12 points) (3 points each)
        1. Check that the number of command line arguments is correct
        2. Check that the input and output files can be successfully opened
        3. Every parent must have at least one child so ensure that each line in the input has at least two fields, one for the parent and at least one for a child.
        4. Check that the input file is not empty (i.e., there must be at least one line of input)

  2. Commenting (10%): See the commenting information on the course's web page for advice on how to comment your programs,

  3. Program Style (10%): Are the programs well-organized and do they solve the problem in the most straightforward, efficient