Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    16

    Classe che gestisce hotel[registrare servizi offerti dall'hotel]

    Salve, per il mio esame di fondamenti di informatica devo creare un programma che gestisce un'agenzia viaggi. Mentre lavoravo mi è sorto qualche problema.
    In questa classe Hotel io registro il nome dell'hotel, la località, il numero di stelle, i servizi offerti ed il costo di ognuno di questi servizi.

    Il mio problema consiste nel creare la funzione Add_servizi(String nome, double costo);
    Volevo chiedervi come posso salvare entrambi i dati in un array, devo creare un array bidimensionale? O crearne 2? Creandone 2 si pone il problema che i dati nome e costo devono essere associati per ogni tipo di servizio!

  2. #2
    Concettualmente:
    fissi S = {insieme di tutti i servizi dell'hotel},
    C = {insieme dei costi},
    quindi devi rappresentare un sottoinsieme del prodotto cartesiano S X C i cui elementi sono coppie (nome servizio, costo), dove il nome del servizio è la chiave, il costo è il rispettivo valore; ergo puoi usare un dizionario!

    In Java: HashMap.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    16
    Chiarissimo come sempre, lol non ci avevo pensato!
    Comunque ora ho creato queste 2 funzioni:

    codice:
    public void Add_servizi(String n, double c) 	{ 		HashMap servizi = new HashMap(); 		servizi.put(n, c); 	} 	 	public HashMap Get_servizi() 	{ 		return servizi;			 	}
    Volevo un parere da parte tua, mi conviene migliorare la funzione che restituisce i servizi ed implementare un iteratore nella funzione stessa oppure tornare semplicemente l'hashmap ed iterarlo nel file che contiene main??

  4. #4
    Originariamente inviato da demi90
    codice:
    public void Add_servizi(String n, double c) { 		
    HashMap servizi = new HashMap(); 		
    servizi.put(n, c); 	
    }
    Non devi istanziare l'HashMap ogni volta che aggiungi un servizio, devi definire servizi come campo di esemplare (di istanza) e quindi definire il metodo così:
    codice:
    public void Add_servizi(String n, double c) {		
        this.servizi.put(n, c); 	
    }
    Originariamente inviato da demi90
    la funzione che restituisce i servizi ... oppure tornare semplicemente l'hashmap
    Si, potresti restituire l'istanza di HashMap! Volendo essere più precisi, ti conviene restituire un suo clone evitando così la possibilità che vengano apportate modifiche ad esso al di fuori della classe Hotel:
    codice:
    public HashMap getServizi() {		
       return this.servizi.clone(); 	
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    16
    Perfetto tutto chiaro, ho solo dovuto aggiungere un cast al return perchè sennò dava un type mismatch per il resto tutto ok, grazie mille =D

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.