From 7330361cfdf37b106b7afbe1784050d5ffc4c6ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isidoro=20Nevares=20Mart=C3=ADn?= Date: Thu, 2 Oct 2025 16:52:31 +0200 Subject: [PATCH] segundo commit --- .classpath | 2 +- .project | 2 +- .../palomafp/aadd/inm/AppPrincipalPaises.java | 57 -------- src/es/palomafp/aadd/inm/GestorMapaMundi.java | 123 ++++++++++++++++++ src/es/palomafp/aadd/inm/vo/Continente.java | 35 +++++ src/es/palomafp/aadd/inm/vo/Pais.java | 52 ++++++++ 6 files changed, 212 insertions(+), 59 deletions(-) delete mode 100644 src/es/palomafp/aadd/inm/AppPrincipalPaises.java create mode 100644 src/es/palomafp/aadd/inm/GestorMapaMundi.java create mode 100644 src/es/palomafp/aadd/inm/vo/Continente.java create mode 100644 src/es/palomafp/aadd/inm/vo/Pais.java diff --git a/.classpath b/.classpath index ca2042c..f00af9b 100644 --- a/.classpath +++ b/.classpath @@ -1,6 +1,6 @@ - + diff --git a/.project b/.project index bf13089..3a5e18a 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ - Actividad1_1 + Actividad1_3 diff --git a/src/es/palomafp/aadd/inm/AppPrincipalPaises.java b/src/es/palomafp/aadd/inm/AppPrincipalPaises.java deleted file mode 100644 index 83c56e3..0000000 --- a/src/es/palomafp/aadd/inm/AppPrincipalPaises.java +++ /dev/null @@ -1,57 +0,0 @@ -package es.palomafp.aadd.inm; - -import java.io.BufferedReader; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; - -/** - * - * AppPrincipalPaises: Clase que procesa el fichero con información de países - * - * @author Isidoro Nevares Martín - IES Virgen de la Paloma - * @date 26 sept 2025 - * - * - */ - -public class AppPrincipalPaises { - - public static void main(String[] args) { - AppPrincipalPaises app = new AppPrincipalPaises(); - - String rutaFichero = "C:\\Users\\ineva\\aadd\\inm\\act11\\informacion_paises.txt"; - app.procesarFicheroPaises(rutaFichero); - } - - private void procesarFicheroPaises(String rutaFichero) { - try (BufferedReader bf = new BufferedReader(new FileReader(rutaFichero))) { - String linea; - while ((linea = bf.readLine()) != null) { - - // Procesa las líneas que NO empeiecen por '--' ni por '#' - if (!(linea.startsWith("--") || linea.startsWith("#"))) { - // Procesar información del País - String[] camposPais= linea.split(","); - String codContinente=camposPais[0].trim(); - String identificador=camposPais[1].trim(); - String nombrePais=camposPais[2].trim(); - String capital=camposPais[3].trim(); ; - - // Composición de la sentencia a imprimir - String sentencia = String.format("INSERT INTO T_PAIS(cod_continente, identificador, nombre_pais ,capital) VALUES (%s,%s,%s,%s);", - codContinente, identificador, nombrePais, capital); - - System.out.println(sentencia); - } - } - } catch (FileNotFoundException e) { - System.err.println("Fichero no encontrado: " + rutaFichero); - e.printStackTrace(); - } catch (IOException e) { - System.err.println("Error al leer el fichero: " + rutaFichero); - e.printStackTrace(); - } - } - -} diff --git a/src/es/palomafp/aadd/inm/GestorMapaMundi.java b/src/es/palomafp/aadd/inm/GestorMapaMundi.java new file mode 100644 index 0000000..ff20966 --- /dev/null +++ b/src/es/palomafp/aadd/inm/GestorMapaMundi.java @@ -0,0 +1,123 @@ +package es.palomafp.aadd.inm; + +import java.io.BufferedReader; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import es.palomafp.aadd.inm.vo.Continente; +import es.palomafp.aadd.inm.vo.Pais; + +/** + * + * GestorMapaMundi: Clase que procesa el fichero con información de países y + * continentes + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 26 sept 2025 + */ + +public class GestorMapaMundi { + private final static String RUTA_FICHERO_PAISES = "C:\\Users\\IsidoroNM.A13PROFESOR\\aadd\\inm\\act13\\informacion_paises.txt"; + private final static String RUTA_FICHERO_CONTINENTES = "C:\\Users\\IsidoroNM.A13PROFESOR\\aadd\\inm\\act13\\informacion_continentes.csv"; + + public static void main(String[] args) { + String codigoContinente = args[0]; + + GestorMapaMundi app = new GestorMapaMundi(); + + Continente continente = app.obtenerContinente(codigoContinente); + // System.out.println(continente); + + List listPaises = app.obtenerListaPaises(codigoContinente); + // System.out.println(listPaises); + + for (Pais pais : listPaises) { + if (pais.getNombre().startsWith("S")) { + String informacionPais= "%s, capital de %s – %d, pertenece al continente %s (%s)"; + informacionPais=String.format(informacionPais, pais.getCapital(), pais.getNombre(), pais.getIdentificador(), pais.getContinente().getNombre(), pais.getContinente().getCodigo()); + System.out.println(informacionPais); + } + } + + } + + private Continente obtenerContinente(String codigoContinente) { + Continente continente = null; + try (BufferedReader bf = new BufferedReader(new FileReader(RUTA_FICHERO_CONTINENTES))) { + String linea; + bf.readLine(); // Saltamos la línea de cabecera. + while ((linea = bf.readLine()) != null) { + + // Procesar información del Continente + String[] camposContinente = linea.split("\\|"); + String codContinente = camposContinente[0].trim().replace("\"", ""); + String nombreContinente = camposContinente[1].trim().replace("\"", ""); + + if (codigoContinente != null && codigoContinente.equals(codContinente)) { + // Se crea objeto continente cuando coincide con el código + continente = new Continente(); + continente.setCodigo(codigoContinente); + continente.setNombre(nombreContinente); + } + } + } catch ( + + FileNotFoundException e) { + System.err.println("Fichero no encontrado: " + RUTA_FICHERO_CONTINENTES); + e.printStackTrace(); + } catch (IOException e) { + System.err.println("Error al leer el fichero: " + RUTA_FICHERO_CONTINENTES); + e.printStackTrace(); + } + + return continente; + } + + private List obtenerListaPaises(String codigoContinente) { + List listaPaises = null; + + try (BufferedReader bf = new BufferedReader(new FileReader(RUTA_FICHERO_PAISES))) { + String linea; + listaPaises =new ArrayList(); + Continente continente = null; + + while ((linea = bf.readLine()) != null) { + + // Procesa las líneas que NO empeiecen por '--' ni por '#' + if (!(linea.startsWith("--") || linea.startsWith("#"))) { + // Procesar información del País + String[] camposPais = linea.split(","); + String codContinente = camposPais[0].trim().replace("\"", ""); + String identificador = camposPais[1].trim(); + String nombrePais = camposPais[2].trim().replace("\"", ""); + String capital = camposPais[3].trim().replace("\"", ""); + + if (codigoContinente.equals(codContinente)) { + if (continente==null) { + continente= obtenerContinente(codigoContinente); + } + Pais pais =new Pais(); + pais.setIdentificador(Integer.parseInt(identificador)); + pais.setNombre(nombrePais); + pais.setCapital(capital); + pais.setContinente(continente); + + listaPaises.add(pais); + } + } + } + } catch (FileNotFoundException e) { + System.err.println("Fichero no encontrado: " + RUTA_FICHERO_PAISES); + e.printStackTrace(); + } catch (IOException e) { + System.err.println("Error al leer el fichero: " + RUTA_FICHERO_PAISES); + e.printStackTrace(); + } + + return listaPaises; + } + +} diff --git a/src/es/palomafp/aadd/inm/vo/Continente.java b/src/es/palomafp/aadd/inm/vo/Continente.java new file mode 100644 index 0000000..6c8e548 --- /dev/null +++ b/src/es/palomafp/aadd/inm/vo/Continente.java @@ -0,0 +1,35 @@ +package es.palomafp.aadd.inm.vo; + +/** + * Continente: Clase que se encarga de almacenar información de un Continente. + * + * @author: Isidoro Nevares Martín (IES Virgen de la Paloma) + * @date: 2 oct 2025 + */ +public class Continente { + + private String codigo; + private String nombre; + + @Override + public String toString() { + return "Continente [codigo=" + codigo + ", nombre=" + nombre + "]"; + } + + public String getCodigo() { + return codigo; + } + + public void setCodigo(String codigo) { + this.codigo = codigo; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + +} diff --git a/src/es/palomafp/aadd/inm/vo/Pais.java b/src/es/palomafp/aadd/inm/vo/Pais.java new file mode 100644 index 0000000..ae2e027 --- /dev/null +++ b/src/es/palomafp/aadd/inm/vo/Pais.java @@ -0,0 +1,52 @@ +package es.palomafp.aadd.inm.vo; + +/** + * Pais: Clase que se encarga de almacenar información de un País. + * + * @author: Isidoro Nevares Martín (IES Virgen de la Paloma) + * @date: 2 oct 2025 + */ +public class Pais { + private int identificador; + private String nombre; + private String capital; + private Continente continente; + + public int getIdentificador() { + return identificador; + } + + public void setIdentificador(int identificador) { + this.identificador = identificador; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public String getCapital() { + return capital; + } + + public void setCapital(String capital) { + this.capital = capital; + } + + public Continente getContinente() { + return continente; + } + + public void setContinente(Continente continente) { + this.continente = continente; + } + + @Override + public String toString() { + return "Pais [identificador=" + identificador + ", nombre=" + nombre + ", capital=" + capital + ", continente=" + + continente + "]\n"; + } +}