commit f669fad66ef5b79dfe34c61a194ecde8afc1803e
parent 4dcf077aacb944bad4aa61ae78079d1bffbee7b4
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Fri, 21 Jun 2024 16:14:08 -0300
add `lineas` to `Parada` constructor
Diffstat:
5 files changed, 21 insertions(+), 22 deletions(-)
diff --git a/barrio.cpp b/barrio.cpp
@@ -26,9 +26,9 @@ List<Parada*> *Barrio::getParadas() {
void Barrio::addParada(std::string calle,
int alturaPlano,
std::string direccion,
- double coordX, double coordY) {
+ double coordX, double coordY, std::vector<int> lineas) {
- this->paradas->insert(new Parada(calle, alturaPlano, direccion, coordX, coordY));
+ this->paradas->insert(new Parada(calle, alturaPlano, direccion, coordX, coordY, lineas));
}
int Barrio::getSizeListaDeParadas() { // CONSIGNA 1
diff --git a/barrio.h b/barrio.h
@@ -59,7 +59,7 @@ public:
* pos: agrega una para nueva
*/
void addParada(std::string calle, int alturaPlano, std::string direccion,
- double coordX, double coordY);
+ double coordX, double coordY, std::vector<int> lineas);
/*
* pos: devuelve el numero total de paradas que hay en el barrio
diff --git a/main.cpp b/main.cpp
@@ -88,6 +88,7 @@ int main (void) {
int comuna, alturaPlano, fields;
double coordX, coordY;
std::string barrioNombre, calle, direccion;
+ std::vector<int> lineasEnParada;
const char *inputFilePath = "paradas-de-colectivo.csv";
@@ -105,6 +106,7 @@ int main (void) {
while(std::getline(inputFile, line)) {
tokens.clear();
+ lineasEnParada.clear();
fields = getTokens(line, tokens);
for(int field = CALLE; field <= fields; ++field) {
token = tokens[field];
@@ -136,27 +138,23 @@ int main (void) {
}
break;
case LINEA_1:
- break;
- case LINEA_1_SENTIDO:
- break;
case LINEA_2:
- break;
- case LINEA_2_SENTIDO:
- break;
case LINEA_3:
- break;
- case LINEA_3_SENTIDO:
- break;
case LINEA_4:
- break;
- case LINEA_4_SENTIDO:
- break;
case LINEA_5:
- break;
- case LINEA_5_SENTIDO:
- break;
case LINEA_6:
+ if(token == "") {
+ break;
+ }
+ int linea;
+ linea = std::atoi(token.c_str());
+ lineasEnParada.push_back(linea);
break;
+ case LINEA_1_SENTIDO:
+ case LINEA_2_SENTIDO:
+ case LINEA_3_SENTIDO:
+ case LINEA_4_SENTIDO:
+ case LINEA_5_SENTIDO:
case LINEA_6_SENTIDO:
break;
default:
@@ -168,10 +166,11 @@ int main (void) {
if(barrio == NULL) {
std::cout << "Creando nuevo barrio `" << barrioNombre << "`\n";
barrio = new Barrio(barrioNombre, comuna);
+ barrio->addParada(calle, alturaPlano, direccion, coordX, coordY, lineasEnParada);
barrios->insert(barrio);
} else {
// barrio ya existe
- barrio->addParada(calle, alturaPlano, direccion, coordX, coordY);
+ barrio->addParada(calle, alturaPlano, direccion, coordX, coordY, lineasEnParada);
}
}
diff --git a/parada.cpp b/parada.cpp
@@ -3,14 +3,14 @@
Parada::Parada(std::string calle,
int alturaPlano,
std::string direccion,
- double coordX, double coordY) {
+ double coordX, double coordY, std::vector<int> lineas) {
this->alturaPlano = alturaPlano;
this->calle = calle;
this->coordX = coordX;
this->coordY = coordY;
this->direccion = direccion;
- this->lineas = new std::vector<int>();
+ this->lineas = new std::vector<int>(lineas);
}
std::string Parada::getCalle() {
diff --git a/parada.h b/parada.h
@@ -21,7 +21,7 @@ public:
Parada(std::string calle,
int alturaPlano,
std::string direccion,
- double coordX, double coordY);
+ double coordX, double coordY, std::vector<int> lineas);
/*
* post: Devuelve el numero de la calle