feat(ch 5): solved all ex

This commit is contained in:
Rafa Muñoz
2024-12-12 15:07:16 +01:00
parent 461b2dcf09
commit ef5b331c81
8 changed files with 307 additions and 2 deletions

View File

@@ -13,4 +13,15 @@ abstract class Animal {
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return "Animal [nombre=" + nombre + "]";
}
}

View File

@@ -2,6 +2,9 @@ package tutorialJava.capitulo5.ejercicios.bloque03_clasesYMetodosAbstractos.soni
public class Principal {
public static void main(String[] args) {
int a[] = new int[] {1, 2, 3};
// Crear un array de tipo Animal
Animal[] animales = new Animal[] {
new Perro("Max"),
@@ -12,7 +15,7 @@ public class Principal {
// Llamar al método emitirSonido() para cada animal
for (Animal animal : animales) {
System.out.println("Animal: " + animal.getClass().getSimpleName());
System.out.println("Animal: ");
animal.emitirSonido();
}
}

View File

@@ -20,4 +20,19 @@ abstract class Vehiculo {
public String getModelo() {
return modelo;
}
public void setVelocidadActual(int velocidadActual) {
this.velocidadActual = velocidadActual;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
@Override
public String toString() {
return "Vehiculo [velocidadActual=" + velocidadActual + ", modelo=" + modelo + "]";
}
}

View File

@@ -8,7 +8,8 @@ public class Principal {
Producto p3 = new Producto("Producto C");
// Verificar el valor del contador
System.out.println("Número total de productos creados: " + Producto.obtenerContador());
System.out.println("Número total de productos creados: " +
Producto.obtenerContador());
// Mostrar nombres de los productos
System.out.println("Productos creados:");

View File

@@ -0,0 +1,143 @@
package tutorialJava.examenes.examen20241211;
import java.util.Iterator;
import tutorialJava.Utils;
public class Libreria {
/**
*
* @param args
*/
public static void main(String[] args) {
Producto productos[] = new Producto[Utils.obtenerNumeroAzar(10, 20)];
String codigo, titulo;
for (int i = 0; i < productos.length; i++) {
int azar = Utils.obtenerNumeroAzar(0, 1);
codigo = "Código";
titulo = "Título";
if (azar == 0) { // Voy a crear un libro
productos[i] = new Libro(codigo, titulo,
"Autor_" + i, Utils.obtenerNumeroAzar(10, 100));
}
else { // Voy a crear una revista
productos[i] = new Revista(codigo, titulo,
Utils.obtenerNumeroAzar(1, 12),
Utils.obtenerNumeroAzar(1, 12));
}
}
// Mostrar los productos creados
// muestraProductos(productos);
// Pido un código a usuario y busco en los productos
// String codBuscado = Utils.obtenerCadenaConDescripcion("Dame un código"
// + " para buscar ");
//
// Producto productoEncontrado = localizaProducto(productos, codBuscado);
// if (productoEncontrado == null) {
// System.out.println("El producto no se encuentra");
// }
// else {
// System.out.print("El producto encontrado es ");
// if (productoEncontrado instanceof Libro) {
// System.out.println(" un libro");
// }
// else {
// System.out.println(" una revista");
// }
// }
// Ordeno por más caro los productos y muestro más caro y más barato
ordenaBurbuja(productos);
muestraProductos(productos);
System.out.println("Caro: " + productos[0]);
System.out.println("Barato: " + productos[productos.length - 1]);
// Precio promedio y contador de tipos de productos
System.out.println("Precio promedio: " + getPrecioPromedioProductos(productos));
int contLibros = 0, contRevistas = 0;
for (int i = 0; i < productos.length; i++) {
if (productos[i] instanceof Libro) contLibros++;
else contRevistas++;
}
System.out.println("Hay " + contLibros + " libros");
System.out.println("Hay " + contRevistas + " revistas");
}
private static void muestraProductos(Producto[] p) {
for (int i = 0; i < p.length; i++) {
System.out.println(p[i].toString());
}
}
/**
*
* @param codigo
* @return
*/
private static Producto localizaProducto(Producto productos[], String codigoBuscado) {
for (int i = 0; i < productos.length; i++) {
if (productos[i].getCodigo().equalsIgnoreCase(codigoBuscado)) {
return productos[i];
}
}
return null;
}
/**
*
* @param a
*/
public static void ordenaBurbuja(Producto a[]) {
boolean hayIntercambios = false;
do {
hayIntercambios = false;
for (int i = 0; i < a.length - 1; i++) {
if (a[i].getPrecio() < a[i + 1].getPrecio()) {
Producto aux = a[i];
a[i] = a[i + 1];
a[i + 1] = aux;
hayIntercambios = true;
}
}
} while (hayIntercambios == true);
}
/**
*
* @param p
* @return
*/
private static float getPrecioPromedioProductos(Producto p[]) {
float pro = 0;
for (int i = 0; i < p.length; i++) {
pro += p[i].getPrecio();
}
return pro / p.length;
}
}

View File

@@ -0,0 +1,41 @@
package tutorialJava.examenes.examen20241211;
public class Libro extends Producto {
private String autor;
private int numPaginas;
public Libro() {
}
public Libro(String codigo, String titulo, String autor,
int numPaginas) {
super(codigo, titulo);
this.autor = autor;
this.numPaginas = numPaginas;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public int getNumPaginas() {
return numPaginas;
}
public void setNumPaginas(int numPaginas) {
this.numPaginas = numPaginas;
}
@Override
public String toString() {
return "Libro [autor=" + autor + ", numPaginas=" + numPaginas + ", getCodigo()=" + getCodigo()
+ ", getTitulo()=" + getTitulo() + ", getPrecio()=" + getPrecio() + "]";
}
}

View File

@@ -0,0 +1,51 @@
package tutorialJava.examenes.examen20241211;
import tutorialJava.Utils;
public class Producto {
protected String codigo, titulo;
protected float precio = Utils.obtenerNumeroAzar(5, 100);
private static int CONTADOR = 1;
public Producto() {
super();
}
public Producto(String codigo, String titulo) {
super();
this.codigo = codigo + "_" + CONTADOR;
this.titulo = titulo + "_" + CONTADOR;
CONTADOR++;
}
public String getCodigo() {
return codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
public float getPrecio() {
return precio;
}
public void setPrecio(float precio) {
this.precio = precio;
}
@Override
public String toString() {
return "Producto [codigo=" + codigo + ", titulo=" + titulo + ", precio=" + precio + "]";
}
}

View File

@@ -0,0 +1,40 @@
package tutorialJava.examenes.examen20241211;
public class Revista extends Producto {
private int numEdicion, mesPublicacion;
public Revista() {
}
public Revista(String codigo, String titulo, int numEdicion,
int mesPublicacion) {
super(codigo, titulo);
this.numEdicion = numEdicion;
this.mesPublicacion = mesPublicacion;
}
public int getNumEdicion() {
return numEdicion;
}
public void setNumEdicion(int numEdicion) {
this.numEdicion = numEdicion;
}
public int getMesPublicacion() {
return mesPublicacion;
}
public void setMesPublicacion(int mesPublicacion) {
this.mesPublicacion = mesPublicacion;
}
@Override
public String toString() {
return "Revista [numEdicion=" + numEdicion + ", mesPublicacion=" + mesPublicacion + ", getCodigo()="
+ getCodigo() + ", getTitulo()=" + getTitulo() + ", getPrecio()=" + getPrecio() + "]";
}
}