Map - #include#include#include#include#include#include...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
#include <string> #include "Map.h" #include <math.h> #include <vector> #include <stdlib.h> #include <fstream> # using namespace std; u int getDist(Station *s1, Station *v2) { // racine((x1-x2)²+(y1-y2)²) int x; x = (int) ( sqrt((v2->getX() - s1->getX())*(v2->getX() - s1->getX()) + (v2- >getY() - s1->getY())*(v2->getY() - s1->getY())) ); return x; } int Split(vector<string>& vecteur, string chaine, char* separateur); i Map::Map() { for(int i=0; i<NB_STATION; i++) { info[i] = NULL; // tout à NULL } } Ancre **Map::getInfo() { return info; } void Map::addVoisinStationWithSameNom(Station **sta, Ancre *act) { for(int x=0; x<NB_STATION; x++) // on parcourt sta { // si le nom de l'ancre est le même que celui du sta parcouru et la ligne est différente => on a un nouveau voisin //cout << /*act->getActuelle()->getLigne()*/ sta[4]->getLigne() << endl; if((sta[x]->getNom() == act->getActuelle()->getNom()) && (sta[x]- >getLigne() != act->getActuelle()->getLigne())) { Voisin *v1 = new Voisin (); act->getVoisins()->setTete(v1); // ajoute le voisin en tete de la liste act->getVoisins()->getTete()->setStation(sta[x]); // et met la station parcourue dedans // ajoute maintenant les deux stations voisines de la station avec le même nom si sur la mêem ligne que le voisin (pour les terminus) if(sta[x-1]->getLigne() == sta[x]->getLigne()) // la station voisin
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
du haut est sur la même ligne { Voisin *v2 = new Voisin (); act->getVoisins()->setTete(v2); act->getVoisins()->getTete()->setStation(sta[x-1]); } if(sta[x+1]->getLigne() == sta[x]->getLigne()) // la station voisin du bas est sur la même ligne { Voisin *v3 = new Voisin (); act->getVoisins()->setTete(v3); act->getVoisins()->getTete()->setStation(sta[x+1]); } } } } void Map::remplir(Map*plan, char *n,Station** sta) { vector<string> VecStr; int nbst; // le nombre de station par ligne int cmpt=0; // le compteur ifstream fichier(n); // ouvre le fichier if (fichier) // si réussi l'ouverture { string ligne; while (getline( fichier, ligne)) { nbst = ((int)atof(ligne.c_str())); for(int i=0; i<nbst; i++) // i : revient à 0 pour chaque ligne { getline(fichier, ligne); int nbTabl = Split(VecStr, ligne, ";"); Ancre *ancre = new Ancre(); // créer une nouvelle ancre plan->getInfo()[cmpt] = ancre; // l'ajoute au tableau d'info du plan sta[cmpt] = new Station(); // créer un nouvelle station plan->getInfo()[cmpt]->setActuelle(sta[cmpt]); // l'ajoute comme ancre actuelle ListeVoisin *l = new ListeVoisin(); // créer une nouvelle liste voisins plan->getInfo()[cmpt]->setVoisins(l); // l'ajoute à la liste voisin de l'ancre l for(int j=0; j<nbTabl; j++) // j : pour chaque mot dans la ligne { // pour les info stations if(j==0) { sta[cmpt]->setId((int)(atof(VecStr[j].c_str())));
Background image of page 2
// rempli le tableau de stations plan->getInfo()[cmpt]->getActuelle()->setId(sta[cmpt]-
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}

Page1 / 8

Map - #include#include#include#include#include#include...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online