Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Che struttura dati utilizzare??

    ciao, dovrei creare una classe cliente che abbia le seguenti caratteristiche:
    Di ogni Cliente è necessario memorizzare:
    - Codicefiscale (stringa 16 caratteri)
    - cognome
    - nome
    - indirizzo
    - telefono
    - cartaIdentità
    - dataNascita
    - nominativiNucleoFamiliare (struttura dati: nome, data di nascita; gestire vuoto se
    viaggia il cliente solo)..
    io l'ho strutturata così:
    codice:
    public class Cliente {
        String Codicefiscale; //(stringa 16 caratteri)
        String cognome;
        String nome;
        String indirizzo;
        int telefono;
        String cartaIdentità;
        GregorianCalendar dataNascita;
    ho un dubbio sull'ultimo campo, che struttura dati mi conviene utilizzare??
    io i Clienti li dovrò inserire in una hashmap e successivamente devo poter effettuare delle operazioni sui dati, ad esempio:
    nucleoFamigliare(codfiscale): che, dato il codfiscale di un cliente, restituisce una
    lista dei dati dei famigliari registrati

    cosa mi consigliate di utilizzare per il campo nominativiNucleoFamigliare?? grazie in anticipo..

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Che struttura dati utilizzare??

    Originariamente inviato da crystal86
    codice:
    public class Cliente {
        String Codicefiscale; //(stringa 16 caratteri)
        String cognome;
        String nome;
        String indirizzo;
        int telefono;
        String cartaIdentità;
        GregorianCalendar dataNascita;
    Innanzitutto cerca di rispettare le convenzioni sui nomi (es. codiceFiscale, non Codicefiscale). E metti i campi come 'private' e poi i soliti metodi "getter" (anche i "setter" se l'oggetto deve essere "mutabile").
    Lettere accentate negli indentificatori sono valide, purché il compilatore javac usi lo stesso charset che l'editor ha usato per scrivere il sorgente.

    Originariamente inviato da crystal86
    ho un dubbio sull'ultimo campo, che struttura dati mi conviene utilizzare??
    io i Clienti li dovrò inserire in una hashmap e successivamente devo poter effettuare delle operazioni sui dati, ad esempio:
    nucleoFamigliare(codfiscale): che, dato il codfiscale di un cliente, restituisce una
    lista dei dati dei famigliari registrati

    cosa mi consigliate di utilizzare per il campo nominativiNucleoFamigliare?? grazie in anticipo..
    Qui bisogna chiarire un pochino (a me non è chiaro ....). Questo parametro nominativiNucleoFamiliare cosa deve rappresentare? Una lista di che cosa?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: Che struttura dati utilizzare??

    Originariamente inviato da andbin
    Innanzitutto cerca di rispettare le convenzioni sui nomi (es. codiceFiscale, non Codicefiscale).
    ok lo farò..
    poi i soliti metodi "getter" (anche i "setter" se l'oggetto deve essere "mutabile").
    questi li aggiungero in futuro, voglio prima creare la classe e poi creare tutti i metodi.
    Qui bisogna chiarire un pochino (a me non è chiaro ....). Questo parametro nominativiNucleoFamiliare cosa deve rappresentare? Una lista di che cosa?
    questa classe dovrebbe creare clienti iscritti ad una agenzia viaggi, quindi il viaggio viene intestato ad un cliente, però la classe cliente contiene il campo nomiNucleoFamigliare che dovrebbe contenere una sorta di lista dei componenti del viaggio e rimanere vuota se il cliente viaggia da solo, es se è una famiglia inserisco nome e data di nascita della moglie e dei figli..
    nn so se sono stato chiaro..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Che struttura dati utilizzare??

    Originariamente inviato da crystal86
    es se è una famiglia inserisco nome e data di nascita della moglie e dei figli..
    nn so se sono stato chiaro..
    Allora potresti creare una classe es. Familiare che "modella" un familiare con tutti i suoi dati (nome, data nascita, ecc...).

    Quel campo in Cliente puoi farlo come un List<Familiare> (lista di oggetti Familiare). Ovviamente una lista può anche essere vuota, come hai detto tu quando il cliente è da solo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Giusto, però il probl è ke io è la prima volta ke utilizzo java, fin'ora programmavo solo in c:
    una volta creata una Classe ComponentiViaggio

    codice:
    public class ComponentiViaggio(){
       private String nome;
       private GregorianCalendar dataNascita;
    
    //dopo inserirò costruttori e metodi set per inserire nuovi elementi
    }
    ma nella classe Cliente come faccio a creare una lista di elementi di questa classe??

    ad esempio a me succesivamente servirebbe una funzione ke ricevuto come parametro il codiceFiscale di un cliente mi stampi questa rispettiva lista di ComponentiViaggio.. mi conviene usare un identificatore in questa classe, cosi da associare ogni ComponenteViaggio al corrispettivo cliente?? (nn so ad esempio il codiceFiscale).. oppure viene gia associato in automatico..

    :master:

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da crystal86
    ma nella classe Cliente come faccio a creare una lista di elementi di questa classe??
    Innanzitutto ti conviene metterlo al singolare .... per principio: ComponenteViaggio. Descrive meglio l'entità.

    Poi comunque il campo lo metterai es.:

    private List<ComponenteViaggio> listaComponentiViaggio;

    A questo punto bisogna solo vedere come vuoi gestire questa lista. La vuoi passare già subito ad un costruttore? (che magari riceverà anche gli altri dati) O vuoi che il costruttore istanzi un ArrayList e lo assegni al campo e poi magari offrire dei metodi es. addComponenteViaggio(ComponenteViaggio cv)??

    Insomma ... la questione è solo lì.

    Originariamente inviato da crystal86
    ad esempio a me succesivamente servirebbe una funzione ke ricevuto come parametro il codiceFiscale di un cliente mi stampi questa rispettiva lista di ComponentiViaggio.. mi conviene usare un identificatore in questa classe, cosi da associare ogni ComponenteViaggio al corrispettivo cliente??
    No, ti conviene creare un'altra classe che "modella" un insieme di clienti es. InsiemeClienti.
    All'interno di questa classe ci saranno una o più collezioni che consentiranno di tenere N clienti e magari poter cercare i clienti secondo una certa chiave.

    Il problema adesso è stabilire quali/quante collezioni usare. E sorgono altre questioni, innanzitutto sulla univocità degli oggetti. In questo insieme di clienti non ci devono essere 2 clienti uguali, giusto? E per te quando 2 clienti sono uguali?
    E il codice fiscale? Pure lui non è davvero univoco.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Originariamente inviato da andbin
    A questo punto bisogna solo vedere come vuoi gestire questa lista. La vuoi passare già subito ad un costruttore? (che magari riceverà anche gli altri dati) O vuoi che il costruttore istanzi un ArrayList e lo assegni al campo e poi magari offrire dei metodi es. addComponenteViaggio(ComponenteViaggio cv)??
    Io preferirei passare tutti i dati ad un costruttore così da risparmiare un pò di codice visto ke ho ankora molto lavoro da fare.

    No, ti conviene creare un'altra classe che "modella" un insieme di clienti es. InsiemeClienti.
    All'interno di questa classe ci saranno una o più collezioni che consentiranno di tenere N clienti e magari poter cercare i clienti secondo una certa chiave.
    In realtà io ho una classe che contiene gia una Hash map di clienti. eccola:
    codice:
    public class Agenzia {
        private String nome;
        private String Indirizzo;
        private long telefono;
        private HashMap prenotazioni;
        private HashMap registrazione_clienti;
    
        public Agenzia( String nome,String Indirizzo, long telefono){
            this.nome=nome;
            this.Indirizzo=Indirizzo;
            this.telefono=telefono;
            this.prenotazioni= new HashMap();
            this.registrazione_clienti= new HashMap();
        }
    dove appunto i clienti vengono raggruppati in questa hash map. dove avranno anke un id univoco..
    Il problema adesso è stabilire quali/quante collezioni usare. E sorgono altre questioni, innanzitutto sulla univocità degli oggetti. In questo insieme di clienti non ci devono essere 2 clienti uguali, giusto? E per te quando 2 clienti sono uguali?
    E il codice fiscale? Pure lui non è davvero univoco.
    qui la questione è un pò più complicata.. siccome questo progetto deve gestire una agenzia viaggi, io posso inserire 2 volte un cliente nella hash map,purchè si riferisca a 2 vacanze diverse, ossia l'importante è ke un cliente non prenoti 2 viaggi contemporaneamente (ossia riguardanti lo stesso periodo.. nn sò se sono stato chiaro.. (penso di no)

    p.s. cmq grazie mille x la pazienza ke hai.. sei un grande..

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.