PDA

View Full Version : lista di classi


microinfo
30-04-2012, 23:18
vorrei svolgere questo programma:
Si realizzi la gerarchia BollettaTelefonica-Fisso-Mobile
La classe Bolletta ha le seguenti variabili membro: CodiceCliente (stringa allocata dinamicamente), costo_al_secondo (valore reale costante pari ad esempio a 0,05 euro), NumTel (intero, numero di telefonate), Importo (reale, importo della bolletta). La classe Bolletta prevede le funzioni membro necessarie alla gestione dell’estensione dinamica e inoltre:
- aggiornaBolletta(int numSecondi): aggiorna la bolletta in seguito ad una telefonata, modificando l’importo della bolletta in base alla durata della telefonata (numSecondi) e incrementando il numero di telefonate.
- Due funzioni get (relative all’importo e al numero di telefonate)
- DatiUtenza(): visualizza il codice cliente e il numero di telefono

La classe Fisso aggiunge la variabile membro Indirizzo (indirizzo dell’utenza, stringa allocata dinamicamente). La classe Fisso prevede le funzioni membro necessarie alla gestione dell’estensione dinamica e inoltre ridefinisce la funzione DatiUtenza().

La classe Mobile aggiunge la variabile membro costo_alla_risposta (numero reale) e di conseguenza ad ogni telefonata l’importo della bolletta viene aggiornato aggiungendo al costo della telefonata il costo alla risposta.

Si realizzi quindi una Lista di Bollette telefoniche che possa gestire sia bollette relative ad utenze di tipo Fisso che ad utenze di tipo Mobile. La lista è realizzata mediante una lista linkata (a puntatori) ordinata sul campo CodiceCliente. Si prevedano le funzionalità di inserimento, stampa e ricerca per CodiceCliente (oltre a costruttore, distruttore, empty e full). La funzione di inserimento lancia una eccezione nel caso si tenti di inserire una bolletta relativa ad un CodiceCliente già presente nella lista. L’eccezione è un oggetto di classe EccezioneDuplicato fornita dallo studente.

Si implementi un programma di test delle classi realizzate che gestisca l’eccezione.
###########
in poche parole ho creato le classi e la gerarchia, ma non so come fare una lista di classi. Ho pensato a creare la classica lista dinamica (con classe nodo) e come tipo mettere bolletta, ma poi non capisco ad esempio cosa stampa..
nel main farei:
lista l;
bolletta b;

l.inseriscitesta(b);
qualcuno può aiutarmi?

gokan
02-05-2012, 11:17
Ciao, molto semplicemente devi fare una cosa simile:

List<Bolletta> lista = new ArrayList<Bolletta>();
lista.add(new Fisso());
lista.add(new Mobile());
..

In pratica utilizzi quello che viene chiamato polimorfismo.
Il tipo più generico Bolletta, ti consente di aggiungere alla lista sottotipi dello stesso (Fisso e Mobile).