package practica;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
*
* @author sdpb0
*/
public class Practica {
nombre = "",
nombrePersistencia = "",
// pathFicheros = "C:\\Users\\sdpb0\\Desktop\\Proyecto Fundamentos\\Practica\\src\\archivos",
pathPersistencia = "./src/persistencia/",
// pathPersistencia = "C:\\Users\\sdpb0\\Desktop\\Proyecto Fundamentos\\Practica\\src\\persistencia",
pathFicheros = "./src/ficheros/",
despedida = "\nGracias, hasta luego.";
static int opcion, datoEvaluador;
static Dato dato = new Dato();
static float comparador;
static ArrayList<Dato> lista, listaFiltrada;
static Scanner in;
static DataFrame dataFrame;
run();
}
private static void run() {
try {
dataFrame = new DataFrame();
ciudad();
lista = dataFrame.leerFichero(nombre, pathFicheros);
menu();
System.
out.
println(e.
getMessage());
}
}
private static void ciudad() {
System.
out.
println("\n==================");
System.
out.
println(" Ciudades ");
System.
out.
println("==================");
System.
out.
println("1) Medellín");
System.
out.
println("2) Bogotá");
System.
out.
println("3) Lyon");
System.
out.
println("4) Roma");
System.
out.
println("5) prueba");
System.
out.
println("6) salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 6) || (opcion <= 0));
opcionCiudad(opcion);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 6");
run();
}
}
private static void opcionCiudad(int opcion) {
switch (opcion) {
case 1:
nombre = "medellin.csv";
break;
case 2:
nombre = "bogota.csv";
break;
case 3:
nombre = "lyon.csv";
break;
case 4:
nombre = "roma.csv";
break;
case 5:
nombre = "asd.csv";
break;
case 6:
System.
out.
println(despedida
);
break;
default:
throw new AssertionError();
}
}
System.
out.
println("\n==================");
System.
out.
println(" Menú Principal");
System.
out.
println("==================");
System.
out.
println("1) Estadisticas");
System.
out.
println("2) Filtros");
System.
out.
println("3) Visualización");
System.
out.
println("4) Ver todos los datos en consola");
System.
out.
println("5) Resumen ciudad");
System.
out.
println("6) Escoger otra ciudad");
System.
out.
println("7) Salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 7) || (opcion <= 0));
opcionMenu(opcion);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 7");
}
}
private static void opcionMenu(int opcion) {
try {
switch (opcion) {
case 1:
estadisticas();
break;
case 2:
filtros();
break;
case 3:
visualizacion();
break;
case 4:
dataFrame.escribirFichero();
opciones();
case 5:
System.
out.
println("\n" + nombre.
substring(0, nombre.
length() - 4).
toUpperCase());
System.
out.
println("-------------------------------------");
Estadistica.resumenCuidad(lista);
opciones();
break;
case 6:
run();
break;
case 7:
System.
out.
println("\nGracias, Hasta Luego.");
break;
default:
System.
out.
println("Solo numeros de 1-7");
throw new AssertionError();
}
System.
out.
println(e.
getMessage());
}
}
System.
out.
println("\n==================");
System.
out.
println(" Estadisticas ");
System.
out.
println("==================");
System.
out.
println("1) Promedio");
System.
out.
println("2) Moda");
System.
out.
println("3) Minimo");
System.
out.
println("4) Máximo");
System.
out.
println("5) Desviación Estandard");
System.
out.
println("6) Conteo");
System.
out.
println("7) Menu principal");
System.
out.
println("8) Salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 8) || (opcion <= 0));
datos();
opcionEstadisticas(opcion, datoEvaluador);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 8");
}
}
private static void opcionEstadisticas(int opcion, int datoEvaluador) {
try {
switch (opcion) {
case 1:
System.
out.
println("\nPromedio: " + Estadistica.
promedio(lista, datoEvaluador
));
opciones();
break;
case 2:
String moda
= (Estadistica.
moda(lista, datoEvaluador
) == -1) ? "\nNo hay moda, todos los datos son diferentes." : "\nModa: " + Estadistica.
moda(lista, datoEvaluador
);
opciones();
break;
case 3:
System.
out.
println("\nMinimo: " + Estadistica.
minimo(lista, datoEvaluador
));
opciones();
break;
case 4:
System.
out.
println("\nMáximo" + Estadistica.
maximo(lista, datoEvaluador
));
opciones();
break;
case 5:
System.
out.
println("\nDesviación estandard" + Estadistica.
desvEstandard(lista, datoEvaluador
));
opciones();
break;
case 6:
System.
out.
println("\nConteo" + Estadistica.
conteo(lista, datoEvaluador
));
opciones();
break;
case 7:
menu();
break;
case 8:
System.
out.
println(despedida
);
break;
default:
throw new AssertionError();
}
System.
out.
println(e.
getMessage());
}
}
System.
out.
println("\n==================");
System.
out.
println(" Filtros ");
System.
out.
println("==================");
System.
out.
println("1) Mayor que...");
System.
out.
println("2) Menor que...");
System.
out.
println("3) Diferente De...");
System.
out.
println("4) Igual A...");
System.
out.
println("5) Numero de sensor");
System.
out.
println("6) Menu principal");
System.
out.
println("7) Salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 7) || (opcion <= 0));
datos();
System.
out.
print("\nAhora ingresa la pauta comparadora: ");
comparador = in.nextFloat();
opcionFiltros(opcion, datoEvaluador, comparador);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 7");
}
}
private static void opcionFiltros(int opcion, int datoEvaluador, float comparador) {
try {
switch (opcion) {
case 1:
listaFiltrada = Filtros.mayorQue(lista, datoEvaluador, comparador);
guardarDatos();
break;
case 2:
listaFiltrada = Filtros.menorQue(lista, datoEvaluador, comparador);
guardarDatos();
break;
case 3:
listaFiltrada = Filtros.diferenteDe(lista, datoEvaluador, comparador);
guardarDatos();
break;
case 4:
listaFiltrada = Filtros.igualA(lista, datoEvaluador, comparador);
guardarDatos();
break;
case 5:
listaFiltrada = Filtros.numSensor(lista, datoEvaluador, comparador);
guardarDatos();
break;
case 6:
menu();
break;
case 7:
System.
out.
println(despedida
);
break;
default:
throw new AssertionError();
}
System.
out.
println(e.
getMessage());
}
}
System.
out.
println("\n==================");
System.
out.
println(" Visualización ");
System.
out.
println("==================");
System.
out.
println("1) Diagrama de Lineas");
System.
out.
println("2) Diagrama de Puntos");
System.
out.
println("3) Diagrama de Torta");
System.
out.
println("4) Diagrama de Barras");
System.
out.
println("5) Menu principal");
System.
out.
println("6) salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 6) || (opcion <= 0));
opcionVisualizacion(opcion);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 6");
}
}
private static void opcionVisualizacion(int opcion) {
try {
switch (opcion) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
menu();
break;
case 6:
System.
out.
println(despedida
);
break;
default:
throw new AssertionError();
}
}
}
System.
out.
println("\n==================");
System.
out.
println(" Opciones ");
System.
out.
println("==================");
System.
out.
println("1) Elegir otra ciudad");
System.
out.
println("2) Volver al menu principal");
System.
out.
println("3) Salir");
try {
do {
System.
out.
print("\nIngresa una opción: ");
opcion = in.nextInt();
} while ((opcion > 3) || (opcion <= 0));
opcionOpciones(opcion);
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 3");
}
}
private static void opcionOpciones(int opcion) {
try {
switch (opcion) {
case 1:
run();
break;
case 2:
menu();
break;
case 3:
System.
out.
println("\nGracias, hasta luego.");
break;
default:
throw new AssertionError();
}
System.
out.
println(e.
getMessage());
}
}
System.
out.
println("\n¿Qué dato desear evaluar?");
System.
out.
println("==================");
System.
out.
println(" Datos ");
System.
out.
println("==================");
System.
out.
println("1) Precipitación");
System.
out.
println("2) Temperatura promedio");
System.
out.
println("3) Temperatura máxima");
System.
out.
println("4) Temperatura minima");
try {
do {
System.
out.
print("\nIngresa una opción: ");
datoEvaluador = in.nextInt();
} while ((datoEvaluador > 4) || (datoEvaluador <= 0));
} catch (InputMismatchException e) {
System.
out.
println("\nSolo numeros de 1 a 4");
menu();
}
}
private static void guardarDatos() {
try {
do {
System.
out.
print("\n ¿Deseas guardar estos datos? (y/n) ");
respuesta
= Character.
toString(in.
next().
charAt(0));
} while (!(respuesta.equalsIgnoreCase("y") || !(respuesta.equalsIgnoreCase("n"))));
if (respuesta.equalsIgnoreCase("y")) {
nombrePersistencia = nombre.substring(0, nombre.length() - 4)
.toUpperCase() + " " + dato.toString(datoEvaluador) + " " + comparador
+ ".txt";
dataFrame.escribirFichero(lista, pathPersistencia + nombrePersistencia);
}
opciones();
System.
out.
println(e.
getMessage());
}
}
}//No tocar