CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
commit 632c8b6528d8459842ef12674d494290f7037499
parent bd9aa8dc12098aaed7ff32395cbff2b9bc6e3242
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date:   Sun, 23 Jun 2024 18:32:34 -0300

remove unused functions

Diffstat:
Mmenu.cpp | 166+++++++++++++++++--------------------------------------------------------------
Mmenu.h | 50+++++---------------------------------------------
2 files changed, 40 insertions(+), 176 deletions(-)
diff --git a/menu.cpp b/menu.cpp
@@ -10,8 +10,6 @@
 #include <iomanip>
 #include <cctype>
 
-double getDistancia(double x1, double y1, double x2, double y2);
-
 void Menu::imprimirCantidadDeParadasPorBarrio() {
     Barrio *barrio;
 
@@ -66,61 +64,6 @@ Parada *Menu::paradaMasCercanaPorCoordenada(double coordX, double coordY) {
     return res;
 }
 
-void Menu::imprimirParadasPorLinea(List<Parada*> *listaDeParadas) {
-    if(listaDeParadas->getSize() == 0) {
-        std::cout<<"No se econtro ninguna parada para esta linea";
-        throw "No se econtro ninguna parada para esta linea";
-    }
-
-    listaDeParadas->startCursor();
-        while(listaDeParadas->forwardCursor()){
-            Parada *paradaAux = listaDeParadas->getCursorData();
-
-            std::cout << "La parada esta en: "
-                      << paradaAux->getDireccion()
-                      << std::endl
-                      << "en la coordenada X: "
-                      << paradaAux->getCoordX()
-                      << std::endl
-                      << "en la coordenada Y:"
-                      << paradaAux->getCoordY()
-                      << std::endl;
-        }
-}
-
-void Menu::agregarElementosDeLista(List<Parada*>* lista, List<Parada*>* resultado) {
-    Parada *parada;
-
-    lista->startCursor();
-    while(lista->forwardCursor()) {
-        parada = lista->getCursorData();
-
-        resultado->insert(parada);
-    }
-}
-
-
-List<Parada*> *Menu::paradasPorLinea(int linea) {
-    List<Parada*> *paradas, *resultado;
-    Barrio *barrio;
-
-    resultado = new List<Parada*>;
-
-    this->barrios->startCursor();
-    while(this->barrios->forwardCursor()){
-        barrio = this->barrios->getCursorData();
-        paradas = barrio->listaDeParadasPorLinea(linea);
-        agregarElementosDeLista(paradas, resultado);
-    }
-
-    if(resultado->getSize() == 0) {
-        delete resultado;
-        return NULL;
-    }
-
-    return resultado;
-}
-
 void Menu::agregarElementoSinRepetir(std::vector<int> *lineas, std::vector<int> *vectorLineasAux) {
     size_t lineaTope = vectorLineasAux->size();
 
@@ -150,20 +93,6 @@ void Menu::lineasPorParada(List<Parada*> *paradas) {
     }
 }
 
-void Menu::imprimirCantidadParadasPorLinea(std::vector<int>* lineas){
-    List<Parada*> *paradas;
-
-    for(size_t i=0; i < lineas->size(); i++) {
-        paradas = paradasPorLinea((*lineas)[i]);
-        if(paradas == NULL) {
-            std::cout << "no hay paradas de la liena `" << (*lineas)[i] << " `\n";
-            continue;
-        }
-        std::cout << (*lineas)[i] <<" : " << paradas->getSize() <<std::endl;
-        delete paradas;
-    }
-}
-
 void Menu::cantidadDeParadasPorLinea() {
     Barrio *barrio;
 
@@ -254,7 +183,6 @@ List<Parada*> *Menu::buscarParadas(List<Barrio*> *barrios, int linea) {
     return resultado;
 }
 
-
 // busca el barrio en la lista de barrios, si no lo encuentra devuelve NULL
 Barrio *Menu::getBarrioPorNombre(std::string nombre) {
     Barrio *res, *barrio;
@@ -297,7 +225,7 @@ double getDistanciaEnKilometros(double x1, double y1, double x2, double y2) {
     return distancia;
 }
 
-double getDistancia(double x1, double y1, double x2, double y2) {
+double Menu::getDistancia(double x1, double y1, double x2, double y2) {
     double dX = (x2 - x1);
     double dY = (y2 - y1);
 
@@ -414,7 +342,6 @@ void Menu::cargarDatos() {
 
         barrio = getBarrioPorNombre(barrioNombre);
         if(barrio == NULL) {
-            // std::cout << "Creando nuevo barrio `" << barrioNombre << "`\n";
             barrio = new Barrio(barrioNombre);
             barrio->addParada(calle, direccion, coordX, coordY, lineasEnParada);
             barrios->insert(barrio);
@@ -429,7 +356,7 @@ void Menu::cargarDatos() {
 
 void Menu::mostrarMenu() {
     bool terminarPrograma = false;
-    unsigned int linea;
+    int linea;
     double lat, lon; // lat -> Y; lon -> X;
     double distanciaEnKm;
 
@@ -439,13 +366,13 @@ void Menu::mostrarMenu() {
     Barrio *barrio;
 
     while(!terminarPrograma) {
-        std::cout << "`\033[1m1\033[22m` Cantidad de paradas por barrio\n";
-        std::cout << "`\033[1m2\033[22m` Parada mas cercana a una coordenada\n";
-        std::cout << "`\033[1m3\033[22m` Listado de paradas de una linea de colectivo\n";
-        std::cout << "`\033[1m4\033[22m` Listado de cantidad de paradas por linea de colectivo\n";
-        std::cout << "`\033[1m5\033[22m` Listado de paradas de una linea mas cercano a una coordenada\n";
-        std::cout << "`\033[1mb\033[22m` Imprimir barrios\n";
-        std::cout << "`\033[1mq\033[22m` Salir\n";
+        std::cout << "`1` Cantidad de paradas por barrio\n";
+        std::cout << "`2` Parada mas cercana a una coordenada\n";
+        std::cout << "`3` Listado de paradas de una linea de colectivo\n";
+        std::cout << "`4` Listado de cantidad de paradas por linea de colectivo\n";
+        std::cout << "`5` Listado de paradas de una linea mas cercano a una coordenada\n";
+        std::cout << "`b` Imprimir barrios\n";
+        std::cout << "`q` Salir\n";
         std::cout << "opcion> ";
 
         opcion.clear();
@@ -467,23 +394,15 @@ void Menu::mostrarMenu() {
                 break;
             case '2':
                 // TODO: verificar que `latitud` y `longitud` sean validas
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "latitud> ";
-                    std::cin >> lat;
-                } while(std::cin.fail());
-
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "longitud> ";
-                    std::cin >> lon;
-                } while(std::cin.fail());
-
-                std::cout << "latitud: " << lat << "; longitud: " << lon << "\n";
+                std::cin.clear();
+                std::cout << "latitud> ";
+                std::cin >> lat;
+
+                std::cin.clear();
+                std::cout << "longitud> ";
+                std::cin >> lon;
+
+                // std::cout << "latitud: " << lat << "; longitud: " << lon << "\n";
 
                 Parada *parada;
                 parada = paradaMasCercanaPorCoordenada(lon, lat);
@@ -507,15 +426,11 @@ void Menu::mostrarMenu() {
                         << " " << distanciaUnidad << "\n";
                 break;
             case '3':
-                // TODO: verificar que `linea` sea validas
+                // TODO: verificar que `linea` sea valida
 
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "linea> ";
-                    std::cin >> linea;
-                } while(std::cin.fail());
+                std::cin.clear();
+                std::cout << "linea> ";
+                std::cin >> linea;
 
                 paradas = buscarParadas(barrios, linea);
                 if(paradas == NULL) {
@@ -564,32 +479,21 @@ void Menu::mostrarMenu() {
                 break;
             case '5':
                 std::cout << "barrio> ";
-                std::cin >> barrioNombre;
-
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "linea> ";
-                    std::cin >> linea;
-                } while(std::cin.fail());
+                std::cin.ignore(1);
+                std::getline(std::cin, barrioNombre, '\n');
+
+                std::cin.clear();
+                std::cout << "linea> ";
+                std::cin >> linea;
         
                 // TODO: verificar que `latitud` y `longitud` sean validas
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "latitud> ";
-                    std::cin >> lat;
-                } while(std::cin.fail());
-
-                do {
-                    std::cin.clear();
-                    std::string line;
-                    std::getline(std::cin, line);
-                    std::cout << "longitud> ";
-                    std::cin >> lon;
-                } while(std::cin.fail());
+                std::cin.clear();
+                std::cout << "latitud> ";
+                std::cin >> lat;
+
+                std::cin.clear();
+                std::cout << "longitud> ";
+                std::cin >> lon;
 
                 if((barrio = getBarrioPorNombre(barrioNombre)) == NULL) {
                     std::cout << "No se encontro el barrio `" << barrioNombre << "`\n";
diff --git a/menu.h b/menu.h
@@ -38,6 +38,8 @@ private:
     double coordX, coordY;
     std::vector<int> *lineas;
 
+    double getDistancia(double x1, double y1, double x2, double y2);
+
 public:
     Menu();
 
@@ -58,69 +60,27 @@ public:
     Parada *paradaMasCercanaPorCoordenada(double coordX,double coordY); //CONSIGNA 2 si imprime
 
     /*
-     * pre: Recibe como parametro el numero de la linea
-     * pos: devuelve una lista de paradas que incluyen la linea
-     */
-    // void paradasPorLinea(int linea); //CONSIGNA 3
-    List<Parada*> *paradasPorLinea(int linea);
-
-    /*
-     * pre: Recibe una lista de tipo parada
-     * pos: Imprime por pantalla la parada con su direcion y sus coordenadas en X e Y
+     * pos: Agrega lineas sin repetir al vector lineas
      */
-    void imprimirParadasPorLinea(List<Parada*>* listaDeParadas);
+    void agregarElementoSinRepetir(std::vector<int>* lineas, std::vector<int>* vectorLineasAux);
 
     /*
-     * pre: Recibe como parametros dos listas
-     * pos: Agrega los elementos de la lista aux a la lista resultado
-     */
-    void agregarElementosDeLista(List<Parada*>* listaAux,List<Parada*>* listaResultado);
-    /*
      * pos: Imprime por pantalla un listado de cantidad de paradas por donde pasan todas las lineas
      */
-    void cantidadDeParadasPorLinea(); //CONSIGNA 4
-
-    /*
-     * pos: Agrega lineas sin repetir al vector lineas
-     */
-    void agregarElementoSinRepetir(std::vector<int>* lineas, std::vector<int>* vectorLineasAux);
+    void cantidadDeParadasPorLinea();
 
     /*
      * pos: Recorre una lista de paradas y accede a todas las lineas de las paradas dadas
      */
     void lineasPorParada(List<Parada*>* paradas);
 
-    /*
-     * pos: Imprime por pantalla la linea y la cantidad de paradas por las que pasa
-     */
-    void imprimirCantidadParadasPorLinea(std::vector<int>* lineas);
-
-    /*
-     * pre: Recibe el nombre del Barrio, la linea, y una coordenada
-     * pos: Agrega las paradas ordenadas por distancia de un barrio con respecto a una coord a la lista de paradas cercanas
-     */
-    void paradasMasCercanasPorBarrio(std::string barrio,int linea,double coordX,double coordY);
-
-    /*
-     *
-     */
-    void listaOrdenadaPorDistancia(List<Parada*>* listaAux,double coordX,double coordY, Barrio * barrioAux);
-
-    /*
-     *
-     */
-    void removerParadaMasCercana(List<Parada*>*listaAux,Parada * paradaCercana);
-
     void cargarDatos();
 
     void mostrarMenu();
 
-
     List<Parada*> *buscarParadas(List<Barrio*> *barrios, int linea);
 
     Barrio *getBarrioPorNombre(std::string nombre);
-
-    // List<Parada*> *buscarParadas(int linea);
 };
 
 #endif