Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Agenda appuntamenti

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46

    Agenda appuntamenti

    Ciao a tutti, sono uno studente di informatica e volevo chiedervi qualche dritta su un progetto che devo realizzare. Si tratta di un agenda di appuntamenti con i seguenti requisiti:

    Progettare ed implementare in Java un sistema per la gestione di un’agenda di appuntamenti. Il sistemadeve comprendere almeno:
    • Contatti con cui si prendono appuntamenti, contenenti almeno:◦ nome e cognome;◦ altri eventuali dati personali.
    • Appuntamenti di diversi tipi, tra cui almeno:◦ appuntamenti con un contatto, fissati per un certo luogo, orario e durata;◦ un altro tipo di evento in agenda a scelta, per esempio, le deadline (orario entro il quale unacerta cosa deve essere finita).
    • Un’agenda che raccolga contatti e appuntamenti, e che deve almeno:◦ poter essere memorizzata e letta da file, in formato leggibile da editor di testo;◦ provvedere un iteratore che scorra gli appuntamenti in ordine di orario (senza poterlicancellare);◦ aggiungere, modificare e rimuovere contatti e appuntamenti, avvisando in caso si creinosovrapposizioni di appuntamenti;◦ cercare appuntamenti per data;◦ cercare appuntamenti per contatto.• Un interfaccia testuale o grafica, che fornisca a un utente un accesso alle funzionalità dell’agenda.

    Volevo sapere più che altro come potrei organizzare il codice programmando secondo MVC.
    L'interfaccia la farò testuale, quindi avrò una classe che contiene il main e richiama i vari metodi (disponibili in un menù testuale).
    Ho già fatto la classe Contatto e AppuntamentoContatto(tra i campi ce anche Contatto contatto). Però non so come mettere in relazione il contatto con l'appuntamento.
    Secondo voi è necessario memorizzare in un array tutti i contatti? o basta un array con gli appuntamenti?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46
    Ah mi sono dimenticato una cosa: Se ho un ArrayList di Appuntamenti i cui campi comprendono anche oggetti oltre che a Stringhe e interi, come faccio a stampare l'arraylist? Ho provato il toString ma non mi stampa il contenuto.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Ah mi sono dimenticato una cosa: Se ho un ArrayList di Appuntamenti i cui campi comprendono anche oggetti oltre che a Stringhe e interi, come faccio a stampare l'arraylist? Ho provato il toString ma non mi stampa il contenuto.
    Hai ridefinito (override) toString() ?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46
    No perchè non riesco a trovare una spiegazione dell'overloading e non so cosa scrivere.
    io ho:

    public static boolean aggiungiAppuntamento(String nome, String cognome, String città, String eMail, String telNum, String tipo, int ora, String data, String luogo) {
    Contatto c = new Contatto(nome, cognome, città, eMail, telNum);
    AppuntamentoContatto a = new AppuntamentoContatto(c, tipo, ora, data, luogo);
    return apps.add(a);
    //contacts.add(c);
    }

    e per stampare ho fatto solo:

    public String stampa() {
    return apps.toString();
    }

    poi nel main faccio la System.out.
    Però mi stampa [agenda.AppuntamentoContatto@15db9742]

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Però mi stampa [agenda.AppuntamentoContatto@15db9742]
    In AppuntamentoContatto devi ridefinire toString()


    Quote Originariamente inviata da Giuso Visualizza il messaggio
    No perchè non riesco a trovare una spiegazione dell'overloading e non so cosa scrivere.
    override ... non overload.

    Vedi: Il metodo toString degli oggetti in Java | andbin blog
    Ultima modifica di andbin; 03-01-2018 a 23:21
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46
    Ok perfetto, mi stampa contatto e appuntamento

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46
    Posso catturare le eccezioni nel costruttore? Siccome non devo modificare i campi della classe in fase di esecuzione, ho metto l'inizializzazione del costruttore, senza metodi get e set. Fin'ora lancio delle eccezioni se i valori inseriti dall'utente non sono corretti, però non vorrei terminare l'esecuzione ma soltanto evitare di creare quell'oggetto stampando un messaggio d'errore. Si può fare tutto ciò all'interno del costruttore?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Posso catturare le eccezioni nel costruttore? Siccome non devo modificare i campi della classe in fase di esecuzione, ho metto l'inizializzazione del costruttore, senza metodi get e set. Fin'ora lancio delle eccezioni se i valori inseriti dall'utente non sono corretti, però non vorrei terminare l'esecuzione ma soltanto evitare di creare quell'oggetto stampando un messaggio d'errore. Si può fare tutto ciò all'interno del costruttore?
    Il costruttore può certo lanciare FUORI una eccezione se c'è un parametro inappropriato/invalido. Ma è il chiamante (dove viene istanziato l'oggetto) che dovrebbe eventualmente gestire la eccezione (e se non direttamente il metodo chiamante, qualcuno di più alto livello ... insomma, dove hai nozione su COSA fare se è avvenuta quella eccezione).

    Dire "catturare le eccezioni nel costruttore" non ha granché molto senso, perlomeno nel contesto di una validazione dei dati.
    Ultima modifica di andbin; 05-01-2018 a 19:27
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2018
    Messaggi
    46
    Infatti ho deciso di catturarle nel metodo che crea l'oggetto. Ma non ho capito una cosa. Se nel "try" metto un "if", se la condizione dell'if risulta falsa, viene eseguito il blocco catch? Perchè ho messo dei controlli con degli if, se vanno tutti a buon fine creo l'oggetto, altrimenti cè il blocco catch che mi ritorna -1(Quindi suppongo che il metodo termina li). Anche se l'if è falso mi ritorna 1, non so il motivo.

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da Giuso Visualizza il messaggio
    Infatti ho deciso di catturarle nel metodo che crea l'oggetto. Ma non ho capito una cosa. Se nel "try" metto un "if", se la condizione dell'if risulta falsa, viene eseguito il blocco catch? Perchè ho messo dei controlli con degli if, se vanno tutti a buon fine creo l'oggetto, altrimenti cè il blocco catch che mi ritorna -1(Quindi suppongo che il metodo termina li). Anche se l'if è falso mi ritorna 1, non so il motivo.
    Per farti capire meglio, immagina un Rettangolo

    codice:
    public class Rettangolo {
        private double larghezza;
        private double altezza;
    
        public Rettangolo(double larghezza, double altezza) {
            if (larghezza < 0) {
                throw new IllegalArgumentException("La larghezza non può essere negativa");
            }
    
            if (altezza < 0) {
                throw new IllegalArgumentException("La altezza non può essere negativa");
            }
    
            this.larghezza = larghezza;
            this.altezza = altezza;
        }
    
        // .......
    }

    Poi, dove vuoi inserire 1 rettangolo, ad esempio:

    codice:
    Rettangolo rett = null;
    
    do {
        System.out.print("Inserisci larghezza: ");
        double larghezza = //............... 
        System.out.print("Inserisci altezza: ");
        double altezza = //...............
    
        try {
            rett = new Rettangolo(larghezza, altezza);
        } catch (IllegalArgumentException e) {
            System.out.println("Rettangolo non valido, ripeti l'inserimento!");
        }
    } while (rett == null);
    
    // ...usa rett

    Questo è un modo sensato (non ho fatto vedere l'input di larghezza/altezza ... non è importante).

    P.S. evita valori di ritorno di "stato" come 1, -1 ecc... NON stai programmando in "C".
    Ultima modifica di andbin; 05-01-2018 a 20:03
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

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 © 2024 vBulletin Solutions, Inc. All rights reserved.