From 60859ccc2d515a0dd090a0c42ee156be4999ea94 Mon Sep 17 00:00:00 2001 From: Victor Zamanian Date: Fri, 17 Oct 2008 16:13:52 +0200 Subject: [PATCH] Added description of setMap and some discussion on it; fixed typo. --- rapport/rapport.tex | 30 +++++++++++++++++++++++++++++- src/MySearcher.java | 2 +- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/rapport/rapport.tex b/rapport/rapport.tex index 03d4eb7..7cdea9e 100644 --- a/rapport/rapport.tex +++ b/rapport/rapport.tex @@ -84,11 +84,39 @@ och då efterfrågas bara slutnod av programmet. Annars, om både startnod och slutnod anges körs vald metod (algoritm) för att hitta vägen mellan noderna. -\section{Algoritmbeskrivning} +\section{Metod- och Algoritmbeskrivning} + +\subsection{\verb!public void setMap (File mapFile)!} +Denna metod läser in en karta i form av en XML-fil och representerar +den i en graf. Implementationen av grafen är en modifierad version av +Graph.java som vi använde i kursen Datastrukturer och Algoritmer. + +När XML-filen lästs in och tolkats som ett DOM-dokument skaffas alla +noder fram ur detta och sparas i grafen som objekt av typen +\verb!GraphNode!. Dessa objekt innehåller x- och y-koordinater för +noden och ett ''ID'' vilket är namnet på platsen på kartan som noden +representerar. Sedan gås alla noder igenom ännu en gång för att lägga +till vägar och hastighetsbegränsningar mellan dem. Metoden skriver +även ut felmeddelanden om filen 1) inte hittas, 2) inte kan läsas av +någon annan anledning, 3) om det är något fel på innehållet i filen +och vilket felet är, och 4) om någon av koordinaterna för någon nod +inte kan tolkas som ett heltal. Programmet avslutas om något av +ovanstående fel uppstår. + \section{Begränsningar} \section{Reflektioner} \section{Testkörningar} \section{Diskussion} +* Angående att vi måste loopa igenom alla noder två gånger: + Detta beror på att det inte går att lägga till en väg mellan en + nod och en nod som inte ännu existerar i minnet. Detta skulle + kanske kunnat lösas genom att man faktiskt skapar den nod som inte + finns och lägger till information om nodens position när man + kommer till de noderna senare när man kommer till den noden i + DOM-dokumentet. Metoder hade då behövt skrivas för att sätta + koordinaternas värden för en nod. Vi valde att gå igenom noderna + två gånger i stället därför att det kändes lättast då vi skrev + metoden. \newpage \appendix diff --git a/src/MySearcher.java b/src/MySearcher.java index de1924d..d5fab80 100644 --- a/src/MySearcher.java +++ b/src/MySearcher.java @@ -68,7 +68,7 @@ public class MySearcher extends MapSearcher { } catch (NumberFormatException e) { System.err.println ("Coordinates cannot be parsed. Check XML-file for errors."); - System.exit1(1); + System.exit(1); } } -- 2.11.4.GIT