|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1192
|
[JAVA]stampare un archivio
Ciao!
Sto provando a fare alcuni esercizi sugli archivi, ma non ne vengo ancora fuori con la stampa ![]() Vi posto uno (dei tanti) esercizi che non mi vengono, la consegna è : Una ditta di pubblicita' raccoglie informazioni sui suoi clienti memorizzando il nome, l'attivita' del cliente e la programmazione della pubblicita': giorno, orario, nome della radio che mandera' in onda il messaggio pubblicitario. Costruire e stampare l'archivio delle programmazioni[..] Io ho fatto questo: 1.classe Cliente Codice:
public class Cliente { private String nome; private String attivita; private int giornopub; private int orapub; private String radiopub; public Cliente (String n, String a, int g, int o, String r) { nome = n; attivita = a; giornopub = g; orapub = o; radiopub = r; } public void setDate(int d) { giornopub = d; } public void setHour(int h) { orapub = h; } public void setRadio(String r) { radiopub = r; } public String getName() { return nome; } public String getAttivita() { return attivita; } public int getDate() { return giornopub; } public int getHour() { return orapub; } public String getRadio() { return radiopub; } public String toString() { String tmp = ""; tmp = "Il cliente "+ nome+ " che ha un "+attivita+ " verra' pubblicizzato il "+giornopub+" alle " +orapub+ " sulla radio " +radiopub; return tmp; } } Codice:
import java.io.*; import java.util.*; public class ArchivioPubblicita { private class Coppia implements Comparable { String chiave; Cliente attributo; public Coppia(String n, Cliente c) { chiave = n; attributo = c; } public int compareTo(Object o) { Coppia other = (Coppia) o; if (this.chiave.compareTo(other.chiave)==0) return 0; else if (this.chiave.compareTo(other.chiave)<0) return -1; else return 1; } } private Coppia[] archivio; private int dim; public ArchivioPubblicita() { archivio = new Coppia[1]; dim = 0; } public boolean isEmpty() { if (dim == 0) return true; else return false; } public void addCliente(String n, String a, int g, int o, String r) { Cliente cliente = new Cliente(n, a, g, o, r); Coppia target = new Coppia (n, cliente); if(!isEmpty()) { int i = 0; boolean trovato = false; while (i<dim && !trovato) { if (archivio[i].compareTo(target)==0) trovato = true; else i++; } if (!trovato) { if (dim == archivio.length) { Coppia[] tmp = new Coppia[archivio.length * 2]; for (int k = 0; k<dim; k++) tmp[k] = archivio[k]; archivio = tmp; } archivio[dim]=target; dim++; } } } public Cliente trovaCliente(String n) throws NoSuchElementException { Coppia target = new Coppia (n, null); int i = 0; boolean trovato = false; while (i<dim && !trovato) { if (archivio[i].compareTo(target)==0) trovato = true; else i++; } if (!trovato) throw new NoSuchElementException(); else return archivio[i].attributo; } public void cancellaCliente(String n) throws NoSuchElementException { if (!isEmpty()) { Coppia target = new Coppia (n, null); int i = 0; boolean trovato = false; while (i<dim && !trovato) { if (archivio[i].compareTo(target)==0) trovato = true; else i++; } if (!trovato) throw new NoSuchElementException(); else archivio[i] = archivio[dim-1]; dim--; } } public String toString() { String tmp = ""; for (int i = 0; i<dim; i++) tmp = "cliente n. "+ (i+1) + archivio[i].attributo + "\n"; return tmp; } } Codice:
import java.util.*; import java.io.*; public class ProvaArchivioPubblicita { public static void main (String[] args) { ArchivioPubblicita archivio = new ArchivioPubblicita(); Scanner in = new Scanner(System.in); String line = null; while (in.hasNextLine()) { line= in.nextLine(); StringTokenizer st = new StringTokenizer(line, ":\n"); while(st.hasMoreTokens()) { String nome = st.nextToken(); String attivita = st.nextToken(); int giornopub = Integer.parseInt(st.nextToken()); int orapub= Integer.parseInt(st.nextToken()); String radiopub= st.nextToken(); archivio.addCliente(nome, attivita, giornopub, orapub, radiopub); } } System.out.println ("nell'archivio ci sono i seguenti clienti"); System.out.println(archivio); } } ![]() ![]() Codice:
carlo:negozio_cani_e_gatti:121007:1830:radio105 mario:pasticceria:151209:1240:rds claudio:discoteca:130608:1530:radiopiterpan giorgio:computerdiscount:180906:1218:radioitalia Codice:
C:\XXX\xxx\Desktop\Java>java ProvaArchivioPubblicita < clienti.dat C:\XXX\xxx\Desktop\Java> ![]() se qualcuno mi aiutasse gentilmente a capire dove sta l'errore, gliene sarei grata ![]()
__________________
blue_blue: nickname proprio di persona, femminile, singolare "Wait, before you close the curtain/There’s still another game to play/And life is beautiful that way"(Beautiful that way, Noa & Nicola Piovani) Fiore, sei un mito ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1192
|
forse è leggermente pallosa sta roba, posso capirvi
![]() ![]() ho solo aggiunto alla classe Cliente il compareTo e ho modificato il compareTo della classe Coppia (ma non credo fosse lì il problema), e poi ho cambiato questo toString da così Codice:
public String toString() { String tmp = ""; for (int i = 0; i<dim; i++) tmp = "cliente n. "+ (i+1) + archivio[i].attributo + "\n"; return tmp; } Codice:
public String toString() { String tmp = ""; for (int i = 0; i<dim; i++) tmp = tmp + "cliente n. "+ (i+1) + archivio[i].attributo + "\n"; return tmp; } comunque neanche questo spiega perchè prima non mi eseguisse giusto, no? qualche idea? ![]() poi volevo chiedervi anche un'altra cosa: è possibile che io compili una volta e il programma non funzioni ma, se sposto tutti i file in un'altra cartella e ricompilo da lì, magicamente compili ed esegua bene?? ![]() ![]()
__________________
blue_blue: nickname proprio di persona, femminile, singolare "Wait, before you close the curtain/There’s still another game to play/And life is beautiful that way"(Beautiful that way, Noa & Nicola Piovani) Fiore, sei un mito ![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: May 2005
Città: Roma
Messaggi: 7938
|
Quote:
così funziona perchè "appendi" (concatenazione di stringhe) a tmp tutti gli oggetti...
__________________
My gaming placement |
|
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Aug 2006
Messaggi: 1192
|
Quote:
![]()
__________________
blue_blue: nickname proprio di persona, femminile, singolare "Wait, before you close the curtain/There’s still another game to play/And life is beautiful that way"(Beautiful that way, Noa & Nicola Piovani) Fiore, sei un mito ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:01.