Java – Classe Libro/Libreria/Biblioteca

Classe Libro:

public class Libro {
	
	// attributi
	String titolo, genere, autore;
	
	// costruttore
	Libro(String titolo, String genere, String autore) {
		this.titolo = titolo;
		this.autore = autore;
		this.genere = genere;
	} // fine costruttore
	
	// costruttore di copia
	Libro(Libro l)
	{
		this.titolo = l.titolo;
		this.autore = l.autore;
		this.genere = l.genere;
	}
	
	// getters
	public String getTitolo() { return titolo; }
	public String getGenere() { return genere; }
	public String getAutore() { return autore; }
}

Classe Libreria:

public class Libreria
{
	// attributi
	public static final int NUM_MAX_VOLUMI = 20;
	private Libro libri[];
	
	// costruttore
	Libreria() 
	{ 
		libri = new Libro[NUM_MAX_VOLUMI]; 
	}
	
	// costruttore copia Libreria
	Libreria(Libreria lib) {
		this.libri = new Libro[NUM_MAX_VOLUMI];
		for(int i=0; i<NUM_MAX_VOLUMI; i++) {
			this.libri[i] = lib.getIndex(i);
		} // fine for
	} // fine costruttore copia
	
	public boolean aggiungi(Libro L)
	{
		for(int i=0; i<NUM_MAX_VOLUMI; i++) {
			if(libri[i] == null) {
				libri[i] = L;
				return true;
			} // fine if
		} // fine for
		return false;
	} // fine metodo
	
	public void ordina(char campo) {
		switch(campo) {
			case 't': {
				for(int i = 0; i < libri.length; i++) {
					for(int k=i+1; k<libri.length; k++) {
						if(libri[i].titolo.compareTo(libri[k].titolo) > 0) {
							Libro tmp = libri[i];
							libri[i] = libri[k];
							libri[k] = tmp;
						} // fine if
					} // fine for
				} // fine for
				break;
			} // fine case 1
			
			case 'a': {
				for(int i = 0; i < libri.length; i++) {
					for(int k=i+1; k<libri.length; k++) {
						if(libri[i].autore.compareTo(libri[k].autore) > 0) {
							Libro tmp = libri[i];
							libri[i] = libri[k];
							libri[k] = tmp;
						} // fine if
					} // fine for
				} // fine for
				break;
			} // fine case 2
			
			case 'g': {
				for(int i = 0; i < libri.length; i++) {
					for(int k=i+1; k<libri.length; k++) {
						if(libri[i].genere.compareTo(libri[k].genere) > 0) {
							Libro tmp = libri[i];
							libri[i] = libri[k];
							libri[k] = tmp;
						} // fine if
					} // fine for
				} // fine for
				break;
			} // fine case 3
			
			default: {
				System.out.println("Errore!");
				break;
			}
		} // fine switch
		
	} // fine metodo
	
	public boolean cerca(Libro l) {
		for(int i = 0; i < libri.length; i++)
			if(libri[i]==l) return true;
		
		return false;
	} // fine metodo
	
	int contaGenere(String genere) {
		int n = 0;
		for(int i = 0; i < libri.length; i++)
			if(libri[i].genere == genere)
				n++;
		return n;
	} // fine metodo
	
	// metodo che data la posizione dello scaffale restituisce il libro in quella posizione
	public Libro getIndex(int i) {
		if(!(i<20 && i>=0)){
			System.out.println("Errore!");
			return null;
		} // fine if
		
		Libro l = null;		
		l = new Libro(libri[i]);
		
		return l;
	} // fine metodo
	
} // fine classe

Classe Biblioteca:

public class Biblioteca {

	public static void main(String[] args) {
		Libreria l1 = new Libreria();
		String t = "T";
		String g = "G";
		String a = "A";
		
		// riempio vettore di libri
		for(int i=0; i<Libreria.NUM_MAX_VOLUMI; i++) {
			a += i; t += i;
			if(i%5 == 0) g += "5";
			else g += i+1;
			
			Libro l = new Libro(t, g, a);
			l1.aggiungi(l);
		} // fine for
		
		// ordino vettore per un campo...
		l1.ordina('a');
		
		// cerco libro
		Libro l = new Libro("T5", "G5", "A5");
		l1.cerca(l);
		
		// Conto quanti libri sono dello stesso genere
		l1.contaGenere("G5");
		
	} // fine main
	
} // fine classe

You may also like...


x

Leggi anche...

Java - Autoveicoli
Classe Veicolo: [code lang="java"] abstract public class Veicolo { private String marca; private String modello; private Str...
Java - Autonoleggio
Classe Veicolo: [code lang="java"] //import java.io.Serializable; public class Veicolo /*implements Serializable*/{ private String targa...
Java - Classe Potenza
Classe Potenza: [code lang="java"] class potenza{ private int b;//attributo potenza(int base){//costruttore b=base; }//fine costrutto...
powered by RelatedPosts