Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    4

    come utilizzare i riferimenti delle mappe o delle linkedList

    salve,avrei bisogno di una mano p capire come utilizzare i riferimenti delle Mappe/LinkedList;io ho svolto il compito che mi aveva assegnato il mio prof di linguaggi in un determinato modo(sotto la soluzione ed il testo) e faceva tutto ciò che lui mi chiedeva;il mio metodo consisteva nel creare due mappe una in una classe(Messaggistica) e l'altra nell'altra classe(MailingList) passando gli oggetti;il mio prof però vorrebbe che io utilizzassi i riferimenti e non creassi un'altra mappa o lista in mailinglist ed utilizzassi i riferimenti ma non so come si faccia;
    grazie in anticipo per la cortese risposta

    MainClass
    codice:
    package eserciziocompito21;
    import java.util.Scanner;
    
    public class Main {
           public static void main(String[] args) {
           
            Messaggistica m=new Messaggistica();
             Scanner scanner=new Scanner(System.in);
            boolean esci=false;
             while(!esci){
                 System.out.println("\t-----Menù-------");
                System.out.println("1)Aggiungi utente");
                System.out.println("2)Crea MailingList");
                System.out.println("3)Inserisci Utente nella MailingList");
                System.out.println("4)Visualizza Utenti Iscritti");
                System.out.println("5)Rimuovi Utente dalla mailingList");
                System.out.println("6)Rimuovi mailingList");
                System.out.println("8)Esci");
                int scelta=scanner.nextInt();
                switch(scelta){
                    case 1:
                        m.aggiungiUtente();
                        break;
                    case 2:
                        m.creaMailingList();
                        break;
                    case 3:
                        m.inserisciUtenteMailingList();
                        break;
                    case 4:
                        m.VisualizzaUtentiIscritti();
                        break;
                    case 5:
                        m.RimuoviUtenteMailingList();
                        break;
                    case 6:
                        m.RimuoviMailingList();
                        break;
                    case 8:
                        esci=true;
                 }        }    }}
    classe Messaggistica

    codice:
    package eserciziocompito21;
    import java.util.*;
    
    public class Messaggistica {
        private Scanner scanner=new Scanner(System.in);
        private Map<Integer,Utente>utenti=new HashMap<Integer,Utente>();
        private List<MailingList>maili=new LinkedList<MailingList>();
    
        public void aggiungiUtente(){
            Utente u=null;
            try{
    
            System.out.println("Inserisci codice utente: ");
            int cod=scanner.nextInt();
    
            System.out.println("Inserisci email: ");
            String em=scanner.next();
            System.out.println("Inserisci nome: ");
            String n=scanner.next();
            System.out.print("Inserisci cognome: ");
            String c=scanner.next();
    
            u=new Utente(cod,n,c,em);
            utenti.put(cod,u);
           }catch (Exception e){
                System.out.println("Parametri inseriti,errati!!! ");
            }
        }
        public void creaMailingList(){
            MailingList m=null;
            try{
               System.out.println("Inserisci nome mailing: ");
               String nm=scanner.next();
               Calendar data=creaData();
               m=new MailingList(nm,data);
               maili.add(m);
            }catch(Exception e){
              System.out.println("Scrittura errata!!! ");
            }
        }
        public void inserisciUtenteMailingList(){
            Utente u=null;
            System.out.println("Inserisci il codice dell'utente da inserire: ");
            int cod=scanner.nextInt();
            try{
                 u = RicercaUtente(cod);
                 u.getInfoUtente();
             }
             catch(Exception e){ System.out.println("Utente non trovato"); }
             if(u!=null){
                Iterator i=maili.iterator();
                while(i.hasNext()){
                    MailingList m=(MailingList)i.next();
                    System.out.println("Nome lista: "+m.getNome());
                    System.out.println("Vuoi inserire l'utente?");
                    int scelta=TipoScelta();
                    boolean esci=false;
                    switch(scelta){
                        case 1:
                            m.inserisciUtenteMailingList(cod, u);
                            break;
                        case 2:
                            System.out.println("Nessun inserimento");
                            break;
                    }
                }
            }
        }
     
        public void VisualizzaUtentiIscritti(){
            Iterator i=maili.iterator();
                while(i.hasNext()){
                    MailingList m=(MailingList)i.next();
                    System.out.println("Nome lista: "+m.getNome());
                    System.out.println("Vuoi visualizzare gli utenti?");
                    int scelta=TipoScelta();
                    boolean esci=false;
                    switch(scelta){
                        case 1:
                            m.visUtenti();
                            break;
                        case 2:
                            System.out.println("Nessuna visualizzazione");
                            break;
                    }
                }
        }
        public void RimuoviUtenteMailingList(){
            Utente u=null;
    
            System.out.println("Inserisci il codice dell'utente da rimuovere: ");
            int cod=scanner.nextInt();
            try{
                 u = RicercaUtente(cod);
                 u.getInfoUtente();
             }
             catch(Exception e){ System.out.println("Utente non trovato"); }
             if(u!=null){
                Iterator i=maili.iterator();
                while(i.hasNext()){
                    MailingList m=(MailingList)i.next();
                    m.UtenteIscrittoLista(cod);
                  }
            }
        }
        public void RimuoviMailingList(){
            MailingList m=null;
            try{
                m=RicercaMailingList();
                }catch(Exception e){
                    System.out.println("MailingList non trovata");
                }
                if(m!=null){
                    System.out.println("Lista che sto per cacellare: "+m.getNome());
                    System.out.println("Utenti della lista cancellata");
                    m.visUtenti();
                    maili.remove(m);
                }
        }
    
        public Utente RicercaUtente(Integer key) throws Exception
         {
          Utente u = utenti.get(key);
          if(u==null) throw(new Exception());
          else return u;
        }
        public Utente VerificaCodiceUtente(Integer key) throws Exception
         {
          Utente u = utenti.get(key);
          if(u!=null){ throw(new Exception());}
    
          else return null;
        }
        public MailingList RicercaMailingList() throws Exception{
             String a=null;
            System.out.println("Inserire il nome della lista: ");
            String scelta=scanner.next();
            Iterator i=maili.iterator();
            while(i.hasNext()){
                MailingList m=(MailingList)i.next();
                a=m.getNome();
                if(scelta.equalsIgnoreCase(a)){
                    return m;
                }
            }
    
           throw(new Exception());
        }
         public Calendar creaData(){
    
            System.out.println("Inserisci anno: ");
            int anno=scanner.nextInt();
            System.out.println("Inserisci mese: ");
            int mese=scanner.nextInt();
            System.out.println("Inserisci giorno: ");
            int giorno=scanner.nextInt();
    
            Calendar cal=Calendar.getInstance();
    
            cal.set(Calendar.YEAR,anno);
            cal.set(Calendar.MONTH,mese-1);
            cal.set(Calendar.DATE,giorno);
            return cal;
        }
         public int TipoScelta(){
            int x=0;
    
            System.out.println("1)SI------2)NO");
            int scelta=scanner.nextInt();
            if(scelta==1){
                x=scelta;
            }else if(scelta==2){
                x=scelta;
            }
            return x;
        }
    
    }
    classe MailingList
    codice:
    package eserciziocompito21;
    import java.util.*;
    
    public class MailingList {
        private Scanner scanner=new Scanner(System.in);
        private String nome;
        private Calendar data;
        private Map<Integer,Utente>iscritti;
    
        public MailingList(String nome,Calendar data){
            this.nome=nome;
            this.data=data;
            iscritti=new HashMap<Integer,Utente>();
        }
        public String getNome(){
            return nome;
        }
        public void inserisciUtenteMailingList(Integer cod,Utente u){
            iscritti.put(cod, u);
        }
         public void visUtenti(){
            Iterator it=iscritti.keySet().iterator();
    
            while(it.hasNext())
            {
             // it.next() è la chiave
             Integer key = (Integer)it.next();
             Utente u = iscritti.get(key); // Prendo l'elemento avente chiave it.next();
             if(iscritti.isEmpty()){
               System.out.println("Nessun utente nella mailinglist");
             }
             else u.getInfoUtente();
    
    
            }
        }
         public void UtenteIscrittoLista(int cod){
              int a=cod;
              String n=null;
             Iterator it=iscritti.keySet().iterator();
    
            while(it.hasNext())
            {
             // it.next() è la chiave
             Integer key = (Integer)it.next();
             Utente u = iscritti.get(key); // Prendo l'elemento avente chiave it.next();
             if(a==u.getCod()){
                System.out.println("Lista: "+nome);
    //            iscritti.remove(key);
                System.out.println("Vuoi cancellare l'utente?");
                    int scelta=TipoScelta();
                    boolean esci=false;
                    switch(scelta){
                        case 1:
                            iscritti.remove(key);
                            break;
                        case 2:
                            System.out.println("Nessuna cancellazione");
                            break;
                    }
             }
    
            }
    
         }
            public int TipoScelta(){
            int x=0;
    
            System.out.println("1)SI------2)NO");
            int scelta=scanner.nextInt();
            if(scelta==1){
                x=scelta;
            }else if(scelta==2){
                x=scelta;
            }
            return x;
        }
    
    }
    classe Utente
    codice:
    package eserciziocompito21;
    
    public class Utente {
        private int codice;
        private String nome,cognome,email;
    
        public Utente(int codice,String nome,String cognome,String email){
            this.codice=codice;
            this.cognome=cognome;
            this.nome=nome;
            this.email=email;
        }
        public int getCod(){
            return codice;
        }
        public void getInfoUtente(){
            System.out.println("Nome: "+nome);
            System.out.println("Cognome: "+cognome);
            System.out.println("Email: "+email);
           // System.out.println("Codice: "+codice);
        }
    
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    4

    testo del compito

    GESTIONE SISTEMA MESSAGGISTICA
    Scrivete Ie classi necessarie per la gestione di utenti e mailing list. Il sistema na un’eIenco di
    utenti e un elenco di mailing list. ll sistema deve disporre di di tutti i metodi e delle strutture
    dati per aggiungere utentie liste e per gestire iscrizioni e cancellazioni degli utenti alle liste.
    La mailing list deve contenere il nome della lista, la data di creazione e I’elenco degli utenti
    iscritti (massimo 100). Ogni utente possiede codice, nome, cognome ed email.
    ll programma deve avere le seguenti caratteristiche;
    1) Funzionalita per linserimento in una nuova mailing list nel sistema di gestione delle
    mailing list.
    2) Funzionalita per linserimento di un nuovo utente nel sistema di gestione delle mailing
    list.
    3) Gestione di iscrizione di un utente ad una mailing list con la seguente interfaccia:
    a. L’operatore introduce il codice dellutente.
    b. II programma stampa i dati dell‘utente.
    c. ll programma stampa uno alla volta le mailing list e chiede se ci si_vuole
    iscrivere. In caso affermativo viene memorizzata liscrizione e viene
    visualizzata la prossima mailing list
    4) Gestione stampa elenco utenti iscritti alle mailing list con Ia seguente interfaccia;
    a. ll programma stampa uno alla volta i nomi delle mailing list e chiede se
    stampare l'elenco iscritti. In caso affermativo viene visualizzato a schermo
    l'elenco altrimenti viene visualizzato il nome della prossima mailing list.
    5) Gestione di cancellazione di un utente da una mailing list con la seguente interfaccia:
    a. L’operat0re introduce il codice dellutente
    b. ll programma stampa i dati deIl’utente
    c. Il programma stampa uno alla volta le mailing list a cul l’utente e iscritto e
    chiede se ci si vuole cancellare. In caso affermativo viene effettuata la
    cancellazione e viene visualizzata la prossima mailing list
    6) Gestione eliminazione mailing list con la seguente interfaocia:
    a. L’operatore introduce il codice della mailing list .
    b. ll sistema elimina Ia lista dopo aver stampato l’eIenco degli iscritti per l'ultima
    volta.
    c. Si osservi che la cancellazione di una lista non comporta la cancellazione
    degli utenti dal sistema in quanto un utente puo essere iscritto a diverse .
    mailinglist.
    Per verificare il corretto funzionamento delle vostre classi, scrivete un programma che dentro
    un loop infinito mostri un menu con le seguenti opzioni:
    a) Aggiungi utente
    b) Aggiungi mailing list
    c) lscrivi utente a mailing list
    d) Cancella utente da mailing list
    e) Stampa elenco iscritti a mailing list

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Quando si posta del codice, esso deve essere indentato (e fin qui, ok) e all'interno degli appositi tag CODE (che non hai usato). Tutto questo è scritto nel Regolamento interno, che ti invito a visionare.

    Ho sistemato il tuo post, in modo che il codice risulti leggibile.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    4
    ok,grazie

  5. #5

    Re: come utilizzare i riferimenti delle mappe o delle linkedList

    Originariamente inviato da lar3
    il mio prof però vorrebbe che io utilizzassi i riferimenti e non creassi un'altra mappa o lista in mailinglist ed utilizzassi i riferimenti ma non so come si faccia;
    grazie in anticipo per la cortese risposta
    Penso si riferisca alla classe Messaggistica:
    codice:
    package eserciziocompito21;
    import java.util.*;
    
    public class Messaggistica {
        private Scanner scanner=new Scanner(System.in);
        private Map<Integer,Utente>utenti=new HashMap<Integer,Utente>();
        private List<MailingList>maili=new LinkedList<MailingList>();
        ...
    utenti ce l'hai già in MailingList.
    Poi, volendo potresti rendere maili un campo di classe di MailingList.

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    4

    Re: Re: come utilizzare i riferimenti delle mappe o delle linkedList

    Originariamente inviato da VincenzoTheBest
    Penso si riferisca alla classe Messaggistica:
    codice:
    package eserciziocompito21;
    import java.util.*;
    
    public class Messaggistica {
        private Scanner scanner=new Scanner(System.in);
        private Map<Integer,Utente>utenti=new HashMap<Integer,Utente>();
        private List<MailingList>maili=new LinkedList<MailingList>();
        ...
    utenti ce l'hai già in MailingList.
    Poi, volendo potresti rendere maili un campo di classe di MailingList.
    ciao e grazie per l'aiuto,
    il problema che io in questo modo riesco a far girare perfettamente il programma e fare tutto ciò che mi chiede col passaggio degli oggetti ma con i riferimenti non so come sia...tu sai come fare?grazie

  7. #7

    Re: Re: Re: come utilizzare i riferimenti delle mappe o delle linkedList

    Originariamente inviato da lar3
    ciao e grazie per l'aiuto,
    il problema che io in questo modo riesco a far girare perfettamente il programma e fare tutto ciò che mi chiede col passaggio degli oggetti ma con i riferimenti non so come sia...tu sai come fare?grazie
    Ad esempio nel metodo
    codice:
    public Utente RicercaUtente(Integer key)
    fai uso della mappa utenti di Messaggistica.
    In realtà l'utente dovresti ricercarlo all'interno di una determinata istanza della classe MailingList.
    In pratica devi fare in modo che la classe MailingList sia coesa, ad esempio che offra la possibilità di inserire, cancellare direttamente un determinato utente e stampare l'intera lista degli iscritti.

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.