Newsgroup: it.comp.java
Titolo: eclipse

salve!! sono incasinato con un programma java da far girare per martedì...
chi mi dà una mano a farlo funzionare? voi di sicuro me lo correggete in 
10 minuti :)
è semplice ma mi rompe le balle con qualche test junit, in particolare 
la lettura da file
se mi date una mano vi posto il testo del programma e quello che ho già 
fatto!
ciao e grazie
-- 
Federico Tonin
http://fedecr.altervista.org
* Computers are like air conditioners:
   they stop working properly when you open Windows.



 ...
tu posta il codice, se c'è qualcuno che può darti una mano, che ben venga!
Ciao
Domenico 

 
ho corretto quasi tutto, tranne la lettura da file che poi vi chiederň! 
la prova consiste nel creare un prog per gestire una libreria.
ora ho un problema con le statistiche: č richiesta una getClassifica(int 
settimana) che mi ritorni una collection di oggetti libro, odinata per 
numero di vendite decrescenti.
Ho proceduto cosě:
ogni libro ha un campo vendita[], cosě la posizione del valore mi 
identifica la settimana e il suo valore mi identifica le vendite...
ogni libro presente nella libreria viene inserito in una TreeMap, con 
chiave il numero di vendite rifertito alla settimana richiesta
public Collection getClassificaSettimana(final int settimana){
     	Iterator iter=libri.iterator();
     	Libro book;
     	while(iter.hasNext()){
     		book=(Libro)iter.next();
     		VenditeSettimana.put(book.getSettimana(settimana),book);
     	}
 
     	 Collection ClassificaSettimanaInv = VenditeSettimana.values();	
     	return ClassificaSettimanaInv;
     }
perň mi ritorna la Classifica per Settimana Inversa, visto che la 
TreeMap ordina in modo crescente... ho provato in tutti i modi a creare 
una collection che č il ribaltamento di questa ma non riesco...
ho dei test jUnit: se lascio la classificaSettimanaInv funziona ma 
fallisce nel senso che non trova il libro piů venduto ma il meno 
venduto... ci sono quasi mi basta ribaltare la lista....
AIUUUUUUUUUUTOOOOOOOOOOO
:)
grazie

Domenico Briganti ha scritto:

la parte di lettura da file è questa:
Tramite il metodo leggi() della classe Libreria è possibile leggere le 
informazioni realitive a editori e libri. Il metodo riceve come 
parametro il path del file da leggere. Il file è di testo ed è 
organizzato a linee con campi separati dal carattere ';'.
Ogni linea contiene informazioni relative a in editore o a un libro in 
funzione del primo campo che può contenere la lettera "E" oppure "L" 
rispettivamente.
Le linee di descrizione degli editori contengono, dopo il primo campo, i 
campi nome, tempo di consegna ed email.
Le linee di descrizione dei libri contegono, dopo il primo campo, i 
campi titolo, autore, anno, prezzo, il nome dell'editore e la quantità.
Il metodo deve ignorare le linee non conformi al formato sopra descritto.
qui sotto c'è il codice che ho scritto ma il test fallisce perchè dice 
che non inserisce gli editori e i libri:
public void leggi(String file) throws IOException, EditoreInesistente {
     	BufferedReader br=new BufferedReader(new FileReader(file));
     	String s;
     	while ((s=br.readLine())!=null){
     		StringTokenizer st=new StringTokenizer(s, ";");
     		if (st.nextToken()=="L"){
     			String titolo=st.nextToken();
     			String autore=st.nextToken();
     			int anno=Integer.parseInt(st.nextToken());
     			double prezzo=Double.parseDouble(st.nextToken());
     			String editore=st.nextToken();
     			int quantità=Integer.parseInt(st.nextToken());
     			Libro l= creaLibro(titolo, autore, anno, prezzo, editore);
     		}
     		if (st.nextToken()=="E"){
     			String nome=st.nextToken();
     			int tempoConsegna=Integer.parseInt(st.nextToken());
     			String email=st.nextToken();
     			Editore e=creaEditore(nome, tempoConsegna, email);
     		}
     	}
     }
se volete anche il codice del test ve lo mando



if ("E".equals(st.nextToken()) {
oppure
if (st.nextToken().compareTo("E")) {

 if (st.nextToken().compareTo("E")) {
grazie mille, ora provo!!!


 venduto... ci sono quasi mi basta ribaltare la lista....
ok mi sono fatto un algoritmo astruso per girare la lista ma funziona 
benissimo e passa i test!! volevo continuare sulla strada che avevo 
impostato in classe giusto per coerenza... ho fatto cosě:
while(la map ha elementi){
prendi il valore corrispondente alla chiave piů grossa (lastkey() ) e 
ficcalo in un arrayList;
rimuovi il valore della chiave appena inserita
}
return arrayList e funziona...
ciau


 una collection che č il ribaltamento di questa ma non riesco...
Ci sono diversi modi per farlo.. ma credo che se implementi come ti ho 
detto la TreeMap dovresti essere apposto.
Dai uno sguardo a queste slides sulle Collection.. sono fatte molto bene.
http://edenti.deis.unibo.it/Fond/2004-2005/slide-x2/11-Java%20strutture%20dati.pdf
E se hai ancora qualche dubbio.. ci son sempre le api di java!
-- 
stajune