We have given you well-defined public interfaces for your FormattedReader and HashTable classes and we will write programs that create instances of these classes and call the methods in the public interface. It is therefore important that you name your classes and methods exactly as instructed by the lab writeup.

  1. FormattedReader.cpp (30 points)
  2. HashTable.cpp (15 points): This section shows possible deductions. The sum of all the deductions is greater than 15 points but you cannot lose more than 15 points on this part of the lab.
  3. sort_stock.cpp (45 points): This section shows possible deductions. The sum of all the deductions is greater than 45 points but you cannot lose more than 45 points on this part of the lab.
    1. Use of Data Structures
      • Failure to use a HashTable to store people records (-15 points)
      • Failure to use C++ Red-Black trees to store stock symbols with each person (-15 points)
      • Failure to use C++ Red-Black trees to store transactions by date (-15 points)
      • Passing a compare function to the red black tree constructor rather than defining the boolean <, >, and == operators (-10 points)
      • Fields library not used for search queries (-5 points)
    2. TransactionRecord
      • Missing copy constructor for TransactionRecord (-5 points)
      • Missing assignment operator for TransactionRecord (-5 points)
    3. Error Checking: You are responsible for doing the error checking described in the lab plus the usual error checking of command line arguments, return values from new, etc.
    4. Output
      • Failure to follow the report formatting specifications (up to -15 points)
      • Stock symbols not sorted (-5 points)
      • Transactions not sorted in ascending order by date (-5 points)
      • Missing transaction records (-15 points)
      • Search queries incorrectly report whether or not the person was found (-10 points)
      • Only one search query permitted rather than multiple search queries (-2 points)
  4. appropriate commenting (10 points)