import java.util.Scanner; class Biblio { public static void main(String[] args) { Libreria libreria = new Libreria(); // Engadir libros á libreria creando variables para cada libro // ... pouco eficinte. Libro l1 = new Libro("Gargantúa Pantagruel", "Rabelais", "Copyleft"); Libro l2 = new Libro("Cronicas da Dragonlance", "Weis & Hickman", "Wizards of the Coast"); Libro l3 = new Libro("Gilgamesh", "Descoñecido", "Copyleft"); libreria.engadirLibro(l1); libreria.engadirLibro(l2); libreria.engadirLibro(l3); System.out.println(); System.out.println("Listado libros non prestados: "); System.out.println("-----------------------------"); libreria.listarLibros(false); // Engadir libros á libreria 'dinámicamete' // ... máis eficinte. // (o ideal sería nunha función, mais para exemplificación // mellor aquí.) Scanner teclado = new Scanner(System.in); String titulo; String autor; String editorial; Libro libro; System.out.println(); System.out.println("-------------------------"); System.out.println("Para acabar de introduzir"); System.out.println("entre un título baldeiro."); System.out.println("-------------------------"); System.out.print("Titulo? "); titulo = teclado.nextLine(); while(!titulo.isEmpty()) { System.out.print("Autor? "); autor = teclado.nextLine(); System.out.print("Editorial? "); editorial = teclado.nextLine(); // creamos un novo libro e logo engadimos ese libro // á librería. libro = new Libro(titulo, autor, editorial); libreria.engadirLibro(libro); // ^..NOTA: na vez de usar unha variable de tipo // Libro podería facerse directamente // deste xeito: // libreria.engadirLibro(new Libro(titulo, autor, editorial)); System.out.println(); System.out.print("Titulo? "); titulo = teclado.nextLine(); } System.out.println(); System.out.println("Listado libros non prestados: "); System.out.println("-----------------------------"); libreria.listarLibros(false); } }
class Libro { private String titulo; private String autor; private String editorial; private boolean prestado; Libro(String titulo, String autor, String editorial) { this.titulo = titulo; this.autor = autor; this.editorial = editorial; this.prestado = false; } public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; } public String getAutor() { return autor; } public void setAutor(String autor) { this.autor = autor; } public String getEditorial() { return editorial; } public void setEditorial() { this.editorial = editorial; } public boolean enPrestamo() { return prestado; } public void devolto() { prestado = false; } public void prestado() { prestado = true; } }
import java.util.Iterator; import java.util.ArrayList; class Libreria { ArrayList<Libro> libreria; Libreria() { libreria = new ArrayList<Libro>(); } public void engadirLibro(Libro libro) { libreria.add(libro); } public void prestarLibro(String titulo) { Iterator<Libro> it = libreria.iterator(); Libro libro; while(it.hasNext()) { libro = it.next(); if (libro.getTitulo().equals(titulo)) { if (libro.enPrestamo()) { System.out.println("Libro xa en prestamo."); } else { libro.prestado(); System.out.println("Libro posto en estado de prestamo."); } break; } } } public void recibirLibro(String titulo) { Libro libro; for (int index = 0; index < libreria.size(); index++) { libro = libreria.get(index); if (libro.getTitulo().equals(titulo)) { if (libro.enPrestamo()) { libro.devolto(); System.out.println("O libro foi devolto."); } else { System.out.println("O libro non estaba en prestamo."); } break; } } } public void listarLibros(boolean enPrestamo) { Iterator<Libro> it = libreria.iterator(); Libro libro; while(it.hasNext()) { libro = it.next(); if(libro.enPrestamo() == enPrestamo) { System.out.printf("%-25s - %15s - %10s\n", libro.getTitulo(), libro.getAutor(), libro.getEditorial()); } } } }