- Fabietto771
- Ingegneria Informatica - Triennale
- Lunedì, 08 Marzo 2010
- Subscribe via email
Comment
There are no comments made yet.
Scusate per quanto riguarda le eccezioni ho detto una stupidaggine: l' eccezione con argomento String non stampa niente.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 101
Quindi all'esame per risolvere il punto sulle classi di dialogo devo spostare tutti i comadi tipo JOptionPane.showMessageDialog(...... o simili che trovo in giro per le altre classi nella classe di confine opportuna ( come "ApriAA,ErogaAA,..."e modificare le eccezioni levando l'argomento String e gestendo il messaggio dalla classe di confine?Grazie in anticipo!!!
Si, fai propagare l’eccezione fino alla classe di confine, successivamente gestisci li il JOptionPane.
ps: Se vuoi fare arrivare una String al confine (per personalizzare una finestra di errore, ad esempio), puoi estendere una classe eccezione e stabilire tu le regole!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 102
Invece mi sta venendo un dubbio…
nella 5° domanda, quella dove dobbiamo implementare i Thread, visto anche il modo in cui è scritta, ho sempre dei dubbi.
I famosi Thread devono solo chiamare i vari metodi del controllore?
E che intende quando dice che dobbiamo provare 10 thread di acquisto? si presuppone un caso di test?
Qualcuno l’ha gia fatta funzionare bene?
mi fate dare un’occhiata a come l’avete fatto?
nella 5° domanda, quella dove dobbiamo implementare i Thread, visto anche il modo in cui è scritta, ho sempre dei dubbi.
I famosi Thread devono solo chiamare i vari metodi del controllore?
E che intende quando dice che dobbiamo provare 10 thread di acquisto? si presuppone un caso di test?
Qualcuno l’ha gia fatta funzionare bene?
mi fate dare un’occhiata a come l’avete fatto?
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 103
Salve a tutti,
sono uno studente di vecchia data che da un paio d'anni non frequenta l'università, POO è il mio ultimo esame e avrei una domanda...guardando la guida dello studente di quest'anno noto che POO è sparito dal piano di studi del corso di laurea, ma ho letto che i corsi del 2°anno (vecchio) per quest'anno verranno tenuti lo stesso per l'ultima volta, qualcuno sa qualcosa in più su POO di quest'anno ???
Grazie
sono uno studente di vecchia data che da un paio d'anni non frequenta l'università, POO è il mio ultimo esame e avrei una domanda...guardando la guida dello studente di quest'anno noto che POO è sparito dal piano di studi del corso di laurea, ma ho letto che i corsi del 2°anno (vecchio) per quest'anno verranno tenuti lo stesso per l'ultima volta, qualcuno sa qualcosa in più su POO di quest'anno ???
Grazie
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 104
mi associo alla tua domanda, situazione identica
grazie
grazie
Salve a tutti,
sono uno studente di vecchia data che da un paio d'anni non frequenta l'università, POO è il mio ultimo esame e avrei una domanda...guardando la guida dello studente di quest'anno noto che POO è sparito dal piano di studi del corso di laurea, ma ho letto che i corsi del 2°anno (vecchio) per quest'anno verranno tenuti lo stesso per l'ultima volta, qualcuno sa qualcosa in più su POO di quest'anno ???
Grazie
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 105
Per quelli che oggi hanno sostenuto l'appello di Poo, potete dirci com'era la parte scritta e quella orale? quale è stata la media dei promossi?
grazie a tutti
grazie a tutti
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 106
mi associo alla tua domanda, situazione identica
grazie
Salve a tutti,
sono uno studente di vecchia data che da un paio d'anni non frequenta l'università, POO è il mio ultimo esame e avrei una domanda...guardando la guida dello studente di quest'anno noto che POO è sparito dal piano di studi del corso di laurea, ma ho letto che i corsi del 2°anno (vecchio) per quest'anno verranno tenuti lo stesso per l'ultima volta, qualcuno sa qualcosa in più su POO di quest'anno ???
Grazie
Quest'anno il corso sarà tenuto regolarmente, dal prossimo anno in poi saranno garantiti gli appelli per i vecchi ordinamenti.Ciao
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 107
Per quelli che oggi hanno sostenuto l'appello di Poo, potete dirci com'era la parte scritta e quella orale? quale è stata la media dei promossi?
grazie a tutti
Ho sostenuto ieri l'esame (ero l'unico iscritto). La parte scritta è stata simile alle precedenti (applicazione brick) ma faceva riferimento a un giornalaio. Per l'orale mi sono stati chiesti: reentrant lock, metodo copy, metodo clone,differenze fra operatore == e metodo equals, stati di un thread, metamorfosi (mi hanno chiesto come implementarla), aggregazione, composizione metodo sleep e forse qualcos'altro che nn ricordo. Sono stato promosso con 29 quindi 100% promossi eheh. in bocca al lupo!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 108
Grazie dell'informazione e complimenti............crepi il lupo
Per quelli che oggi hanno sostenuto l'appello di Poo, potete dirci com'era la parte scritta e quella orale? quale è stata la media dei promossi?
grazie a tutti
Ho sostenuto ieri l'esame (ero l'unico iscritto). La parte scritta è stata simile alle precedenti (applicazione brick) ma faceva riferimento a un giornalaio. Per l'orale mi sono stati chiesti: reentrant lock, metodo copy, metodo clone,differenze fra operatore == e metodo equals, stati di un thread, metamorfosi (mi hanno chiesto come implementarla), aggregazione, composizione metodo sleep e forse qualcos'altro che nn ricordo. Sono stato promosso con 29 quindi 100% promossi eheh. in bocca al lupo!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 109
Per quelli che oggi hanno sostenuto l'appello di Poo, potete dirci com'era la parte scritta e quella orale? quale è stata la media dei promossi?
grazie a tutti
Ho sostenuto ieri l'esame (ero l'unico iscritto). La parte scritta è stata simile alle precedenti (applicazione brick) ma faceva riferimento a un giornalaio. Per l'orale mi sono stati chiesti: reentrant lock, metodo copy, metodo clone,differenze fra operatore == e metodo equals, stati di un thread, metamorfosi (mi hanno chiesto come implementarla), aggregazione, composizione metodo sleep e forse qualcos'altro che nn ricordo. Sono stato promosso con 29 quindi 100% promossi eheh. in bocca al lupo!
scusami, come quelli vecchi intendi:
- programma da 0. ti da l'uml e scrivi tutto tu. (come faceva fino a 3-4 volte fa)
- programma già fatto, che andava modificato secondo le richieste.
le domande sui lock te l'ha fatte perchè hai messo i thread nel programma?
grazie mille.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 110
Ragazzi qualcuno gentilmente mi spiega i diversi approcci per implementare la metamorfosi e la differenza fra aggregazione e composizione, perché dalle slide non è chiarissimo.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 111
scusami, come quelli vecchi intendi:
- programma da 0. ti da l'uml e scrivi tutto tu. (come faceva fino a 3-4 volte fa)
- programma già fatto, che andava modificato secondo le richieste.
le domande sui lock te l'ha fatte perchè hai messo i thread nel programma?
grazie mille.
ti dà il codice base dell'applicazione brick + traccia del compito con relativi diagrammi uml. Devi modificare l'applicazione tentando di soddisfare i requisiti. Potete usare anche codice fatto a casa a loro nn importa.I lock me li hanno chiesti perchè li ho utilizzati con i thread nel programma.
Ragazzi qualcuno gentilmente mi spiega i diversi approcci per implementare la metamorfosi e la differenza fra aggregazione e composizione, perché dalle slide non è chiarissimo.
per la metamorfosi qui ci sono due metodi di implementazione http://www.samuelmurdoch.com/appunti/POO/Metamorfosi.html
la differenza fra aggregazione e composizione è che nell'aggregazione l'esistenza della parte è indipendente dall'esistenza dell'intero e che, inoltre, la parte può appartenere contemporaneamente a più interi. ad esempio un programmatore può appartenere a più di team di sviluppo. se un team di sviluppo viene sciolto il programmatore continua ad esistere. Il team di sviluppo è fatto da programmatori quindi aggregazione. Viceversa nella composizione se distruggi l'intero distruggi anche la parte e inoltre la parte può appartenere a un solo intero. Immagina di avere l'oggetto "informazioni personali" con campi "nome cognome dna". ogni persona ne avrà uno. Ogni oggetto del tipo "informazioni personali" apparterrà a una e una sola persona. se distruggi l'oggetto persona distruggerai anche le sue informazioni personali. Essendo le informazioni personali parte di una persona, si tratta di composizione. Spero di esserti stato utile! Ciao Ciao!
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 112
scusami, come quelli vecchi intendi:
- programma da 0. ti da l'uml e scrivi tutto tu. (come faceva fino a 3-4 volte fa)
- programma già fatto, che andava modificato secondo le richieste.
le domande sui lock te l'ha fatte perchè hai messo i thread nel programma?
grazie mille.
ti dà il codice base dell'applicazione brick + traccia del compito con relativi diagrammi uml. Devi modificare l'applicazione tentando di soddisfare i requisiti. Potete usare anche codice fatto a casa a loro nn importa.I lock me li hanno chiesti perchè li ho utilizzati con i thread nel programma.
Ragazzi qualcuno gentilmente mi spiega i diversi approcci per implementare la metamorfosi e la differenza fra aggregazione e composizione, perché dalle slide non è chiarissimo.
per la metamorfosi qui ci sono due metodi di implementazione http://www.samuelmurdoch.com/appunti/POO/Metamorfosi.html
la differenza fra aggregazione e composizione è che nell'aggregazione l'esistenza della parte è indipendente dall'esistenza dell'intero e che, inoltre, la parte può appartenere contemporaneamente a più interi. ad esempio un programmatore può appartenere a più di team di sviluppo. se un team di sviluppo viene sciolto il programmatore continua ad esistere. Il team di sviluppo è fatto da programmatori quindi aggregazione. Viceversa nella composizione se distruggi l'intero distruggi anche la parte e inoltre la parte può appartenere a un solo intero. Immagina di avere l'oggetto "informazioni personali" con campi "nome cognome dna". ogni persona ne avrà uno. Ogni oggetto del tipo "informazioni personali" apparterrà a una e una sola persona. se distruggi l'oggetto persona distruggerai anche le sue informazioni personali. Essendo le informazioni personali parte di una persona, si tratta di composizione. Spero di esserti stato utile! Ciao Ciao!
Grazie milleee!!! Utilissimo e chiarissimo
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 113
ti dà il codice base dell'applicazione brick + traccia del compito con relativi diagrammi uml. Devi modificare l'applicazione tentando di soddisfare i requisiti. Potete usare anche codice fatto a casa a loro nn importa.I lock me li hanno chiesti perchè li ho utilizzati con i thread nel programma.
Ciao, come hai applicato i thread, a un programma basato sull'applicazione brick? Cioè, secondo me, ha senso inserire i thread in un programma simulativo come "Bibitaro", in cui ci sono tanti oggetti Studenti ognuno dei quali dopo aver finito di studiare va al Distributore e prende una lattina di cola o di acqua! Gli oggetti studenti, uno ogni thread, concorrono nell'uso dell'oggetto distributore. Nel programma Brick in cui, vengono inseriti i vari succhi di frutta (prelevati e depositati dall'utente), viene calcolato l'indice di gradimento, viene calcolato l'indice di successo, ecc......come si dovrebbero applicare i thread? Quali sarebbero gli oggetti che concorrerebbero nell'uso dell'oggetto comune (che immagino sia l'oggetto in cui è definito l'hashmap)?
Grazie.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 114
ti dà il codice base dell'applicazione brick + traccia del compito con relativi diagrammi uml. Devi modificare l'applicazione tentando di soddisfare i requisiti. Potete usare anche codice fatto a casa a loro nn importa.I lock me li hanno chiesti perchè li ho utilizzati con i thread nel programma.
Ciao, come hai applicato i thread, a un programma basato sull'applicazione brick? Cioè, secondo me, ha senso inserire i thread in un programma simulativo come "Bibitaro", in cui ci sono tanti oggetti Studenti ognuno dei quali dopo aver finito di studiare va al Distributore e prende una lattina di cola o di acqua! Gli oggetti studenti, uno ogni thread, concorrono nell'uso dell'oggetto distributore. Nel programma Brick in cui, vengono inseriti i vari succhi di frutta (prelevati e depositati dall'utente), viene calcolato l'indice di gradimento, viene calcolato l'indice di successo, ecc......come si dovrebbero applicare i thread? Quali sarebbero gli oggetti che concorrerebbero nell'uso dell'oggetto comune (che immagino sia l'oggetto in cui è definito l'hashmap)?
Grazie.
i thread li devi usare per "testare il tutto" . Ogni thread deve testare un caso d'uso..ad esempio devi fare un thread che registra un prodotto, un altro thread che deposita una quantità di quel prodotto e una decina di thread che acquistano il prodotto. L'oggetto condiviso è il controllore di solito..a meno che non ti chieda di testare classi specifiche. Il prof può chiederti di dover creare un'interfaccia grafica che per ogni tipo di thread acquisisce i dati necessari e che mostra l'eventuale gestione delle eccezioni che si verificano. Io ho creato un main separato di test dove ho creato i thread e avviato il test.
Insomma..quello che devi fare alla fine è mettere nel run dei runnable codice che chiami le funzioni del controllore e ne gestisca eventuali eccezioni preoccupandoti di sincronizzare i vari threads.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 115
i thread li devi usare per "testare il tutto" . Ogni thread deve testare un caso d'uso..ad esempio devi fare un thread che registra un prodotto, un altro thread che deposita una quantità di quel prodotto e una decina di thread che acquistano il prodotto. L'oggetto condiviso è il controllore di solito..a meno che non ti chieda di testare classi specifiche. Il prof può chiederti di dover creare un'interfaccia grafica che per ogni tipo di thread acquisisce i dati necessari e che mostra l'eventuale gestione delle eccezioni che si verificano. Io ho creato un main separato di test dove ho creato i thread e avviato il test.
Insomma..quello che devi fare alla fine è mettere nel run dei runnable codice che chiami le funzioni del controllore e ne gestisca eventuali eccezioni preoccupandoti di sincronizzare i vari threads.
Grazie!! Sei stato più che esauriente! :wink:
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 116
Ragazzi io non ho ancora ben chiaro il punto sullo spostamento delle classi di dialogo.
Se in un metodo ho ad esempio un if:
if
stampa messaggio1
else
stampa messaggio2
devo creare 2 funzioni nella classe di confine che stampano i messaggi e sostituire i messaggi della funzione sopra con le funzioni che ho creato?
se affermativo come faccio a chiamare queste funzioni che stampano il messaggio?
help me perchè questo punto non mi è proprio chiaro.
Se in un metodo ho ad esempio un if:
if
stampa messaggio1
else
stampa messaggio2
devo creare 2 funzioni nella classe di confine che stampano i messaggi e sostituire i messaggi della funzione sopra con le funzioni che ho creato?
se affermativo come faccio a chiamare queste funzioni che stampano il messaggio?
help me perchè questo punto non mi è proprio chiaro.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 117
Ragazzi io non ho ancora ben chiaro il punto sullo spostamento delle classi di dialogo.
Se in un metodo ho ad esempio un if:
if
stampa messaggio1
else
stampa messaggio2
devo creare 2 funzioni nella classe di confine che stampano i messaggi e sostituire i messaggi della funzione sopra con le funzioni che ho creato?
se affermativo come faccio a chiamare queste funzioni che stampano il messaggio?
help me perchè questo punto non mi è proprio chiaro.
Devi usare le eccezioni. Quando trovi un JOptionPane.showMessage..(..) ecc ecc sollevi un'eccezione.
Credo che tu ti riferisca al metodo eroga() della classe prodotto...in quel caso potresti fare così:
[code type="markup"]
public void eroga(int quantita)
{
...
if (giacenza == 0)
{
throw new GiacenzaInsufficienteException("Spiacente giacenza nulla"
}
if (quantita > giacenza)
{
throw new GiacenzaInsufficienteException("Quantità disponibile = " + giacenza + " procedere?", giacenza);
}
if (quantita <= giacenza)
//altro codice
}
[/code]
poi in boundary nel catch dell'eccezione fai apparire i vari JOptionPane.showMessage..(..) utilizzando il metodo getMessage() della classe Exception..
Devi modificare la classe dell'eccezione aggiungendo un parametro per la giacenza..in modo che tu possa farla arrivare nella classe di confine.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 118
[code type="markup"]
public boolean chngPassword(String vecchia, String nuova) throws PswException
{
boolean ritorno = false;
if (aperto = true)
{
if (password.toString().equals(vecchia))
//Dialogo non qui ma in boundary. Idem trattamento eccezioni
{
if (!(nuova.equals(""
))
{
JOptionPane.showMessageDialog(null, "password modificata"
;
password = new Psw(nuova);
ritorno = true;
}
else
throw new PswException("La password deve essere non nulla"
;
}
else throw new PswException("Nuova password errata"
;
}
return ritorno;
}
[/code]
Quindi se per esempio ho questo pezzo di codice, devo creare anche una classe per l'eccezione psw modificata e catturarla nella boundary?
Inoltre se vedi a pagina 5 di questa discussione c'è il compito di maggio in cui chiedeva di spostare tutte le classi di dialogo nella classe confineAmministratore, e non nelle classi di confine. Come faccio con tutti i metodi nelle altre classi di confine?
grazie mille.
public boolean chngPassword(String vecchia, String nuova) throws PswException
{
boolean ritorno = false;
if (aperto = true)
{
if (password.toString().equals(vecchia))
//Dialogo non qui ma in boundary. Idem trattamento eccezioni
{
if (!(nuova.equals(""
{
JOptionPane.showMessageDialog(null, "password modificata"
password = new Psw(nuova);
ritorno = true;
}
else
throw new PswException("La password deve essere non nulla"
}
else throw new PswException("Nuova password errata"
}
return ritorno;
}
[/code]
Quindi se per esempio ho questo pezzo di codice, devo creare anche una classe per l'eccezione psw modificata e catturarla nella boundary?
Inoltre se vedi a pagina 5 di questa discussione c'è il compito di maggio in cui chiedeva di spostare tutte le classi di dialogo nella classe confineAmministratore, e non nelle classi di confine. Come faccio con tutti i metodi nelle altre classi di confine?
grazie mille.
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 119
in quel caso puoi utilizzare il valore boolean di ritorno di chngPassword.
Guarda..credo che per spostamento delle "classi di dialogo" lui intenda che devi togliere tutto quello che riguarda l'interfaccia grafica dalle classi entità e dal controllore e metterle nella classe confineAmministratore (che è comunque una classe di confine..)
Nella classe confineAmministratore hai gli actionListener che in actionPerformed(actionEvent e) chiamano i metodi del controllore e quindi indirettamente i metodi delle classi di dominio. Lì devi mettere il codice necessario a far apparire i box di dialogo.. per esempio nel caso di chngPassword :
[code type="markup"]
public boolean chngPassword(String vecchia, String nuova) throws PswException
{
boolean ritorno = false;
if (aperto = true)
{
if (password.toString().equals(vecchia))
//Dialogo non qui ma in boundary. Idem trattamento eccezioni
{
if (!(nuova.equals(""
))
{
//il dialogo che era qui va creato nella classe confineAmministratore
password = new Psw(nuova);
ritorno = true;
}
else
throw new PswException("La password deve essere non nulla"
;
}
else throw new PswException("Nuova password errata"
;
}
return ritorno;
}
[/code]
poi nella classe confineAmministratore avrai:
[code type="markup"]
private class ChngPasswordAA implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
try
{
if(controllore.chngPassword(new Utente(utenteF.getText(), "Amministratore", passwordF.getText()), nuovaPasswordF.getText())) <---se ritorna true la password è stata modificata
{
JOptionPane.showMessageDialog(null, "password modificata"
; <------ dialogo spostato
passwordF.setText(nuovaPasswordF.getText());
}
}
catch (PswException e)
{
JOptionPane.showMessageDialog(null, " Cambia password " + e.getMessage(), "Errore", JOptionPane.ERROR_MESSAGE); <----dialogo spostato
}
}
}
[/code]
dovrebbe essere così. In questo caso usi il valore di ritorno perchè non viene sollevata un'eccezione se il cambio pass va a buon fine
Guarda..credo che per spostamento delle "classi di dialogo" lui intenda che devi togliere tutto quello che riguarda l'interfaccia grafica dalle classi entità e dal controllore e metterle nella classe confineAmministratore (che è comunque una classe di confine..)
Nella classe confineAmministratore hai gli actionListener che in actionPerformed(actionEvent e) chiamano i metodi del controllore e quindi indirettamente i metodi delle classi di dominio. Lì devi mettere il codice necessario a far apparire i box di dialogo.. per esempio nel caso di chngPassword :
[code type="markup"]
public boolean chngPassword(String vecchia, String nuova) throws PswException
{
boolean ritorno = false;
if (aperto = true)
{
if (password.toString().equals(vecchia))
//Dialogo non qui ma in boundary. Idem trattamento eccezioni
{
if (!(nuova.equals(""
{
//il dialogo che era qui va creato nella classe confineAmministratore
password = new Psw(nuova);
ritorno = true;
}
else
throw new PswException("La password deve essere non nulla"
}
else throw new PswException("Nuova password errata"
}
return ritorno;
}
[/code]
poi nella classe confineAmministratore avrai:
[code type="markup"]
private class ChngPasswordAA implements ActionListener
{
public void actionPerformed(ActionEvent arg0)
{
try
{
if(controllore.chngPassword(new Utente(utenteF.getText(), "Amministratore", passwordF.getText()), nuovaPasswordF.getText())) <---se ritorna true la password è stata modificata
{
JOptionPane.showMessageDialog(null, "password modificata"
passwordF.setText(nuovaPasswordF.getText());
}
}
catch (PswException e)
{
JOptionPane.showMessageDialog(null, " Cambia password " + e.getMessage(), "Errore", JOptionPane.ERROR_MESSAGE); <----dialogo spostato
}
}
}
[/code]
dovrebbe essere così. In questo caso usi il valore di ritorno perchè non viene sollevata un'eccezione se il cambio pass va a buon fine
Comment
There are no comments made yet.
- more than a month ago
- Ingegneria Informatica - Triennale
- # 120
There are no replies made for this post yet.
Be one of the first to reply to this post!
Be one of the first to reply to this post!
Please login to post a reply
You will need to be logged in to be able to post a reply. Login using the form on the right or register an account if you are new here. Register Here »