Anonymous

Changes

From CMSC 420
500 bytes added ,  01:26, 6 February 2017
Line 1: Line 1:  
'''Part 1''' of the [[MeeshQuest]] project:
 
'''Part 1''' of the [[MeeshQuest]] project:
* Due Date: Friday, March 30 (+ epsilon)
+
* Due Date: Either the date on the submit server or the date on the project spec, whichever is later
* The official spec is [http://www.cs.umd.edu/~meesh/cmsc420/spr07/part1/p11/ here]. Current version: Draft 1.1
+
* All part 1 files can be found [https://www.cs.umd.edu/users/meesh/420/ProjectBook/part1/ here]
* As always, the spec will freeze 1 week prior to the due date.
+
* The official spec is [https://www.cs.umd.edu/users/meesh/420/ProjectBook/part1/p11/ here] with name p1x, for the largest value of x in that directory.  
 +
* As always, the spec will freeze 1 week (5 days summer) prior to the due date.
 +
* [[Part 1 Test Files | Test Files]]
    
== Overview ==
 
== Overview ==
Line 12: Line 14:     
== Data structures ==
 
== Data structures ==
# Data Dictionary ([http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeMap.html TreeMap] and [http://java.sun.com/j2se/1.5.0/docs/api/java/util/TreeSet.html TreeSet] for part 1)
+
#Data Dictionary ([http://java.sun.com/j2se/1.6.0/docs/api/java/util/TreeMap.html TreeMap] and [http://java.sun.com/j2se/1.6.0/docs/api/java/util/TreeSet.html TreeSet] for part 1)
#* Related commands:
+
#*Related commands:
 
#** [[createCity]]
 
#** [[createCity]]
#** [[deleteCity]]
   
#** [[listCities]]
 
#** [[listCities]]
#** [[clearAll]]
  −
# Spatial Map ([[PR Quadtree]] for part 1)
  −
#* Related commands:
  −
#** [[deleteCity]] (if the city is mapped)
  −
#** [[mapCity]]
  −
#** [[unmapCity]]
  −
#** [[rangeCities]]
  −
#** [[nearestCity]]
  −
#** [[saveMap]]
   
#** [[clearAll]]
 
#** [[clearAll]]
    
== Commands ==
 
== Commands ==
The operations you will need to support can be gleaned from the [http://www.cs.umd.edu/users/meesh/420/spr07/part1/p11/node26.html input specification]:
+
The operations you will need to support can be gleaned from the spec:
   −
* [[createCity]] and [[deleteCity]]: You will need to be able to register cities with and remove them from the data dictionary. No two cities can have the same coordinates or name.
+
* [[createCity]]: You will need to be able to register cities with the data dictionary. No two cities can have the same coordinates or name.
* [[mapCity]] and [[unmapCity]]: These take a city that's already registered in the data dictionary and add it to or remove it from the spatial data structure.
+
* [[clearAll]]: Clears all of the data structures, removing all elements.
 
* [[listCities]]: Output a sorted (XML) list of cities in the data dictionary.
 
* [[listCities]]: Output a sorted (XML) list of cities in the data dictionary.
* [[rangeCities]]: This searches the spatial data structure for all cities within a given radius of a given point.
+
 
* [[nearestCity]]: This finds the nearest city to a given point in the spatial map.
+
== Output ==
* [[printPRQuadtree]]: This outputs an XML (textual) representation of the spatial map.
+
 
* [[saveMap]]: This outputs a visual representation (an image) of the spatial data structure. See [http://wam.umd.edu/~bzoller/cmsc420/doc/cmsc420/drawing/CanvasPlus.html CanvasPlus].
+
The general conventions in the spec can be found [https://www.cs.umd.edu/users/meesh/420/ProjectBook/part1/p11/node20.html here] and the more specific directions for each commands can be found [https://www.cs.umd.edu/users/meesh/420/ProjectBook/part1/p11/node22.html here]
* [[clearAll]]: Clears all of the data structures, removing all elements.
+
* '''<success>''': This is when your parser has successfully parsed and finished a command.
 +
* '''<error>''': When an error occurs after attempting to run a command
 +
* '''<fatalError>''': There is a problem with the entire document
 +
* '''<undefinedError>''': Default error, when we aren't sure exactly what happened
 +
 
 +
By the end, your output will be XML that minimally looks like this:
 +
 
 +
<results>
 +
    <success ... />
 +
    <success ... />
 +
    <success ... />
 +
    <error ... />
 +
    <success ... />
 +
    ...
 +
    <success ... />
 +
</results>
 +
 
 +
== Testing ==
 +
Your code will be run from the <code>public static void main(String[])</code> method of the <code>Meeshquest</code> class in a package named "cmsc420.meeshquest.part1".  It will read in its input from stdin and write its output to stdout.
 +
 
 +
You can see exactly how your code will be tested by examining the public tests.  For some example student-generated tests, see [[Part 1 Test Files | Test Files]].
editor
32

edits