Buenas tengo que entregar este ejercicio en unos días y no se como terminarlo si me pudierais ayudar lo agradecería:
Esto es lo que pide el ejercicio:
Se desea guardar información sobre los libros que tenéis en casa la siguiente información: Titulo,Autor,Editorial,Fecha de compra mas reciente, Precio Crear una clase que permita almacenar la información y realizar un programa que a través de un menú permita:
-Introducir datos de los Libros -Visualizar los datos almacenados -Mostrar los datos del libro comprado mas recientemente. -Mostrar el precio medio de los libros almacenados
y este es mi código actual pero no se donde falla ya que no se muestra al pedir los datos:
public class MiBiblioteca {
/** * @param args the command line arguments */public static void main(String[] args) { float media;
Libro libro1= new Libro(); Libro libro2= new Libro(); Libro libro3= new Libro(); Libro libro4= new Libro(); Libro libro5= new Libro(); Scanner leer= new Scanner (System.in); byte opc;
do { limpiarConsola(); mostrarMenu(); opc=leer.nextByte();
switch (opc)
{ case 1: escogerdatos(libro1,libro2,libro3,libro4,libro5); break;
case 2: mostrardatos(libro1,libro2,libro3,libro4,libro5); break;
case 3: libroreciente(libro1,libro2,libro3,libro4,libro5); break;
case 4:
media=mediaprecio(libro1,libro2,libro3,libro4,libro5); System.out.println("El precio medio de los libros es: "+media); break;
case 0: break;
default: System.out.println("vuelva a introducir otro numero");
}
}while(opc!=0);
} public static void mostrarMenu() { System.out.println("------------- MENU ---------------------------------"); System.out.println("1.Introducir datos de los libros.-------------------"); System.out.println("2.Visualizar los datos almacenados.-----------------"); System.out.println("3.Mostrar los datos del libro comprado mas reciente."); System.out.println("4.Mostrar el precio medio de los libros.------------"); System.out.println("0. Salir--------------------------------------------");
System.out.print("Elija una opcion: ------------------------------------"); }
private static void escogerdatos(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5) { Scanner leer= new Scanner (System.in); byte opc; System.out.println("Introduzca el primer dato o el segundo"); opc=leer.nextByte();
switch (opc) { case 1: introducirdatos(); break; case 2: datosDefecto(libro1, libro2, libro3, libro4, libro5); break; default: break;
}
}
static void datosDefecto(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5)
{
libro1 = new Libro ("El se�or de los anillos","J.R tolkien","Phoenix",25,01,1995,(float)35.5); libro2= new Libro("Harry potter 2","lol","Solemne",17,7,2018,(float)14.7); libro3= new Libro("Cincuenta sombras de grey","Gabriel GarcÃa Márquez","Biblioteca Kett",3,12,2018,(float)16.5); libro4= new Libro("Crepusculo","Friedrich Nietzsche","Cascabel",13,6,2017,(float)15.75); libro5= new Libro("lol","Gustavo Gómez","La Nueva",24,1,2016,(float)20.8); System.out.println("Datos introducidos");
}
public static Libro introducirdatos() { Scanner leer= new Scanner (System.in); String titulo, autor, editorial; int dia, mes, anio; float precio;
static float mediaprecio(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5) { float media=(libro1.precio+ libro2.precio+ libro3.precio+ libro4.precio+ libro5.precio)/5; return media; }
static String libroreciente(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5) {
if ((libro1.fechaCompra).after(libro2.fechaCompra)) { if ((libro1.fechaCompra).after(libro3.fechaCompra)) { if ((libro1.fechaCompra).after(libro4.fechaCompra)) { if ((libro1.fechaCompra).after(libro5.fechaCompra)) { return libro1.visualizardatos(); } } } } else if ((libro2.fechaCompra).after(libro1.fechaCompra)) { if ((libro2.fechaCompra).after(libro3.fechaCompra)) { if ((libro2.fechaCompra).after(libro4.fechaCompra)) { if ((libro2.fechaCompra).after(libro5.fechaCompra)) { return libro2.visualizardatos(); } } } } else if ((libro3.fechaCompra).after(libro1.fechaCompra)) { if ((libro3.fechaCompra).after(libro2.fechaCompra)) { if ((libro3.fechaCompra).after(libro4.fechaCompra)) { if ((libro3.fechaCompra).after(libro5.fechaCompra)) { return libro3.visualizardatos(); } } } } else if ((libro4.fechaCompra).after(libro1.fechaCompra)) { if ((libro4.fechaCompra).after(libro2.fechaCompra)) { if ((libro4.fechaCompra).after(libro3.fechaCompra)) { if ((libro4.fechaCompra).after(libro5.fechaCompra)) { return libro4.visualizardatos(); } } } } else if ((libro5.fechaCompra).after(libro1.fechaCompra)) { if ((libro5.fechaCompra).after(libro2.fechaCompra)) { if ((libro5.fechaCompra).after(libro3.fechaCompra)) { if ((libro5.fechaCompra).after(libro4.fechaCompra)) { return libro5.visualizardatos(); } } } }
return""; }
}
class Libro{
SimpleDateFormat formato= new SimpleDateFormat("dd-MM-yyyy"); Scanner leer=new Scanner (System.in); String titulo,autor,editorial; Date fechaCompra= new Date(); float precio; int dia, mes, anio;
Buenas tengo que entregar este ejercicio en unos días y no se como terminarlo si me pudierais ayudar lo agradecería:
Esto es lo que pide el ejercicio:
Se desea guardar información sobre los libros que tenéis en casa
la siguiente información: Titulo,Autor,Editorial,Fecha de compra mas reciente, Precio
Crear una clase que permita almacenar la información y realizar un programa que a través de un menú permita:
-Introducir datos de los Libros
-Visualizar los datos almacenados
-Mostrar los datos del libro comprado mas recientemente.
-Mostrar el precio medio de los libros almacenados
y este es mi código actual pero no se donde falla ya que no se muestra al pedir los datos:
public class MiBiblioteca {
/**
* @param args the command line arguments
*/public static void main(String[] args) {
float media;
Libro libro1= new Libro();
Libro libro2= new Libro();
Libro libro3= new Libro();
Libro libro4= new Libro();
Libro libro5= new Libro();
Scanner leer= new Scanner (System.in);
byte opc;
do
{ limpiarConsola();
mostrarMenu();
opc=leer.nextByte();
switch (opc)
{
case 1:
escogerdatos(libro1,libro2,libro3,libro4,libro5);
break;
case 2:
mostrardatos(libro1,libro2,libro3,libro4,libro5);
break;
case 3:
libroreciente(libro1,libro2,libro3,libro4,libro5);
break;
case 4:
media=mediaprecio(libro1,libro2,libro3,libro4,libro5);
System.out.println("El precio medio de los libros es: "+media);
break;
case 0:
break;
default:
System.out.println("vuelva a introducir otro numero");
}
}while(opc!=0);
}
public static void mostrarMenu()
{
System.out.println("------------- MENU ---------------------------------");
System.out.println("1.Introducir datos de los libros.-------------------");
System.out.println("2.Visualizar los datos almacenados.-----------------");
System.out.println("3.Mostrar los datos del libro comprado mas reciente.");
System.out.println("4.Mostrar el precio medio de los libros.------------");
System.out.println("0. Salir--------------------------------------------");
System.out.print("Elija una opcion: ------------------------------------");
}
private static void escogerdatos(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5) {
Scanner leer= new Scanner (System.in);
byte opc;
System.out.println("Introduzca el primer dato o el segundo");
opc=leer.nextByte();
switch (opc)
{
case 1:
introducirdatos();
break;
case 2:
datosDefecto(libro1, libro2, libro3, libro4, libro5);
break;
default:
break;
}
}
static void datosDefecto(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5)
{
libro1 = new Libro ("El se�or de los anillos","J.R tolkien","Phoenix",25,01,1995,(float)35.5);
libro2= new Libro("Harry potter 2","lol","Solemne",17,7,2018,(float)14.7);
libro3= new Libro("Cincuenta sombras de grey","Gabriel GarcÃa Márquez","Biblioteca Kett",3,12,2018,(float)16.5);
libro4= new Libro("Crepusculo","Friedrich Nietzsche","Cascabel",13,6,2017,(float)15.75);
libro5= new Libro("lol","Gustavo Gómez","La Nueva",24,1,2016,(float)20.8);
System.out.println("Datos introducidos");
}
public static Libro introducirdatos()
{
Scanner leer= new Scanner (System.in);
String titulo, autor, editorial;
int dia, mes, anio;
float precio;
System.out.print("\nTitulo: ");
titulo=leer.nextLine();
System.out.print("\nAutor: ");
autor=leer.nextLine();
System.out.print("\nEditorial: ");
editorial=leer.nextLine();
System.out.print("\nFecha de compra (día/mes/anio): ");
System.out.print("\nDía: ");
dia=leer.nextInt();
System.out.print("\nMes: ");
mes=leer.nextInt();
System.out.print("\nAnio: ");
anio=leer.nextInt();
System.out.print("\nPrecio: ");
precio=leer.nextFloat();
return new Libro(titulo,autor,editorial,dia,mes,anio,precio);
}
static void mostrardatos(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5)
{
libro1.visualizardatos();
libro2.visualizardatos();
libro3.visualizardatos();
libro4.visualizardatos();
libro5.visualizardatos();
}
static void limpiarConsola()
{
for (byte i=0;i<10;i++)
{
System.out.println(" ");
}
}
static float mediaprecio(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5)
{
float media=(libro1.precio+
libro2.precio+
libro3.precio+
libro4.precio+
libro5.precio)/5;
return media;
}
static String libroreciente(Libro libro1, Libro libro2, Libro libro3, Libro libro4, Libro libro5)
{
if ((libro1.fechaCompra).after(libro2.fechaCompra))
{
if ((libro1.fechaCompra).after(libro3.fechaCompra))
{
if ((libro1.fechaCompra).after(libro4.fechaCompra))
{
if ((libro1.fechaCompra).after(libro5.fechaCompra))
{
return libro1.visualizardatos();
}
}
}
}
else if ((libro2.fechaCompra).after(libro1.fechaCompra))
{
if ((libro2.fechaCompra).after(libro3.fechaCompra))
{
if ((libro2.fechaCompra).after(libro4.fechaCompra))
{
if ((libro2.fechaCompra).after(libro5.fechaCompra))
{
return libro2.visualizardatos();
}
}
}
}
else if ((libro3.fechaCompra).after(libro1.fechaCompra))
{
if ((libro3.fechaCompra).after(libro2.fechaCompra))
{
if ((libro3.fechaCompra).after(libro4.fechaCompra))
{
if ((libro3.fechaCompra).after(libro5.fechaCompra))
{
return libro3.visualizardatos();
}
}
}
}
else if ((libro4.fechaCompra).after(libro1.fechaCompra))
{
if ((libro4.fechaCompra).after(libro2.fechaCompra))
{
if ((libro4.fechaCompra).after(libro3.fechaCompra))
{
if ((libro4.fechaCompra).after(libro5.fechaCompra))
{
return libro4.visualizardatos();
}
}
}
}
else if ((libro5.fechaCompra).after(libro1.fechaCompra))
{
if ((libro5.fechaCompra).after(libro2.fechaCompra))
{
if ((libro5.fechaCompra).after(libro3.fechaCompra))
{
if ((libro5.fechaCompra).after(libro4.fechaCompra))
{
return libro5.visualizardatos();
}
}
}
}
return"";
}
}
class Libro{
SimpleDateFormat formato= new SimpleDateFormat("dd-MM-yyyy");
Scanner leer=new Scanner (System.in);
String titulo,autor,editorial;
Date fechaCompra= new Date();
float precio;
int dia, mes, anio;
void set_titulo(String titulo)
{
this.titulo=titulo;
}
Libro(String titulo, String autor, String editorial, int dia, int mes, int anio, float precio)
{
this.titulo=titulo;
this.autor=autor;
this.editorial=editorial;
fechaCompra=new Date(anio-1900,mes-1,dia);
this.precio=precio;
}
Libro()
{
}
public String visualizardatos()
{
return "Ti�tulo: "+titulo + "Autor: " +autor + "Editorial: " +editorial+ "Fecha de compra: "+formato.format(fechaCompra)+ "Precio: "+(precio);
}
public void leerDatos()
{
System.out.print("Titulo: ");
titulo=leer.nextLine();
System.out.print("Autor: ");
autor=leer.nextLine();
System.out.print("Editorial: ");
editorial=leer.nextLine();
System.out.print("Fecha de compra): ");
System.out.print("Dia: ");
dia=leer.nextInt();
System.out.print("Mes: ");
mes=leer.nextInt();
System.out.print("Anio: ");
anio=leer.nextInt();
System.out.print("Precio: ");
precio=leer.nextFloat();
}
}