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
