Pages: [1]   Go Down
Print
Author Topic: Prova in itinere Aprile 2006  (Read 1586 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Mito
Matricola
*
Offline Offline

Posts: 56


« on: 18-04-2009, 19:39:30 »

Qualcuno ha svolto questa Prova?
Quote
L’implementazione deve contenere le classi con tutti gli attributi e metodi necessari al corretto funzionamento con l’opportuna gestione delle eccezioni. I metodi devono essere opportunamente commentati. E’ necessario implementare una classe di test contenente il metodo main.
Sia dato un file di oggetti transazioni.dat contenente oggetti transazione. Un oggetto transazione contiene i campi Data, Nome, Cognome, Importo, Zona, ed un campo ListaProdotti contenente una lista di prodotti.

1. Leggere gli oggetti dal file transazioni.dat. Inserire gli oggetti in una lista semplicemente linkata ordinati in modo crescente secondo il Cognome. Invertire gli elementi all’interno della lista in modo che essi compaiano inseriti in modo decrescente rispetto al cognome.

2. Inserire gli stessi oggetti all’interno di una coda circolare in base all’ordine di lettura. Estrarre dalla coda i dati e caricare all’interno di una lista relativa alle zone i totali incassati.

3. Per ogni cliente inserito nella lista calcolare l’importo totale delle transazioni. Inserire la coppia (cliente, totImporto) all’interno di uno stack.

4. Inserire all’interno lista semplicemente linkata gli incassi totali per data (ordinati in modo crescente). Digitare da tastiera due date, estrarre dalla coda tutte le date nell’intervallo tra le due. Inserire all’interno di una nuova lista la differenza di incassi tra due date consecutive. Attraversare la lista e stampare a video i risultati.
Logged
TheSpecialOne
Apprendista Forumista
**
Offline Offline

Posts: 232



« Reply #1 on: 19-04-2009, 10:16:26 »

ecco, io qui ho problemi a definire l'ordinamento in base ad un campo specifico!
che devo aprire il file, inserire i record in una lista, ci sono, ma poi non sò come posso inserirli ordinatamente in base al cognome come nell' esempio..
se qualcuno può darmi una mano, ne sarei grato!
Logged
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #2 on: 19-04-2009, 10:58:23 »

ecco, io qui ho problemi a definire l'ordinamento in base ad un campo specifico!
che devo aprire il file, inserire i record in una lista, ci sono, ma poi non sò come posso inserirli ordinatamente in base al cognome come nell' esempio..
se qualcuno può darmi una mano, ne sarei grato!

Implementando il compareTo nella classe Transazione dovrebbe funzionare.

Code:
public int compareTo(Transazione t)
  {
    if(this.getCognome().compareTo(t.getCognome())>0)
      return 1;
    else if(this.getCognome().compareTo(t.getCognome())<0)
      return -1;
    else
      return 0;
  }

Parte del MAIN

Code:
boolean continua = true;
    LinkedList ListaT = new LinkedList();
    try
    {
      ObjectInputStream inFile = new ObjectInputStream(new FileInputStream("transazioni.dat"));
       
      while(continua) //Ciclo infinito per leggere i file
      {
        try
        {
          ListaT.InsertOrd((Transazione)inFile.readObject());
        }
        catch(EOFException e){...}
//[...altro...]
« Last Edit: 19-04-2009, 11:03:26 by Mito » Logged
TheSpecialOne
Apprendista Forumista
**
Offline Offline

Posts: 232



« Reply #3 on: 19-04-2009, 11:14:13 »

dato che il file è dato, si presuppone abbia comparable,no?
a quel punto dovrei solo usare compareTo e il campo da confrontare,no?
grazie cmq 
Logged
feboss
Guest
« Reply #4 on: 19-04-2009, 19:53:47 »

e se gli oggetti transazioni sono ordinati per nome?

cioè questo esercizio presuppone che la classe abbia già un compareTo che ordina per cognome
Logged
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #5 on: 19-04-2009, 20:13:18 »

e se gli oggetti transazioni sono ordinati per nome?

cioè questo esercizio presuppone che la classe abbia già un compareTo che ordina per cognome

Basta cambiare...
Code:
public int compareTo(Transazione t)
  {
    if(this.getNome().compareTo(t.getNome())>0)
      return 1;
    else if(this.getNome().compareTo(t.getNome())<0)
      return -1;
    else
      return 0;
  }
Logged
feboss
Guest
« Reply #6 on: 19-04-2009, 20:26:20 »

Ma noi non abbiamo una classe transazioni.Andiamo semplicemente a leggere dal file e la inseriamo in una lista grazie ad un compareTo che ha già(quindi dobbiamo rimetterci alla buona fede di chi ha scritto la classe)

oppure dobbiamo assumere di avere la classe transazioni e quindi di poterla modificare.Quindi in questo caso dobbiamo anche supporre di aver scritto noi il file di oggetti

qualcosa mi sfugge
Logged
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #7 on: 19-04-2009, 20:38:14 »

Ma noi non abbiamo una classe transazioni.Andiamo semplicemente a leggere dal file e la inseriamo in una lista grazie ad un compareTo che ha già(quindi dobbiamo rimetterci alla buona fede di chi ha scritto la classe)

oppure dobbiamo assumere di avere la classe transazioni e quindi di poterla modificare.Quindi in questo caso dobbiamo anche supporre di aver scritto noi il file di oggetti

qualcosa mi sfugge

A quanto ho capito dobbiamo fare tutto. Poi non so...
Code:
import java.io.*;
public class Transazione implements Comparable <Transazione>, Serializable

private Date Data;
private String Nome;
private String Cognome;
private int Zona;
private int Importo;

[...]
[...altri metodi...]
« Last Edit: 19-04-2009, 20:49:30 by Mito » Logged
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #8 on: 19-04-2009, 22:03:08 »

devi fare TUTTO anche la classe Transizioni. L'unica cosa che NON DEVI fare è scrivere il file che avrai come input.
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
feboss
Guest
« Reply #9 on: 20-04-2009, 08:54:38 »

adesso è tutto chiaro
grazie
Logged
Mito
Matricola
*
Offline Offline

Posts: 56


« Reply #10 on: 20-04-2009, 10:21:00 »

Qualche soluzione?
Logged
Pages: [1]   Go Up
Print
Jump to: