Ejercicios Capitulo 5 bloque2

This commit is contained in:
2024-12-01 23:57:00 +01:00
parent 381accd2f5
commit 9e12a3d1da
11 changed files with 439 additions and 0 deletions

View File

@@ -25,6 +25,19 @@ public class Utils {
return sc.nextLine(); 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) { public static double generarNumAleatorio(int multiplicador) {
return Math.random() * multiplicador; return Math.random() * multiplicador;
} }

View File

@@ -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 +
'}';
}
}

View File

@@ -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() +
'}';
}
}

View File

@@ -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 + '\'' +
'}';
}
}

View File

@@ -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;
}
}

View File

@@ -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 +
'}';
}
}

View File

@@ -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;
}
}

View File

@@ -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 + '\'' +
'}';
}
}

View File

@@ -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 + '\'' +
'}';
}
}

View File

@@ -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 + '\'' +
'}';
}
}

View File

@@ -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 + '\'' +
'}';
}
}