1. 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.

    1. linenum (30 points) deduct 5 points for not using the fields library
      • prints out each line on which a word appears (10 points)
      • does not duplicate line numbers (10 points)
      • properly handles words that do not appear in the file (5 points)
      • the format of the output is similar to the format of my sample executable's output (5 points)
    2. broker (45 points) deduct 5 points for not using the fields library
      • customers are printed in descending order by total transaction cost (10 points)
      • total transaction costs are properly computed (5 points)
      • the format of the report's output matches the format of the executable's output (10 points)
      • the program discards transactions with errors and continues executing (10 points)
      • the program properly uses a customer list and then for each customer a transaction list (5 points)
      • the transaction struct is properly organized and includes a union (5 points)

  2. Commenting (15%): See the lab 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 way possible?