Si vuole realizzare un programma per la gestione di una biblioteca. Per ogni libro nella biblioteca e' necessario mantenere le seguenti informazioni: autore, titolo, prezzo, numero di copie disponibili.
Scrivere una classe Libro per rappresentare le informazioni relative
ad un libro con la seguente interfaccia:
- Libro(String autore, String titolo, float prezzo) : costruttore con
tre argomenti: autore, titolo e prezzo; il costruttore inizializza la disponibilità
a 0;
- String getAutore( ) : restituisce l'autore del libro;
- String getTitolo( ) : restituisce il titolo del libro;
- float getPrezzo( ) : restituisce il prezzo del libro;
- int getDisp( ) : restituisce la disponibilità del libro;
- void setDisp(boolean prestito, int n) : se prestito è true decrementa
la disponibilità di n, altrimenti incrementa la disponibilità
di n;
- boolean isDisp(int n): restituisce true se sono disponibili almeno
n copie del libro;
- boolean uguale( Libro x ) : restituisce true se il Libro su cui il
metodo è invocato è uguale a x (indipendentemente dalla disponibilità),
e false altrimenti;
Programma di esempio: ProvaLibro.java
public class ProvaLibro {
public static void main (String[] args) {
Libro a1 = new Libro("Cicerone", "Pro domo sua", 10);
System.out.println("Autore "+a1.getAutore());
System.out.println("Titolo "+a1.getTitolo());
System.out.println("Prezzo "+a1.getPrezzo()+ " Euro");
System.out.println("Disponibilita "+a1.getDisp());
a1.setDisp(false, 6);
System.out.println("Nuova disponibilita "+a1.getDisp());
Libro a2 = new Libro(new String("Cicerone"), new String("Pro domo sua"), 10);
if (a1.uguale(a2)) System.out.println("a1 e a2 sono uguali");
else System.out.println("a1 e a2 sono diversi");
}
}
Viene fornita una classe RaccoltaLibri che
mette a disposizione un metodo Libro[] leggi(String) che legge
da un file avente il nome passato come argomento un insieme di record rappresentanti
oggetti della classe Libro, e ritorna un array di oggetti Libro
opportunamente istanziato.
Programma di prova per RaccoltaLibri1
import java.io.*;
class ProvaRaccoltaLibri1 {
public static void main (String[] args) throws IOException {
Libro[] r = RaccoltaLibri.leggi("libri.dat");
Libro investimento = RaccoltaLibri1.massimoInvestimento(r);
System.out.println("Libro di maggior valore (in " + investimento.getDisp() +
" copie) e' \"" + investimento.getTitolo() + "\" di " + investimento.getAutore() +
" e vale complessivamente " + investimento.getPrezzo()*investimento.getDisp() + " Euro.");
}
}
Programma di prova per RaccoltaLibri2
import java.io.*;
class ProvaRaccoltaLibri2 {
public static void main (String[] args) throws IOException{
Libro[] v = RaccoltaLibri.leggi("libri.dat");
System.out.println("Numero di libri economici: " + RaccoltaLibri2.pezziEconomici(v));
}
}