PDA

View Full Version : [java] Aiuto! Esercizio sui libri!


BeagleKoki
06-04-2007, 14:45
Salve a tutti,
avrei bisogno di un aiuto...
Sto facendo una piccola applicazione per richiamare alcune informazioni dei libri da un file txt
Sono arrivato fino ad un punto.
Poi non so piu cosa fare.
Il testo della prima parte dell'esercizio è questo:


Scrivere una classe Java Libro con le variabili d'istanza:
1. numeroPagine
2. Titolo
3. Genere
4. Autore
5. Prezzo

Inoltre la classe deve essere dotata dei seguenti metodi:
1. Costruttore, che inizializza tutte le variabili di istanza. (Questo non so se l'ho svolto esattamente)
2. getPagine, che restituisce il numero di pagine
3. getTitolo, che restituisce il titolo
4. getGenere, che restituisce il genere
5. getAutore, che restituisce l'autore
6. getPrezzo, che restiuisce il prezzo.


Fino qui tutto bene.
Posto ugualmente il codice:

public class Libro {

//Variabili
private int numeroPagine, prezzo;
private String autore, titolo, genere;


public Libro(String parGenere) {
this.genere=parGenere;
}

//Metodi get e set
public String getGenere(){
return this.genere;
}

public void setGenere(String pGenere){
this.genere=pGenere;
}


public int getPagine() {
return numeroPagine;
}

public void setPagine(int pagine) {
this.numeroPagine= pagine;
}

public String getTitolo() {
return titolo;
}

public void setTitolo(String nTitolo) {
this.titolo= nTitolo;
}

public String getAutore() {
return autore;
}

public void setAutore(String pAutore) {
this.autore= pAutore;
}

public int getPrezzo() {
return prezzo;
}

public void setPrezzo(int pPrezzo) {
this.prezzo=pPrezzo;
}
}La seconda parte è:

Scrivere una classe java CatalogoLibri che rappresenti una lista di libri di una libreria.
Le informazioni sui libri della libreria sono presenti in un file con il seguente formato:

riga 1: numero libri nella libreria
riga 2: n di pagine libro 1
riga 3: titolo libro 1
riga 4: genere libro 1
riga 5: autore libro 1
riga 6: prezzo libro 1
riga 7: n di pagine libro 2
riga 8: titolo libro 2
riga 9: genere libro 2
riga 10: autore libro 2
riga 11: prezzo libro 2

Fino qui ho creato un file txt con le informazioni sui libri e la classe CatalogoLibri che posto:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.*;


public class CatalogoLibri {


public CatalogoLibri() {
}

public static void main(String[] args) {

try {
BufferedReader file=new BufferedReader(new FileReader("InfoLibri.txt"));

String line;


while((line=file.readLine())!=null)
{
System.out.println(line);
}
}

catch (IOException readExcp) {
System.out.println("File non trovato");
}


}
}Questo mi va a leggere tutte le informazioni presenti nel file txt.
Ora le cose si complicano (ultima parte dell'esercizio):

variabili di istanza:
1. Vector (o array) di oggetti Libro

Metodi:

1.Costruttore, che prende un nome di file e inizializza il vector di oggetti Libro con i dati letti dal file
2. Metodo stampaPerGenere che prende come parametro il nome di un genere e stampa le informazioni di tutti i libri di quel genere
3. Realizzare un'interfaccia grafica per il metodo stampaPerGenere: una finestra con una casella di testo per l'inserimento del nome
del genere da cercare e un pulsante che avvii la ricerca; la stampa delle informazioni di tutti i libri trovati viene fatta sul
System.out.println se viene trovato più di un libro, altrimenti, se il libro è solo uno, i dati vengono presentati sull'interfaccia grafica.

Domande:
Cosa significano queste righe?
E' giusto il codice che ho creato?
Come faccio per far leggere da file una determinata riga del file txt?
Non capisco come svolgere l'ultima parte dell'esercizio.
C'è qualcuno che mi aiuta a portare a termine l'esercizio?
grazie mille.

franksisca
06-04-2007, 15:02
scusa per la pignoleria, ma potresti gentilemente, mettere il codice tra i tag
['code]codice[/'code]
così viene in questo modo,ciao altrimenti non ci capisco una mazza:D

BeagleKoki
07-04-2007, 14:13
Nessuno??
Non so come fare...

PGI-Bis
07-04-2007, 14:32
Penso che le ultime righe dell'esercizio si riferiscano a CatalogoLibri. Dovresti.

1. dotare CatalogoLibri di un campo ArrayList<Libro> o LinkedList<Libro>
2. dotare CatalogoLibri di un costruttore:

public CatalogoLibri(String fileLibri)...

che tratta la stringa come il nome di un file che contiene i dati sui libri (il file txt di cui hai già parlato), apre quel file e, leggendone il contenuto, crea degli oggetti Libro, aggiungendoli al vettore (ArrayList<Libro> o LinkedList<Libro>) campo di CatalogoLibri.

3. dotare CatalogoLibri del metodo stampaPerGenere:

/* pseudo */
public void stampaPerGenere(String genere) {
...per ogni libro x nel vettore
...se x.getGenere().equals(genere)
...stampa il libro sulla console
}

Per l'interfaccia grafica devi rifarti a quanto avete discusso a lezione in tema di interfacce grafiche utente.