From 9e12a3d1da2e7d3530386e77a54a04f7427ceecc Mon Sep 17 00:00:00 2001 From: h4ckx0r Date: Sun, 1 Dec 2024 23:57:00 +0100 Subject: [PATCH] Ejercicios Capitulo 5 bloque2 --- src/capitulo04/utils/Utils.java | 13 ++++ .../articulosComestibles/Articulo.java | 49 ++++++++++++++ .../ArticuloNoPerecedero.java | 20 ++++++ .../ArticuloPerecedero.java | 35 ++++++++++ .../bloque02/articulosComestibles/Tienda.java | 39 +++++++++++ .../coleccionAntiguedades/Antiguedad.java | 49 ++++++++++++++ .../ColeccionAntiguedades.java | 67 +++++++++++++++++++ .../coleccionAntiguedades/Cuadro.java | 35 ++++++++++ .../coleccionAntiguedades/Escultura.java | 55 +++++++++++++++ .../bloque02/coleccionAntiguedades/Joya.java | 33 +++++++++ .../bloque02/coleccionAntiguedades/Libro.java | 44 ++++++++++++ 11 files changed, 439 insertions(+) create mode 100644 src/capitulo05/bloque02/articulosComestibles/Articulo.java create mode 100644 src/capitulo05/bloque02/articulosComestibles/ArticuloNoPerecedero.java create mode 100644 src/capitulo05/bloque02/articulosComestibles/ArticuloPerecedero.java create mode 100644 src/capitulo05/bloque02/articulosComestibles/Tienda.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/Antiguedad.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/ColeccionAntiguedades.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/Cuadro.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/Escultura.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/Joya.java create mode 100644 src/capitulo05/bloque02/coleccionAntiguedades/Libro.java diff --git a/src/capitulo04/utils/Utils.java b/src/capitulo04/utils/Utils.java index 17ba592..413de8d 100644 --- a/src/capitulo04/utils/Utils.java +++ b/src/capitulo04/utils/Utils.java @@ -25,6 +25,19 @@ public class Utils { return sc.nextLine(); } + + + public static float solicitarFloatScanner(String pregunta) { + System.out.println(pregunta); + Scanner sc = new Scanner(System.in); + return sc.nextFloat(); + } + public static float solicitarFloatScannerInline(String pregunta) { + System.out.print(pregunta); + Scanner sc = new Scanner(System.in); + return sc.nextFloat(); + } + public static double generarNumAleatorio(int multiplicador) { return Math.random() * multiplicador; } diff --git a/src/capitulo05/bloque02/articulosComestibles/Articulo.java b/src/capitulo05/bloque02/articulosComestibles/Articulo.java new file mode 100644 index 0000000..d991e66 --- /dev/null +++ b/src/capitulo05/bloque02/articulosComestibles/Articulo.java @@ -0,0 +1,49 @@ +package capitulo05.bloque02.articulosComestibles; + +public class Articulo { + private int codigo; + private String nombre; + private float precio; + + public Articulo() { + } + + public Articulo(int codigo, String nombre, float precio) { + this.codigo = codigo; + this.nombre = nombre; + this.precio = precio; + } + + public int getCodigo() { + return codigo; + } + + public void setCodigo(int codigo) { + this.codigo = codigo; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + public float getPrecio() { + return precio; + } + + public void setPrecio(float precio) { + this.precio = precio; + } + + @Override + public String toString() { + return "Articulos{" + + "codigo=" + codigo + + ", nombre='" + nombre + '\'' + + ", precio=" + precio + + '}'; + } +} diff --git a/src/capitulo05/bloque02/articulosComestibles/ArticuloNoPerecedero.java b/src/capitulo05/bloque02/articulosComestibles/ArticuloNoPerecedero.java new file mode 100644 index 0000000..1571e6c --- /dev/null +++ b/src/capitulo05/bloque02/articulosComestibles/ArticuloNoPerecedero.java @@ -0,0 +1,20 @@ +package capitulo05.bloque02.articulosComestibles; + +public class ArticuloNoPerecedero extends Articulo { + + public ArticuloNoPerecedero() { + } + + public ArticuloNoPerecedero(int codigo, String nombre, float precio) { + super(codigo, nombre, precio); + } + + @Override + public String toString() { + return "ArticuloNoPerecedero{" + + "codigo=" + super.getCodigo() + + ", nombre='" + super.getNombre() + '\'' + + ", precio=" + super.getPrecio() + + '}'; + } +} diff --git a/src/capitulo05/bloque02/articulosComestibles/ArticuloPerecedero.java b/src/capitulo05/bloque02/articulosComestibles/ArticuloPerecedero.java new file mode 100644 index 0000000..7be60a5 --- /dev/null +++ b/src/capitulo05/bloque02/articulosComestibles/ArticuloPerecedero.java @@ -0,0 +1,35 @@ +package capitulo05.bloque02.articulosComestibles; + +public class ArticuloPerecedero extends Articulo{ + private String fecha; + + public ArticuloPerecedero() { + } + + public ArticuloPerecedero(String fecha) { + this.fecha = fecha; + } + + public ArticuloPerecedero(int codigo, String nombre, float precio, String fecha) { + super(codigo, nombre, precio); + this.fecha = fecha; + } + + public String getFecha() { + return fecha; + } + + public void setFecha(String fecha) { + this.fecha = fecha; + } + + @Override + public String toString() { + return "ArticuloPerecedero{" + + "codigo=" + super.getCodigo() + + ", nombre='" + super.getNombre() + '\'' + + ", precio=" + super.getPrecio() + + ", fecha='" + fecha + '\'' + + '}'; + } +} diff --git a/src/capitulo05/bloque02/articulosComestibles/Tienda.java b/src/capitulo05/bloque02/articulosComestibles/Tienda.java new file mode 100644 index 0000000..67033cd --- /dev/null +++ b/src/capitulo05/bloque02/articulosComestibles/Tienda.java @@ -0,0 +1,39 @@ +package capitulo05.bloque02.articulosComestibles; + +import capitulo04.utils.Utils; +import capitulo05.bloque02.coleccionAntiguedades.Joya; +import capitulo05.bloque02.coleccionAntiguedades.Libro; + +public class Tienda{ + public static void main(String[] args) { + Articulo[] articulos = new Articulo[4]; + + for (int i = 0; i < articulos.length; i++) { + if (Math.round(Math.random()) == 1) { + System.out.println("Introduzca los datos de un artículo perecedero"); + articulos[i] = registrarDatos(new ArticuloPerecedero()); + ArticuloPerecedero art = (ArticuloPerecedero) articulos[i]; + art.setFecha(Utils.solicitarStringScannerInline("Introduzca la fecha en la que caduca este artículo: ")); + } else { + System.out.println("Introduzca los datos de un artículo no perecedero"); + articulos[i] = registrarDatos(new ArticuloNoPerecedero()); + } + } + + for (int i = 0; i < articulos.length; i++) { + if (articulos[i] instanceof ArticuloPerecedero artP) { + System.out.println(artP.toString()); + } else if (articulos[i] instanceof ArticuloNoPerecedero artNP) { + System.out.println(artNP.toString()); + } + } + } + + public static Articulo registrarDatos(Articulo articulo) { + articulo.setCodigo(Utils.solicitarIntScannerInline("Introduzca código del artículo: ")); + articulo.setNombre(Utils.solicitarStringScannerInline("Introduzca el nombre del artículo: ")); + articulo.setPrecio(Utils.solicitarFloatScannerInline("Introduzca el precio del artículo: ")); + + return articulo; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/Antiguedad.java b/src/capitulo05/bloque02/coleccionAntiguedades/Antiguedad.java new file mode 100644 index 0000000..d1fe76d --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/Antiguedad.java @@ -0,0 +1,49 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +public class Antiguedad { + private int anoFabricacion; + private String origen; + private float precioVenta; + + public Antiguedad() { + } + + public Antiguedad(int anoFabricacion, String origen, float precioVenta) { + this.anoFabricacion = anoFabricacion; + this.origen = origen; + this.precioVenta = precioVenta; + } + + public int getAnoFabricacion() { + return anoFabricacion; + } + + public void setAnoFabricacion(int anoFabricacion) { + this.anoFabricacion = anoFabricacion; + } + + public String getOrigen() { + return origen; + } + + public void setOrigen(String origen) { + this.origen = origen; + } + + public float getPrecioVenta() { + return precioVenta; + } + + public void setPrecioVenta(float precioVenta) { + this.precioVenta = precioVenta; + } + + @Override + public String toString() { + return "Antiguedad{" + + "anoFabricacion=" + anoFabricacion + + ", origen='" + origen + '\'' + + ", precioVenta=" + precioVenta + + '}'; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/ColeccionAntiguedades.java b/src/capitulo05/bloque02/coleccionAntiguedades/ColeccionAntiguedades.java new file mode 100644 index 0000000..87a76d6 --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/ColeccionAntiguedades.java @@ -0,0 +1,67 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +import capitulo04.utils.Utils; + +public class ColeccionAntiguedades { + public static void main(String[] args) { + Antiguedad antiguedad = null; + int eleccion = Utils.solicitarIntScannerInline("Sistema de registro de antigüedades\n" + + "Seleccione el tipo de antigüedad:\n" + + " 1 - Joya\n" + + " 2 - Libro\n" + + " 3 - Cuadro\n" + + " 4 - Escultura\n" + + "> "); + + switch (eleccion) { + case 1: + Joya joyita = (Joya) registrarDatos(new Joya()); + + joyita.setMaterialFabricacion(Utils.solicitarStringScannerInline("Introduzca el material de fabricación de la joya: ")); + antiguedad = joyita; + break; + case 2: + Libro librito = (Libro) registrarDatos(new Libro()); + + librito.setTitulo(Utils.solicitarStringScannerInline("Introduzca el título del libro: ")); + librito.setAutor(Utils.solicitarStringScannerInline("Introduzca el nombre del autor del libro: ")); + antiguedad = librito; + break; + case 3: + Cuadro cuadrito = (Cuadro) registrarDatos(new Cuadro()); + + cuadrito.setPintor(Utils.solicitarStringScannerInline("Introduzca el nombre del pintor del cuadro: ")); + antiguedad = cuadrito; + break; + case 4: + Escultura esculturita = (Escultura) registrarDatos(new Escultura()); + + esculturita.setAltura(Utils.solicitarFloatScannerInline("Introduzca la altura de la escultura: ")); + esculturita.setEscultor(Utils.solicitarStringScannerInline("Introduzca el nombre del escultor: ")); + esculturita.setMaterial(Utils.solicitarStringScannerInline("Introduzca el material del que está hecha la escultura: ")); + antiguedad = esculturita; + break; + default: + System.out.println("No ha introducido una opción válida"); + + } + + if (antiguedad instanceof Joya joyita) { + System.out.println(joyita.toString()); + } else if (antiguedad instanceof Libro librito) { + System.out.println(librito.toString()); + } else if (antiguedad instanceof Cuadro cuadrito) { + System.out.println(cuadrito.toString()); + } else if (antiguedad instanceof Escultura esculturita) { + System.out.println(esculturita.toString()); + } + + } + public static Antiguedad registrarDatos(Antiguedad antiguedad) { + antiguedad.setOrigen(Utils.solicitarStringScannerInline("Introduzca el origen del artículo: ")); + antiguedad.setAnoFabricacion(Utils.solicitarIntScannerInline("Introduzca el año de fabricación del artículo: ")); + antiguedad.setPrecioVenta(Utils.solicitarFloatScannerInline("Introduzca el precio del artículo: ")); + + return antiguedad; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/Cuadro.java b/src/capitulo05/bloque02/coleccionAntiguedades/Cuadro.java new file mode 100644 index 0000000..a5cdd2e --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/Cuadro.java @@ -0,0 +1,35 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +public class Cuadro extends Antiguedad{ + private String pintor; + + + + public Cuadro() { + } + + public Cuadro(int anoFabricacion, String origen, float precioVenta, String pintor) { + super(anoFabricacion, origen, precioVenta); + this.pintor = pintor; + } + + public String getPintor() { + return pintor; + } + + public void setPintor(String pintor) { + this.pintor = pintor; + } + + @Override + public String toString() { + return "Cuadro{" + + + "anoFabricacion=" + super.getAnoFabricacion() + + ", origen='" + super.getOrigen() + '\'' + + ", precioVenta=" + super.getPrecioVenta() + + + ", pintor='" + pintor + '\'' + + '}'; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/Escultura.java b/src/capitulo05/bloque02/coleccionAntiguedades/Escultura.java new file mode 100644 index 0000000..04d1936 --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/Escultura.java @@ -0,0 +1,55 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +public class Escultura extends Antiguedad { + private String escultor; + private float altura; + private String material; + + public Escultura() { + } + + public Escultura(int anoFabricacion, String origen, float precioVenta, String escultor, float altura, String material) { + super(anoFabricacion, origen, precioVenta); + this.escultor = escultor; + this.altura = altura; + this.material = material; + } + + public String getEscultor() { + return escultor; + } + + public void setEscultor(String escultor) { + this.escultor = escultor; + } + + public float getAltura() { + return altura; + } + + public void setAltura(float altura) { + this.altura = altura; + } + + public String getMaterial() { + return material; + } + + public void setMaterial(String material) { + this.material = material; + } + + @Override + public String toString() { + return "Escultura{" + + + "anoFabricacion=" + super.getAnoFabricacion() + + ", origen='" + super.getOrigen() + '\'' + + ", precioVenta=" + super.getPrecioVenta() + + + ", escultor='" + escultor + '\'' + + ", altura=" + altura + + ", material='" + material + '\'' + + '}'; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/Joya.java b/src/capitulo05/bloque02/coleccionAntiguedades/Joya.java new file mode 100644 index 0000000..09ac037 --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/Joya.java @@ -0,0 +1,33 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +public class Joya extends Antiguedad{ + private String materialFabricacion; + + public Joya() { + } + + public Joya(int anoFabricacion, String origen, float precioVenta, String materialFabricacion) { + super(anoFabricacion, origen, precioVenta); + this.materialFabricacion = materialFabricacion; + } + + public String getMaterialFabricacion() { + return materialFabricacion; + } + + public void setMaterialFabricacion(String materialFabricacion) { + this.materialFabricacion = materialFabricacion; + } + + @Override + public String toString() { + return "Joya{" + + + "anoFabricacion=" + super.getAnoFabricacion() + + ", origen='" + super.getOrigen() + '\'' + + ", precioVenta=" + super.getPrecioVenta() + + + ", materialFabricacion='" + materialFabricacion + '\'' + + '}'; + } +} diff --git a/src/capitulo05/bloque02/coleccionAntiguedades/Libro.java b/src/capitulo05/bloque02/coleccionAntiguedades/Libro.java new file mode 100644 index 0000000..f180401 --- /dev/null +++ b/src/capitulo05/bloque02/coleccionAntiguedades/Libro.java @@ -0,0 +1,44 @@ +package capitulo05.bloque02.coleccionAntiguedades; + +public class Libro extends Antiguedad{ + private String autor; + private String titulo; + + public Libro() { + } + + public Libro(int anoFabricacion, String origen, float precioVenta, String autor, String titulo) { + super(anoFabricacion, origen, precioVenta); + this.autor = autor; + this.titulo = titulo; + } + + public String getAutor() { + return autor; + } + + public void setAutor(String autor) { + this.autor = autor; + } + + public String getTitulo() { + return titulo; + } + + public void setTitulo(String titulo) { + this.titulo = titulo; + } + + @Override + public String toString() { + return "Libro{" + + + "anoFabricacion=" + super.getAnoFabricacion() + + ", origen='" + super.getOrigen() + '\'' + + ", precioVenta=" + super.getPrecioVenta() + + + ", autor='" + autor + '\'' + + ", titulo='" + titulo + '\'' + + '}'; + } +}