Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [java] creare una rubrica

    Salve a tutti e ringrazio in anticipo quanti di voi collaboreranno con me a questo progettino di ripasso per Java.
    Devo sostenere un esame universitario a febbraio ed ho intenzione di studiare da ora il java per farmi trovare pronto

    Ho pensato che il modo più opportuno sarebbe realizzare una rubrica telefonica. Vorrei utilizzare un file che non sia di testo, ma se proprio nessuno è in grado di aiutarmi con il codice, ne utilizzerò uno di testo.

    Ecco un mio piccolo schizzo :
    • Il file contenente i dati dovrà chiamarsi "rubrica" con l'estensione più adatta ad esso

    • Ho intenzione di utilizzare diverse classi, una per ogni operazione da fare sulla rubrica:
      1. Inserimento nuovo "contatto"
      2. Ricerca di un contatto tramite un parametro dato in ingresso: nome o numero di telefono ( preferirei fare una semplice ricerca sequenziale, dal primo all'ultimo contatto )
      3. Visualizzazione dell'intero contenuto della rubrica
      4. Ordinamento in ordine alfabetico dei contatti della rubrica (l'ordinamento verrà avviato automaticamente dopo le seguenti operazioni: inserimento nuovo contatto, modifica di un contatto, cancellazione di un contatto)
      5. Modifica dei dati di un contatto
      6. Cancellazione di un contatto

      Ovviamente la classe di ricerca verrà utilizzata anche per modificare un contatto o cancellarlo, andando a chiedere una conferma prima di effettuare l'operazione

    • Per ogni contatto vorrei utilizzare un oggetto CONTATTO del seguente tipo:
      1. NOME di tipo stringa di 20 caratteri
      2. N_TEL (numero telefono) di tipo stringa di 15 caratteri
      3. NOTE : eventuali note

    Come si può ben comprendere, il tipo di accesso al file, la scrittura, e la ricerca, dipenderanno dal tipo di file che si utilizzerà, e quindi io preferirei utilizzare un file ad accesso diretto anzichè file di testo... Mi piacerebbe utilizzare un file di estensione sconosciuta, e quindi impossibile da leggere se non con la mia rubrica...

    Comincio ad abbozzare un pò di codice...
    Aspetto consigli ed iniziative....:help:
    Grazie in anticipo a quanti di voi collaboreranno.... :sperem:

    N.B. Al momento vorrei evitare di utilizzare le interfacce, quindi mi limiterò a far funzionare le classi tramite una semplice console.

    Non so se importa, comunque, io utilizzo Eclipse come editor...
    |--> Tign o no ?! <--|

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

    Re: [java] creare una rubrica

    Originariamente inviato da antoineg
    Ho pensato che il modo più opportuno sarebbe realizzare una rubrica telefonica.
    Buona idea.

    Originariamente inviato da antoineg
    Vorrei utilizzare un file che non sia di testo, ma se proprio nessuno è in grado di aiutarmi con il codice, ne utilizzerò uno di testo.
    Non è solo il dilemma file binario o file testuale .... è anche questione di stabilire se le ricerche/modifiche le vuoi fare direttamente sul file o se invece vuoi caricare tutto in memoria in una struttura dati, fare tutte le operazioni che vuoi e alla fine (o anche di tanto in tanto quando vuole l'utente) salvare i dati.
    Insomma, se vuoi apportare modifiche "incrementali" al file o fare una riscrittura completa con tutti i dati.

    Indubbiamente il primo caso è più difficile, critico e dipende anche dal formato dei dati.

    Se questo progetto è appunto solo a livello "didattico", non so se ti conviene complicarti la vita .... è appunto solo "didattico". Quindi sarebbe meglio caricare tutto in memoria, in apposite strutture dati. Cosa che tra l'altro ti potrebbe essere molto utile per studiare/ripassare bene le principali collezioni di Java.

    Originariamente inviato da antoineg
    Ho intenzione di utilizzare diverse classi, una per ogni operazione da fare sulla rubrica
    Non necessariamente bisogna essere così drastici nella separazione ... e anzi, probabilmente non sarebbe nemmeno la cosa migliore (è tutto da valutare comunque).

    Originariamente inviato da antoineg
    Mi piacerebbe utilizzare un file di estensione sconosciuta, e quindi impossibile da leggere se non con la mia rubrica...
    Non è tanto questione di "estensione" .... ma di "formato" dei dati.

    Originariamente inviato da antoineg
    Comincio ad abbozzare un pò di codice...
    Qualunque soluzione tu voglia adottare, cerca sempre di tenere presente i principi basilari della OOP. Ovvero incapsulazione, alta coesione delle classi, basso accoppiamento tra le classi, ecc...
    Oltre ovviamente ad usare in modo corretto la ereditarietà e il polimorfismo.

    Originariamente inviato da antoineg
    N.B. Al momento vorrei evitare di utilizzare le interfacce, quindi mi limiterò a far funzionare le classi tramite una semplice console.
    Anche questa è una buona idea.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: [java] creare una rubrica

    La questione di utilizzare un file di testo, è risolta in partenza poichè ho già fatto un progettino utilizzando un file di testo ove non dovevo caricare tutto in memoria tramite oggetti poichè lavoravo continuamente sul file, leggendo e scrivendo...

    Ora invece mi interessa lavorare su un file che non sia di testo per avere una maggiore conoscenza sui diversi tipi di approccio ed utilizzo...



    C'è un piccolo problema... Devo necessariamente fare in modo che gli attributi della classe contatto sia definite e limitate, ma purtroppo non riesco a dare una lunghezza massima alle stringhe!

    class Contatto{
    private String nome;
    private String n_tel;
    private String note;
    ....
    ....
    public Contatto(String nome,String n_tel){Costruisco un oggetto persona con nome e numero di telefono
    this.nome=nome this.n_tel=n_tel;
    }
    //metodi accessori
    //membri mutatori
    Questo pezzo di codice mi è stato dettato velocemente da un collega di università...

    Come faccio a dare una lunghezza limitata agli attributi della classe NOME, N_TEL e NOTE?
    |--> Tign o no ?! <--|

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

    Re: Re: Re: [java] creare una rubrica

    Originariamente inviato da antoineg
    Devo necessariamente fare in modo che gli attributi della classe contatto sia definite e limitate, ma purtroppo non riesco a dare una lunghezza massima alle stringhe!

    Come faccio a dare una lunghezza limitata agli attributi della classe NOME, N_TEL e NOTE?
    Se la lunghezza è maggiore di N caratteri, prendi solo i primi N caratteri ..... insomma è un concetto generale .... mi pare logico.

    E quindi ti basta usare i metodi di String.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Si, infatti per limitare i danni ho già fatto così... sto testando il codice e pongo in IF di selezione prima della assegnazione.... Se il parametro in ingresso è minore o uguale ad N allora assegno, altrimenti prendo la subString da 0 ad N. Però mi chiedevo se fosse possibile fin dalla dichiarazione fissare un valore massimo o meno...


    appoggio = tastiera.readLine();
    Integer N=10; // vincolo di lunghezza massima
    controllo_lunghezza=appoggio.length();
    if (controllo_lunghezza<=N){
    nome=appoggio;
    }
    else {nome=appoggio.substring(0, N);}
    |--> Tign o no ?! <--|

  6. #6
    Sto cominciando a creare la classe Rubrica...

    public class Rubrica {
    public static int opzione; //opzione per il menù
    private static String nome; //nome del contatto
    private static String cognome; //cognome del contatto
    private static String n_tel; //numero di telefono del contatto

    //costruttore predefinito
    public Rubrica(){
    nome=null;
    cognome=null;
    n_tel=null;
    }

    //imposta il nome
    public static void setNome(String N){
    nome=N;
    }

    //imposta il cognome
    public static void setCognome(String C){
    cognome=C;
    }

    //imposta numero di telefono
    public static void setNtel(String Ntel){
    n_tel=Ntel;
    }

    //preleva nome
    public String getNome(){
    return nome;
    }
    //preleva cognome
    public String getCognome(){
    return cognome;
    }
    //preleva numero di telefono
    public String getNtel(){
    return n_tel;
    }

    }

    A breve posterò la classe menù...
    |--> Tign o no ?! <--|

  7. #7
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565

    Re: Re: Re: Re: [java] creare una rubrica

    Originariamente inviato da andbin
    Se la lunghezza è maggiore di N caratteri, prendi solo i primi N caratteri ..... insomma è un concetto generale .... mi pare logico.

    E quindi ti basta usare i metodi di String.

    Sorry OT

    Ma allora tu NON sei morto!! Ci manchi nel forum del C++!
    Torna tra noi!!
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  8. #8
    Chi mi da una mano ad usare JFileChooser ???

    Mi serve per scegliere il file di testo da caricare e/o da salvare....
    |--> Tign o no ?! <--|

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da antoineg
    Però mi chiedevo se fosse possibile fin dalla dichiarazione fissare un valore massimo o meno...
    No, non è possibile. Questa limitazione è un qualcosa di "dinamico" che devi gestire tu.

    Originariamente inviato da antoineg
    Sto cominciando a creare la classe Rubrica...

    codice:
    public class Rubrica {
        public static int opzione; //opzione per il menù
        private static String nome; //nome del contatto
        private static String cognome; //cognome del contatto
        private static String n_tel; //numero di telefono del contatto
    ....
    No no mi spiace .... già qui non ci siamo.
    Concettualmente una rubrica ha 1 nome e 1 cognome (e oltretutto li hai messi static!!!! )??? Direi di no. E che centra una "opzione per il menù" in una classe che dovrebbe solo gestire "un insieme di contatti"??

    Ricorda i principi della OOP.

    Originariamente inviato da antoineg
    A breve posterò la classe menù...
    No alt .... valuta molto bene le questioni sul "design" .... e se hai dubbi, chiedi.

    Originariamente inviato da XWolverineX
    Sorry OT

    Ma allora tu NON sei morto!! Ci manchi nel forum del C++!
    Torna tra noi!!
    Guarda ... ormai sono completamente javizzato .....
    Ed è più di 1 anno che non scrivo 1 riga di C/C++.

    Originariamente inviato da antoineg
    Chi mi da una mano ad usare JFileChooser ???
    E meno male che dicevi che non volevi usare interfacce grafiche .....

    Comunque il modo tipico/minimale di uso è semplice: 1) istanzi un JFileChooser, 2) imposti eventuali proprietà (es. filtri, personalizzazioni varie, ecc..), 3) invochi showOpenDialog() o showSaveDialog(), 4) se il valore di ritorno del showXXX è JFileChooser.APPROVE_OPTION allora l'utente ha "approvato" la selezione e ottieni un File da getSelectedFile().
    Tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Purtroppo non riesco a gestire come dovrei il JFileChooser, quindi per ora mi limiterò all'utilizzo di un menù a caratteri...

    Per la questione degli attributi STATIC, ho risolto ed ho eliminato la keyword static....

    Altri suggerimenti?
    |--> Tign o no ?! <--|

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.