Project #3 (STREET MAPPING)CSC 172 (Data Structures and Algorithms), Spring 2019,University of RochesterDue Date: WED 05/01 11:59 PMYou can work alone or in a team (max.size of 2).IntroductionThis project will require you to create a rudimentary mapping program in Java. Given a data set representing theroads and intersections in a specific geographic region, your program should be able to plot a map of the data andprovide shortest path directions between any two arbitrary intersections.Input DataThe geographical data necessary to run your application is provided in the format of a tab-delimited text files.Eachline will consist of 4 pieces of data, as defined below:Intersections start with “i”, followed by a unique string ID, and decimal representations of latitude and longitude.i IntersectionID Latitude LongitudeRoads start with “r”, followed by a unique string ID, and the IDs of the two intersections it connects.r RoadID Intersection1ID Intersection2IDYou may safely assume that all input files will declare intersections before their IDs are used in roads. Three differentdata sets are provided for your testing purposes with this project. The first data set, ur.txt represents a subsetof the pedestrian sidewalks on our campus. Building entrances have meaningful intersection IDs such as “CSB” or“SUEB” for your convenience. The second and third data set test your program’s ability to scale well, with the latestcensus data on roads in Monroe County and NYS. The three datasets are attached to the announcement in a zip file.Project #3 (STREET MAPPING) Page 1 / 3DeliverableYour program will be evaluated on how well it accomplishes the following two tasks and command line specification:Basic Mapping Implement your own Graph, Node and Edge classes. For this you may use code available online or othersources, but you must cite the source. Construct a Graph object using the information read in from the specified input file Draw the map using Java Graphics (no third party graphing libraries allowed. Talk to your lab TAs for furtherclarification if required). The map should scale with the size of the window.Directions Between Intersections Implement Dijkstra’s algorithm to find the shortest path between any two arbitrary intersections, as providedby the command line arguments. When the shortest path has been discovered, the intersections followed to reach the destination should beprinted out to the console in order. Additionally, your program should print out the total distance traveled inmiles. Finally, if the program is displaying the map, it should highlight (in a different color, stroke width, etc.) thesolution path found.Command Line ArgumentsYour program should accept the following set of command line arguments:java StreetMap map . txt [ -- show ] [-- directions startIntersectionendIntersection ]Your program should only display a map if--showis present. Below, you can find how a few of the sample runsmay look like:java StreetMap ur . txt -- show -- directions HOYT MOREY// Showing both mapand the directionsjava代写CSC 172作业、代写Data Structures作业、java实验作业代做、java程序语言作业调试 代做SP StreetMap ur . txt -- show // Just showing the mapjava StreetMap ur . txt -- directions HOYT MOREY// Showing the map isoptional .Getting StartedIt is highly recommended that you get your program to work with the UR campus map before moving onto MonroeCounty or NYS map data. The size and complexity of those maps introduce new issues that are best handled afteryou’ve mastered the basic project requirements.Hand InEach student must submit individually irrespective of whether s/he is working in a team or not.Hand in the source code from this project at the appropriate location on Blackboard. You should hand in a singlecompressed/archived (i.e. “zipped”) file named proj3.zip which contains the followingProject #3 (STREET MAPPING) Page 2 / 31. A plain text file named README that includes your (and your team member’s) contact information, a detailedsynopsis of how your code works and any notable obstacles you overcame, and a list of all files included inthe submission. If you worked in a team, you must state how you have distributed the workload.If you went above and beyond in your implementation and feel that you deserve extra credit for a feature inyour program, be sure to explicitly state what that feature is and why it deserves extra credit.The README for this project should clearly explain any design or implementation choices you made, theexpected runtime of plotting the map and finding the shortest path between two intersections.2. Source code files representing the work accomplished in this project. All source code files should containauthor identification in the comments at the top of the file.Grading Rubric30% Basic mapping15% Implementation15% Correctness50% Directions between intersections25% Implementation25% Correctness20% README with team-information, detailed description of how you structured your project, approached thechallenges the larger maps presented, and the runtime analysis of your code.Detailed description of your project should include: A brief summary of how your program works, classes used,their private and public members and methods. You should state the input and output parameters of each method.See ‘Hand In’ section for further details.Extra Credit is available for projects that have interactive and/or exceptionally beautiful maps. The Lab TAs willdecide if you deserve any extra-credit. For calculating the distance between two intersections, you must use This uses the ‘haversine’ formula.Checkhttps://en.wikipedia.org/wiki/Haversine_formula . It’s ok to use implementation of thismethod found online as it is as long as you cite the source. There might be two intersections which are not connected. ‘show’ and ‘direction’ may appear in any order. For a large map, we advice you not to add all intersections to the priority queue at the beginning. If you use a java.util.PriorityQueue, for changing priority of any entry, you must remove it and add itagain. You are welcome to write your own heap implementation (if you want) to avoid removing theentry.Project #3 (STREET MAPPING) Page 3 / 3转自:http://www.7daixie.com/2019042853422885.html
网友评论