Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package consola; import java.io.*; import modelo.Fecha; import modelo.Poblacion; import modelo.Raton; import persistencia.Persistencia; import modelo.Utilidades; /** * * @author Catalina */ public class MainPrueba { public static void main(String[] args) throws IOException, FileNotFoundException, ClassNotFoundException { Poblacion miPoblacion = new Poblacion(); while (true) { System.out.println("\nOPCIONES MENU:\n" + "1) Abrir un archivo que contenga una poblacion de ratones.\n" + "2) Crear poblacion de ratones.\n" + "3) Crear poblacion virtual de Ratones" + "4) Anadir Raton a poblacion ya existente.\n" + "5) Listar codigos de referencia de los ratones de una poblacion.\n" + "6) Eliminar un raton.\n" + "7) Modificar los datos de un raton.\n" + "8) Ver informacion de un raton.\n" + "9) Ver la evolucion de una Familia.\n" + "10) Guardar.\n" + "11) Guardar como.\n" + "12) Salir del programa.\n"); int opcionMenu = 0; BufferedReader consola = new BufferedReader(new InputStreamReader(System.in)); File directorioPorDefecto = new File(System.getProperty("user.dir")); try { String nopcionMenu = consola.readLine(); opcionMenu = Integer.parseInt(nopcionMenu); } catch (IOException ex) { System.out.println("\nSe ha producido un error al leer de la consola\n"); } switch (opcionMenu) { case 1: File archivoA; String nombreArch = "miPoblacion"; try { System.out.println("\nIntroduzca el nombre de la poblacion que desea abrir: "); nombreArch = consola.readLine(); } catch (IOException ex) { System.out.println("Error al leer nombre"); } System.out.println("Este es el directorioque tienen los archivos por defecto\n"); System.out.println(directorioPorDefecto); System.out.println("\nIntroduzca el directorio donde se encuentra el archivo\n"); String stringDirectorioIntroducidoAbrirArchivo = "C:\\Users\\Catalina\\Documents\\NetBeansProjects\\PRACTICA RATONES"; try { stringDirectorioIntroducidoAbrirArchivo = consola.readLine(); } catch (IOException ex) { System.out.println("Error al leer el directorio"); } File directorioIntroducidoAbrirArchivo = new File(stringDirectorioIntroducidoAbrirArchivo); archivoA = new File(directorioIntroducidoAbrirArchivo, nombreArch); try { miPoblacion = Persistencia.cargarPoblacion(archivoA); } catch (FileNotFoundException ex) { System.out.println("\n Introduzca un archivo existente\n"); } break; case 2: try { System.out.println("\nCREAR UNA NUEVA POBLACION DE RATONES:\n"); System.out.println("\nIntroduzca el nombre de la poblacion: "); String nnombrePoblacion = consola.readLine(); System.out.println("\nIntroduzca el nombre del responsable: "); String nresponsable = consola.readLine(); String nnnumDias; int nnumDias; boolean vdi = false; do { System.out.println("\nIntroduzca el numero de dias que permanece en las instalaciones (Inferior a 630 y multiplo de 45): "); nnnumDias = consola.readLine(); nnumDias = Integer.parseInt(nnnumDias); vdi = validarDiasEnInstalaciones(nnumDias); //PQ NO LO ENCUENTRA??????????????????????????????????? } while (!vdi); miPoblacion = new Poblacion(nnombrePoblacion, nresponsable, nnumDias); } catch (IOException ex) { System.out.println("\nError al leer poblacion de consola\n"); } break; case 3://FALTA************************************************************************************* System.out.println("\nCREAR POBLACION VIRTUAL DE RATONES:"); break; case 4: try { System.out.println("\nCREAR UN NUEVO RATON Y ANADIRLO:\n"); System.out.println("\nIntroduzca el codigo de referencia: "); String ncodigoDeReferencia = consola.readLine(); System.out.println("\nIntroduzca una descripcion del raton: "); String ndescripcion = consola.readLine(); String nnnsexo, nnsexo; do { System.out.println("\nIntroduzca el sexo del raton: "); nnnsexo = consola.readLine(); nnsexo = nnnsexo.toUpperCase(); } while (!nnsexo.equals("HEMBRA") && !nnsexo.equals("MACHO")); Raton.Sexo nsexo = Raton.Sexo.valueOf(nnsexo); String nndia; int ndia; boolean validNumero = false; boolean validIntervalo = false; do { System.out.println("\nIntroduzca el dia de nacimiento: "); nndia = consola.readLine(); validNumero = isNumeric(nndia); if (validNumero) { validIntervalo = validarDia(); } //@todo y si no es in numero? // ndia = Integer.parseInt(nndia); } while (!validIntervalo); String nnmes; int nmes; boolean valid2 = false; do { System.out.println("\nIntroduzca el mes de nacimiento: "); nnmes = consola.readLine(); //@todo y si no es in numero? nmes = Integer.parseInt(nnmes); } while (nmes < 1 || nmes > 12); String nnano; int nano; do { System.out.println("\nIntroduzca el ano de nacimiento: "); nnano = consola.readLine(); //@todo y si no es in numero? nano = Integer.parseInt(nnano); } while (nano < 1980 || nano > 2017); Fecha nfechaNacimiento = new Fecha(ndia, nmes, nano); //@todo Funcinan bien las fechas? //HECHO System.out.println("\nIntroduzca el peso: "); String nnpeso = consola.readLine(); //@todo y si no es in numero? int npeso = Integer.parseInt(nnpeso); System.out.println("\nIntroduzca la temperatura: "); String nntemperatura = consola.readLine(); //@todo y si no es in numero? float ntemperatura = Float.parseFloat(nntemperatura); Raton.Cromosomas ncromosomas = null; do { System.out.println("Introduzca la combinacion de cromosomas "); String nnncromosomas = consola.readLine(); nnncromosomas = nnncromosomas.toUpperCase(); if (nsexo == Raton.Sexo.HEMBRA) { if (nnncromosomas.equals("XX")) { ncromosomas = Raton.Cromosomas.XX; } if (nnncromosomas.equals("XMX")) { ncromosomas = Raton.Cromosomas.XMX; } if (nnncromosomas.equals("XXM")) { ncromosomas = Raton.Cromosomas.XXM; } if (nnncromosomas.equals("XMXM")) { ncromosomas = Raton.Cromosomas.XMXM; } } else { System.out.println("\nVuelva a introducir una combinacion valida de cromosomas\n"); } if (nsexo == Raton.Sexo.MACHO) { if (nnncromosomas.equals("XY")) { ncromosomas = Raton.Cromosomas.XY; } if (nnncromosomas.equals("XMY")) { ncromosomas = Raton.Cromosomas.XMY; } if (nnncromosomas.equals("XYM")) { ncromosomas = Raton.Cromosomas.XYM; } if (nnncromosomas.equals("XMYM")) { ncromosomas = Raton.Cromosomas.XMYM; } } else { System.out.println("\nVuelva a introducir una combinacion valida de cromosomas\n"); } } while (ncromosomas == null); Raton miRaton = new Raton(ncodigoDeReferencia, ndescripcion, nsexo, nfechaNacimiento, npeso, ntemperatura, ncromosomas); boolean anadir = miPoblacion.anadirRatonAPoblacion(miRaton); if (anadir) { System.out.println("Anadido correctamente"); } else { System.out.println("No se pueden anadir mas ratones"); } } catch (IOException ex) { System.out.println("\nError al leer raton de consola\n"); } break; case 5: System.out.println("\nLISTAR CODIGO DE TODOS LOS RATONES\n"); System.out.println("Introduzca el orden en el que desea ver los codigos:" + "\n 1) Orden alfabetico de los codigos de referencia." + "\n 2) Orden peso de los ratones." + "\n 3) Orden fecha de nacimiento de los ratones." + "\n\nOPCION: "); String nseleccion = ""; int seleccion = 0; try { nseleccion = consola.readLine(); seleccion = Integer.parseInt(nseleccion); } catch (IOException ex) { ex.printStackTrace(); System.out.println("Error al leer de la consola"); } miPoblacion.listarCodigosOrdenadosPor(seleccion); break; case 6: //Arreglarrrrrr*********************************************************************************** System.out.println("\nELIMINAR UN RATON\n"); System.out.println("\nIntroduzca su codigo de referencia: "); String nncodigoDeReferencia = consola.readLine(); miPoblacion.eliminarRaton(nncodigoDeReferencia); //FALTA: Mecanismo de confirmacion para que el usuario sepa que lo ha borrado bien, por ejemplo un return /*int posicion = miPoblacion.buscarRaton(nncodigoDeReferencia); if (posicion != -1) { System.out.println("Raton eliminado"); } else { System.out.println("No existe el raton"); }*/ break; case 7: System.out.println("\nMODIFICAR UN RATON\n"); System.out.println("\nIntroduzca su codigo de referencia: "); String nnncodigoDeReferencia = consola.readLine(); Raton raton = miPoblacion.recuperarRaton(nnncodigoDeReferencia); if (raton != null) { int opcion = 0; Raton.Cromosomas cromosomas = raton.cromosomas; String descripcion = raton.descripcion; int fechaDia = raton.fechaNacimiento.getdia(); int fechaMes = raton.fechaNacimiento.getmes(); int fechaAno = raton.fechaNacimiento.getano(); int peso = raton.peso; Raton.Sexo sexo = raton.sexo; float temperatura = raton.temperatura; System.out.println("\n¿Que campo del raton desea modificar?\n" + "1) Modificar descripcion.\n" + "2) Modificar sexo.\n" + "3) Modificar fecha de nacimiento.\n" + "4) Modificar peso.\n" + "5) Modificar temperatura.\n" + "6) Modificar cromosomas.\n"); try { String nopcion = consola.readLine(); opcion = Integer.parseInt(nopcion); } catch (IOException ex) { System.out.println("\nError al leer la opcion\n"); } switch (opcion) { case 1: System.out.println("\nIntroduzca la nueva descripcion: "); descripcion = consola.readLine(); break; case 2: String nnnsexo, nnsexo; do { System.out.println("\nIntroduzca el nuevo sexo del raton: "); nnnsexo = consola.readLine(); nnsexo = nnnsexo.toUpperCase(); sexo = Raton.Sexo.valueOf(nnsexo); } while (!nnsexo.equals("HEMBRA") || !nnsexo.equals("MACHO")); break; case 3: System.out.println("\nIntroduzca una opcion:\n" + "1) Modificar dia.\n" + "2) Modificar mes.\n" + "3) Modificar ano.\n"); int opcionFecha = 0; String nopcionFecha = consola.readLine(); opcionFecha = Integer.parseInt(nopcionFecha); switch (opcionFecha) { case 1: String nfechaDia; do { System.out.println("\n Introduzca el nuevo dia: "); nfechaDia = consola.readLine(); fechaDia = Integer.parseInt(nfechaDia); //@todo error en la validacion, y codigo repetido } while (fechaDia < 1 && fechaDia > 31); break; case 2: String nfechaMes; do { System.out.println("\n Introduzca el nuevo mes: "); nfechaMes = consola.readLine(); fechaMes = Integer.parseInt(nfechaMes); //@todo error en la validacion, y codigo repetido } while (fechaMes < 1 && fechaMes > 12); break; case 3: String nfechaAno; do { System.out.println("\n Introduzca el nuevo ano: "); nfechaAno = consola.readLine(); fechaAno = Integer.parseInt(nfechaAno); //@todo error en la validacion, y codigo repetido } while (fechaAno < 1980 && fechaAno > 2017); break; } break; case 4: System.out.println("\nIntroduzca el nuevo peso: "); String npeso = consola.readLine(); peso = Integer.parseInt(npeso); break; case 5: System.out.println("\nIntroduzca la nueva temperatura: "); String ntemperatura = consola.readLine(); temperatura = Float.parseFloat(ntemperatura); break; case 6: Raton.Cromosomas xcromosomas = null; do { System.out.println("Introduzca la nueva combinacion de cromosomas: "); String nnncromosomas = consola.readLine(); nnncromosomas = nnncromosomas.toUpperCase(); if (sexo == Raton.Sexo.HEMBRA) { if (nnncromosomas.equals("XX")) { xcromosomas = Raton.Cromosomas.XX; } if (nnncromosomas.equals("XMX")) { xcromosomas = Raton.Cromosomas.XMX; } if (nnncromosomas.equals("XXM")) { xcromosomas = Raton.Cromosomas.XXM; } if (nnncromosomas.equals("XMXM")) { xcromosomas = Raton.Cromosomas.XMXM; } } else { if (sexo == Raton.Sexo.MACHO) { if (nnncromosomas.equals("XY")) { xcromosomas = Raton.Cromosomas.XY; } if (nnncromosomas.equals("XMY")) { xcromosomas = Raton.Cromosomas.XMY; } if (nnncromosomas.equals("XYM")) { xcromosomas = Raton.Cromosomas.XYM; } if (nnncromosomas.equals("XMYM")) { xcromosomas = Raton.Cromosomas.XMYM; } } else { System.out.println("\nVuelva a introducir una combinacion valida de cromosomas\n"); } } } while (cromosomas == null); cromosomas = xcromosomas; break; } Fecha fechaNacimiento = new Fecha(fechaDia, fechaMes, fechaAno); Raton modificado = new Raton(nnncodigoDeReferencia, descripcion, sexo, fechaNacimiento, peso, temperatura, cromosomas); miPoblacion.modificarRaton(nnncodigoDeReferencia, modificado); } else { System.out.println("No existe el raton con codigo " + nnncodigoDeReferencia); } break; case 8: System.out.println("\nVER INFORMACION DETALLADA DE UN RATON\n"); System.out.println("\nIntroduzca el codigo de referencia\n "); try { String ncodigoDeReferencia = consola.readLine(); miPoblacion.mostrarPoblacion(ncodigoDeReferencia); } catch (IOException ex) { System.out.println("\nSe ha producido un error\n"); } break; case 9: System.out.println("\nSIMULAR EVOLUCION A LO LARGO DEL TIEMPO"); break; case 10: File archivoG; System.out.println("\nGUARDAR\n"); System.out.println("Se guardará automaticamente en el directorio por defecto que es : "); System.out.println(directorioPorDefecto); String nombreArchivoGuardar = miPoblacion.getNombrePoblacion(); archivoG = new File(directorioPorDefecto, nombreArchivoGuardar); Persistencia.guardarPoblacion(archivoG, miPoblacion); break; case 11: File archivoGC; System.out.println("\nGUARDAR COMO\n"); String nombreArchivoGC = "miPoblacion"; try { System.out.println("\nIntroduzca el nombre con el que desea guardar la poblacion: "); nombreArchivoGC = consola.readLine(); } catch (IOException ex) { System.out.println("Error al leer nombre"); } System.out.println("Este es el directorio en el que se guardan los archivos por defecto\n"); System.out.println(directorioPorDefecto); System.out.println("\nIntroduzca el directorio donde quiere guardar el archivo\n"); String stringDirectorioIntroducidoGC = "C:\\Users\\Catalina\\Documents\\NetBeansProjects\\PRACTICA RATONES"; try { stringDirectorioIntroducidoGC = consola.readLine(); } catch (IOException ex) { System.out.println("Error al leer el directorio"); } File directorioIntroducidoGC = new File(stringDirectorioIntroducidoGC); archivoGC = new File(directorioIntroducidoGC, nombreArchivoGC); try { Persistencia.guardarPoblacion(archivoGC, miPoblacion); System.out.println(miPoblacion); } catch (FileNotFoundException ex) { System.out.println("\n Introduzca un archivo existente\n"); } break; case 12: //@todo estaria bien liberar recursos System.exit(0); break; } } } }
Compartir