Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 48

Discussione: [JAVA] Aiuto programma

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37

    [JAVA] Aiuto programma

    Allora, credo di avere seri problemi di comprensione del testo, e ho seriamente bisogno di aiuto, visto che siete esperti qualcuno mi darebbe 1 mano per fare 1 programma del genere?
    Questo è il testo:
    Vanno realizzate dell classi che rappresentino dati relativi ad una rete fognaria. Si suppone che le condutture si colleghino fra loro soltanto ai pozzetti. Ogni pozzetto ha una sola conduttura di uscita. Si realizzino le seguenti classi:

    Conduttura
    per ogni conduttura vengono memorizzate la lunghezza e il pozzetto di partenza e di arrivo; si usa il valore null come pozzetto di uscita per indicare che la conduttura scarica al di fuori della rete
    Pozzetto
    per ogni pozzetto vengono rappresentate le sue coordinate (due interi), l'insieme delle condutture entranti e la (singola) conduttura uscente
    Allaccio
    un allaccio è un punto in cui la fognatura di un edificio si collega alla rete fognaria; esisono due tipi di allacci, ma in ogni caso va memorizzato l'indirizzo (una stringa) dell'edificio
    AllaccioConduttura
    è un allaccio che è stato fatto su una conduttura; va memorizzata la conduttura e il punto di allaccio in termini di distanza dall'inizio della conduttura
    AllaccioPozzetto
    è un allaccio su un pozzetto; in questo caso va memorizzato soltanto il pozzetto
    Queste classi vanno messe in un package fogna. Tutte le classi devono essere incapsulate e i loro oggetti non modificabili. Non sono ammessi valori nulli. Vanno realizzati i seguenti metodi in tutte le classi:

    costruttore e metodi get
    metodi standard toString, equals, hashCode e clone (che realizza la clonazione profonda)

    Il mio ragionamento è stato questo:
    Allaccio potendo essere solo AllaccioConduttura e AllaccioPozzetto sarà 1 classe astratta, ma per la classe Conduttura e la classe Pozzetto non so davero che fare, dovrei creare 1 sovraclasse Conduttura e 2 sottoclassi una per rappresentare le condutture entranti con 1 HashSet (essendo 1 insieme) e l'altra per rappresentare la singola conduttura uscente, ma come rappresentare la classe pozzetto? e come mettere in relazione tra di loro conduttura e pozzetto? (visto che ogni conduttura ha 1 pozzetto di partenza e 1 di arrivo e ogni pozzetto l'insieme di condutture entranti e la singola conduttura uscente)
    Sono molto confusa e di sicuro avrò detto molte castronerie ma vi prego aiutatemi
    (spero di migliorare 1 giorno, come posso fare? -_-)

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    io la vedo così:
    AllaccioConduttura e AllaccioPozzetto estendono Allaccio, quindi ne ereditano il metodo per la via e i metodi standard e ne sovrascrivono il costruttore;

    Conduttura sarà una classe normale con un campo intero per la lunghezza e 2 campi Pozzetto per identificare i pozz di entrata e uscita

    Pozzetto come dice il testo avrà due campi interi per le coord e 1 list1 di Conduttura per le cond in entrata e un campo Conduttura per quelle in uscita.

    Le 2 classi hanno una doppia relazione, ma per me la cosa non crea tanti problemi in quanto da una parte la relazione ti serve per sapere a quali pozz collegare la cond, mentre dall'altra ti serve per sapere il verso della connessione tra pozz e cond.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    Devo ritirare su questo topic come già ho ripetuto 200 volte sono alle prime armi e non riesco proprio a risolvere questo esercizio, c'è qualche anima pia che mi aiuterebbe passo per passo? T_T mi sa che pretendo troppo ma ci provo T_T per voi che siete esperti sicuramente sarà 1 passeggiata

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Hai gia' tirato giu' un po' di codice? Posta quello che si controlla e si prova ad andare avanti.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    è che questa comunicazione tra pozzetto e conduttura non riesco proprio a capire come farla, inoltre per lunghezza non so cosa dovrei mettere, 2 punti? un intero? E come rappresento il fatto che la conduttura scarica fuori dalla rete?
    Mi sa che ho delle lacune abbastanza gravi, java lo conosco ma quando mi trovo davanti a 1 esercizio non so veramente da dove partire, proprio x la comprensione del testo

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Allora partiamo da Conduttura.
    codice:
    Conduttura
    per ogni conduttura vengono memorizzate la lunghezza e il pozzetto di partenza e di arrivo; si usa il valore null come pozzetto di uscita per indicare che la conduttura scarica al di fuori della rete.
    Quindi ti serve una variabile lunghezza. Se nell'esercizio non e' specificato,lalunghezza puo' essere un numero con la virgola, quindi double. Poi devi memorizzare i due pozetti.
    codice:
    private double lunghezza;
    private Pozzetto partenza;
    private Pozzetto arrivo;
    Probabile che queste info andranno passate attraverso il costruttore. I metodi get restituiscono benelmente le variabili. Prova a tirar giu' questa classe intanto e poi postala.

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    Ok io provo a fare il tutto, e di postarlo entro domani (stasera sono impossibilitata dai parenti) spero di avere ancora il tuoa iuto, mis erve proprio, e ti ringrazio in anticipo, gentilissimo

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    Grande dubbio, quale classe andrebbe realizzata per prima? :master: conduttura?
    Per adesso ho scritto questo:
    package fogna;


    public class Conduttura {
    private double lunghezza;
    private Pozzetto partenza;
    private Pozzetto arrivo;

    }
    public Conduttura(double l, Pozzetto p, Pozzetto a) {
    lunghezza=l;
    partenza=p;
    arrivo=a;
    }
    public double getLunghezza() {
    return lunghezza;
    }
    public Pozzetto getPartenza(){
    return partenza;
    }
    public Pozzetto getArrivo(){
    return arrivo;
    }
    public String toString() {
    mi vergogno di quello che ho scritto perchè sicuramente ci avrò messo delle castronerie pur essendo alle prime righe di codice =_=
    il fatto è che mi sono bloccata sul metodo toString....non so bene cosa ci andrebbe messo
    (stesso problema per il metodo equals)

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    In realta' dovresti scegliere se dare la precedenza a Conduttura o a Pozzetto. Per motivi di coerenza, se una conduttura termina in un pozzetto, quel pozzetto dovra' avere questa conduttura nella lista, quindi piu' avanti dovremo fornire dei metodi per settare le opportune variabili che saranno richiamati nel costruttore dell'elta classe o qualche stratagemma del genere. Ma a questo possiamo pensare tra un po'. Intanto guardiamo di finire la classe.
    Il toString deve restituire la stringa che verra stampata quando, ad esempio, si fa
    codice:
    Conduttura c;
    //Altro codice, inizializzo la conduttura
    System.out.print(c);
    Potrebbe essere qualcosa tipo
    codice:
    String result = "Conduttura "+partenza+"-"+arrivo" m."+lunghezza;
    partenza e arrivo sono il toString che andremo a mettere nella classe pozzetto.
    Per il metodo equals, devi vedere se la conduttura e' uguale ad un altra, quindi controlla se le variabili d'istanza delle due classi coincidono (lunghezza e' un tipo di dato primitivo quindi lo confronti con ==, le altre due sono oggetti quindi le confronti con equals che andremo a scrivere in seguito nella classe pozzetto).

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    37
    per l'equals andrebbe un codice del tipo:
    boolean stessaClasse(Object o){
    if(o==null)
    return false;
    return this.getClass()!=o.getClass();
    ?
    (poi l'ashCode? ._.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.