CB100

Notas, resueltos y tps de la materia Algoritmos y Estructuras de Datos
Index Commits Files Refs README
tps/2/menu.h (2262B)
   1 #ifndef MENU_H_
   2 #define MENU_H_
   3 
   4 #include <vector>
   5 #include "list.h"
   6 #include "barrio.h"
   7 #include "parada.h"
   8 
   9 #define CSV_DELIM ','
  10 
  11 enum {
  12     CALLE = 0,
  13     ALT_PLANO,
  14     DIRECCION,
  15     COORD_X,
  16     COORD_Y,
  17     COMUNA,
  18     BARRIO,
  19     LINEA_1,
  20     LINEA_1_SENTIDO,
  21     LINEA_2,
  22     LINEA_2_SENTIDO,
  23     LINEA_3,
  24     LINEA_3_SENTIDO,
  25     LINEA_4,
  26     LINEA_4_SENTIDO,
  27     LINEA_5,
  28     LINEA_5_SENTIDO,
  29     LINEA_6,
  30     LINEA_6_SENTIDO
  31 };
  32 
  33 
  34 class Menu {
  35 private:
  36     List<Barrio*> *barrios;
  37     std::vector<int> *lineas;
  38 
  39 private: 
  40     double getDistancia(double x1, double y1, double x2, double y2);
  41 
  42 public:
  43     /*
  44      * pos: Crea una lista de Barrios y un vector de Lineas en el heap
  45           Inicializa la linea,coordX, y la coordY en 0
  46      */
  47     Menu();
  48 
  49     /*
  50      * pos: Libera la memoria
  51      */
  52     virtual ~Menu();
  53 
  54     /*
  55      * pos: Recorre la lista de barrios e imprime la cantidad de paradas de cada barrio
  56      */
  57     void imprimirCantidadDeParadasPorBarrio(); // CONSIGA 1
  58 
  59     /*
  60      * pre: Recibe como parametro las coordenadas en X e Y
  61      * pos:    Imprime por pantalla la parada mas cercana a la coordenada dada
  62      */
  63     Parada *paradaMasCercanaPorCoordenada(double coordX,double coordY); //CONSIGNA 2 si imprime
  64 
  65     /*
  66      * pos: Agrega lineas sin repetir al vector lineas
  67      */
  68     void agregarElementoSinRepetir(std::vector<int>* lineas, std::vector<int>* vectorLineasAux);
  69 
  70     /*
  71      * pos: Imprime por pantalla un listado de cantidad de paradas por donde pasan todas las lineas
  72      */
  73     void cantidadDeParadasPorLinea();
  74 
  75     /*
  76      * pos: Recorre una lista de paradas y accede a todas las lineas de las paradas dadas
  77      */
  78     void lineasPorParada(List<Parada*>* paradas);
  79 
  80     /*
  81      * pos: Abre el archivo "paradas-de-colectivo.csv"
  82      */
  83     int cargarDatos();
  84 
  85     /*
  86      * pos: Muestra por pantalla las opciones a elegir del menĂº y recibe un parametro. En base al parametro, ejecuta una funcion
  87      *      Esto ocurre hasta que el usuario ingrese la letra "q" cuando esta en el menu de opciones 
  88       */
  89     void mostrarMenu();
  90 
  91     /*
  92       * pre: Recibe una lista de Barrios y una Linea
  93      * pos: Devuelve una lista de Paradas de todos los Barrios que tengan a la Linea
  94      */
  95     List<Parada*> *buscarParadas(List<Barrio*> *barrios, int linea);
  96 
  97     /*
  98      * pos: Busca el barrio en la lista de barrios, si no lo encuentra devuelve NULL
  99      */
 100     Barrio *getBarrioPorNombre(std::string nombre);
 101 };
 102 
 103 #endif