UPC receipt calculator
Functional Requirements
9:33

1 Verify UPC
  Given a raw upc apply the Check Digit algorithm provided.
  If it is not verified, create an invalid item
  and add it to the invalid list.
  
2. Lookup Product
  Given a verified upc, see if it exists in the productDB.
  If not, create an invalid item and add it to the invalid list.
  
3. Count product
  Given a product, increment the itemcount in purchase list.
  
4. Compute total
  Given a product, increment the total price with the price of this product.
  
5. Assemble Sales Receipt
  Given the purchase list, format it with one item per line.
  For each item compute the subtotal as itemcount * price.  
  Append the total price as the last line.
  
9:40


9:42
External Data

Product DB is a plain text file, formatted as shown in the problem.
upc list is a list of upc's provided on standard input, one per line.
9:44

9:48 
Data Structures
productDB is a List of products.
purchaselist is a List of products and itemcounts, in order of arrival.
invalidlist is a List of invalid items, in order of arrival.
9:51

6:42
System Tests
   The sample input and output given in the problem statement is
   an adequate system test.
6:43