PA4: Cartography and Geocoding
         
            
         
         
            
1 Purpose
  The primary purpose of this assignment is to help you review (and
  demonstrate that you have acquired) the knowledge and skills
  required to create cartographic applications that involve streets
  and intersections.
  
         
            2 Overview
            Nearby is a (fictitious) company
  that develops personal navigation systems, en-route and mobile
  commerce systems, location-based services, and geographic
  tracking/location services.  They are in the process of developing a
  personal navigation system called Way. They have hired you to
  construct several interfaces/classes that could be used to street
  maps of various kinds and to geocode street addresses.
  
 
         
            3 Design Document
  Nearby has provided you with the following design document:
  
            
  (They have also provided you with an SVG version of the engineering design
  which can be enlarged in most prowsers. It is named
  design.svg.)  
  
          
         
            4 Existing Code
  They have provided you with the following classes:  
    
  
          
         
            5 Testing
  You should write unit tests for the 
geography
  and 
math packages, but you are not required to do so.
    
  
  You must perform system testing on all of the components you write.
  Nearby has provided you with the following classes and data files
  that you can use for this purpose.
  
            
            
  The data files must be accessed from the current working directory (i.e., they
  must not be accessed using a path). In Eclipse, this means that you
  must copy the files into the project directory/folder (not
  the src folder or any folder underneath it).
  
          
         
            6 Submission
  You must submit (to the PA4_Java assignment on 
Gradescope)
  a 
.zip file 
named pa4.zip
             that
  contains all of the code necessary to
  run 
PA4Driver.java and test you code (packaged
  appropriately). 
It must not contain any data files.  There is
  no limit on the number of submissions and no penalty for excessive
  submissions.
  
  You must submit (to the PA4_Screenshot assignment on Gradescope)
  a .pdf file that contains screenshots like those in the
  write-up that show the geocoding for "600 S Main St" and "351 Stone
  Spring Rd" for the Rockingham County data files.
  
          
         
            7 Grading
  You will receive one of four grades on this assignment -- 100, 75,
  50, or 0.  You will receive a grade of 100 if your code is
  essentially correct (i.e., there are a small number of defects).
  You will receive a grade of 75 if you appear
  to have devoted significant effort to the assignment but your code
  has significant defects. You will receive a grade of 50 if you devoted a
  reasonable amount of effort to the assignment but your code has
  doesn't really work. You will receive a grade of 0 otherwise 
and/or if
  the code you submit to Gradescope contains any style defects.
  
  
  The Gradescope autograder will assign a maximum grade of 25 (based
  solely on style).  Points will then be awarded manually based on the
  criteria discussed in the previous paragraph.