testi

Transcript

testi
Palestra
Scrivere le classi necessarie per la gestione delle iscrizioni e dei pagamenti in una palestra.
Un oggetto della classe Pagamento conterrà la data (una stringa), la causale (una stringa) e
l’importo del pagamento, gli oggetti della classe Servizio contengono invece una descrizione
testuale e il costo del servizio.
Scrivete inoltre le classi necessarie per rappresentare i gli oggetti Cliente e Istruttore (si
suggerisce di derivare queste classi da una classe base Persona). Questi oggetti devono
avere nome, cognome e data di nascita che vengono inizializzati dal costruttore. Gli istruttori
hanno un “servizio” e uno stipendio, i clienti hanno un elenco di servizi (massimo 5) a cui
sono abbonati e un oggetto pagamento che rappresenta l’ultimo pagamento effettuato.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
Create infine una classe Palestra che dovrà contenere un insieme di clienti, un insieme di
servizi e un insieme di istruttori. La palestra avrà un metodo stampa per scrivere la lista dei
servizi erogati con l’istruttore e i clienti associati a ciascun servizio. Scrivete un asterisco
accanto ai servizi per i quali si riscontra un’anomalia (manca l’istruttore o non ci sono clienti).
Utilizzate le vostre classi in un main dove si crea una palestra, tre oggetti servizio, un oggetto
istruttore associato al primo dei servizi creati in precedenza; infine associate i tre servizi creati
al cliente. Stampate i dettagli del cliente e dell’istruttore, infine aggiornate i dati di pagamento
del cliente mediante un’opportuno metodo.
Museo
Scrivere le classi necessarie per la gestione delle opere d’arte dei musei. Un oggetto della
classe Museo conterrà nome e indirizzo, l’elenco delle opere d’arte presenti nel museo
(massimo 500) e l’elenco delle sale (massimo 100). Una Sala e rappresentata da una classe
che contiene un numero e un nome.
Scrivete una gerarchia per rappresentare i seguenti oggetti: OperaDArte, Scultura, Dipinto.
Tutti gli oggetti devono avere un titolo, un autore (stringa), la data di creazione (stringa) e la
collocazione (un numero che rappresenta la sala del museo) che vengono inizializzati dal
costruttore. Le sculture hanno in aggiunta il materiale e l’altezza mentre i dipinti la tecnica
(olio, tempera, etc… ) e le dimensioni (larghezza e altezza). Prevedete per ciascuna classe
l’overload degli operatori << e >> e tutti i metodi che ritenete opportuni.
La classe Museo deve avere un metodo stampa per stampare la lista delle sale indicando per
ciascuna sala anche il titolo di tutte le opere in essa contenute.
Utilizzate le vostre classi in un main che crea un oggetto Museo, due oggetti dipinto, due
oggetti scultura e stampa i dettagli di tutti i dipinti e di tutte le sculture create in precedenza.
Invocate infine un metodo di museo che associa gli oggetti creati al museo e infine, tramite il
metodo stampa, stampate il dettaglio di tutte le sale presenti nel museo.
Pizzeria
Scrivete le classi necessarie per la gestione delle ordinazioni in una pizzeria. Un oggetto della
classe Pizzeria contiene nome, indirizzo, l’elenco dei tavoli e gli elenchi dei prodotti in
vendita. I prodotti possono essere istanze della classe Bibita o della classe Pizza; si
consiglia di derivare queste due classi da una classe base Prodotto. Un prodotto è
caratterizzato dal suo prezzo e da una descrizione sintetica, una pizza contiene inoltre la lista
degli ingredienti (stringhe), una bibita contiene informazioni circa il contenitore (lattina o
bottiglia) e la quantità (33 cl, 50 cl, ...). I tavoli sono rappresentati da una classe (Tavolo) che
contiene un identificativo numerico, la lista di pizze e bibite che sono stati ordinate e
un’indicazione che informa se è stato chiesto il conto.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
La classe Pizzeria deve avere un metodo stampa per stampare la lista dei prodotti. Accanto
ad ogni prodotto deve comparire la lista dei tavoli in cui è stato ordinato.
Utilizzate le vostre classi in un main dove si creano una pizzeria, tre tavoli, due bibite, tre
pizze; infine associate tre ordinazioni al primo dei tavoli. Stampate infine, tramite il metodo
stampa, l’elenco dei prodotti con l’indicazione dei tavoli in cui sono stati ordinati.
Campeggio
Scrivete le classi necessarie per la gestione dell’occupazione dei posti di un campeggio che
dispone di piazzole per tende e bungalow. Un oggetto della classe Campeggio contiene
nome, indirizzo, e gli elenche dei posti. I posti possono essere istanze della classe Piazzola o
della classe Bungalow; si consiglia di derivare queste due classi da una classe base Posto.
Un “posto” è caratterizzato da un identificativo numerico e dal suo prezzo, una piazzola
contiene inoltre la dimensione (lunghezza e larghezza) e le disponibilità di prese acqua e
luce, un bungalow contiene informazioni circa il numero di posti letto e la presenza o meno
del bagno. L’occupazione dei posti è rappresentata da una classe Soggiorno che contiene il
posto occupato, la data di inizio occupazione e la data di fine occupazione.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
La classe Campeggio deve avere un metodo stampa per stampare la lista dei posti con
l’indicazione di disponibilità o di quando si renderanno disponibili.
Utilizzate le vostre classi in un main dove si creano un campeggio, tre piazzole, due
bungalow; create due oggetti soggiorno e assegnategli rispettivamente una delle piazzole e
uno dei bungalow creati in precedenza. Stampate infine i dettagli dei posti con le relative
disponibilità mediante il medoto stampa.
Se ritenete necessario l’uso di una classe Date indicatene i metodi pubblici o gli operatori
ridefiniti indicandone le funzionalità.
Negozio
Scrivere le classi necessarie per la gestione delle vendite di un negozio. Un oggetto della
classe Vendita conterrà la data (stringa), un oggetto Cliente, un oggetto Venditore, un
numero variabile di (massimo 5) istanze della classe Articolo (caratterizzate da descrizione e
prezzo) e l’importo totale. Si suggerisce di derivare Venditore e Cliente da una classe
Persona. Queste classi devono avere nome, cognome e data di nascita che vengono
inizializzati dal costruttore. I venditori avranno anche un codice numerico e il totale venduto
mentre i clienti avranno associato il codice fiscale.
Create infine una classe Negozio che dovrà contenere un insieme di clienti, un insieme di
venditori, un insieme di articoli e un insieme di vendite. La classe negozio avrà un metodo
stampa che consente di stampare il dettaglio di tutte le vendite di tutti i venditori indicando per
ciascuno di essi il nome e il cognome, l’elenco di tutte le vendite effettuate e il totale venduto.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
Utilizzate le vostre classi in un main dove si creano un negozio che contiene 2 istanze di
“venditore”, 4 di “articolo” e 2 di “cliente” che vengono stampate per verificarne la corretta
creazione.
Create due oggetti vendita per ciascun venditore relativi a qualcuno degli oggetti articolo
creati in precedenza e stampate i dettagli di tutte le vendite mediante l’opportuno metodo
stampa della classe Negozio. Notate infine che per ogni oggetto vendita che create dovete
aggiornare opportunamente il totale venduto del relativo venditore.
Società di commercio
Scrivere le classi necessarie per la gestione della forza vendite di una società di commercio.
Un oggetto della classe Rappresentante conterrà un oggetto Automobile (caratterizzato da
targa, modello e anno), un numero variabile (massimo 5) di istanze della classe Prodotto
(caratterizzate da descrizione e codice numerico) e un numero variabile (massimo 5) di
istanze della classe Cliente. Si suggerisce di derivare Rappresentante e Cliente da una
classe Persona. Queste classi devono avere nome, cognome e data di nascita che vengono
inizializzati dal costruttore. I rappresentanti avranno anche gli oggetti indicati in precedenza
mentre i clienti avranno il codice fiscale.
Create infine una classe Archivio che dovrà contenere un insieme di clienti, un insieme di
rappresentanti, un insieme di prodotti e un insieme di automobili. La classe archivio avrà un
metodo stampa che consente di stampare il dettaglio di tutti i rappresentanti indicando per
ciascuno di essi nome e cognome, automobile, prodotti rappresentati e clienti.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
Utilizzate le vostre classi in un main dove si creano un oggetto archivio che contiene 2 istanze
di “rappresentante”, 4 di “prodotto” 2 di “automobile” e 4 di “cliente” che vengono stampate
per verificarne la corretta creazione.
Mediante opportuni metodi della classe rappresentante aggiungete a ciascun rappresentante
2 prodotti e due clienti e stampate il dettaglio dell’archivio. Mediante altri metodi della classe
rappresentante rimuovete da ciascun rappresentante un prodotto e un cliente e stampate
nuovamente il dettaglio dell’archivio.
Biblioteca
Scrivere le classi necessarie per la gestione dei prestiti di una biblioteca. Un oggetto della
classe Prestito conterrà le date di inizio e fine nolo (stringhe), un oggetto Utente, uno o due
oggetti Libro e uno o due oggetti Rivista. Si suggerisce di derivare Libro e Rivista da una
classe Articolo che avrà titolo e categoria inizializzati dal costruttore. I libri avranno anche il
nome dell’autore e la casa editrice mentre le riviste avranno un numero e un anno.
Create infine una classe Biblioteca che dovrà contenere un insieme di utenti, un insieme di
libri, un insieme di riviste e un insieme di prestiti. L’oggetto biblioteca avrà un metodo stampa
che consente di scrivere i dettagli di tutti gli utenti indicando per ciascuno di essi nome e
cognome, elenco dei libri in prestito, elenco delle riviste in prestito e numero totale di articoli
in prestito.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
Utilizzate le vostre classi in un main dove si creano un oggetto biblioteca che contiene 2
“utente”, 4 “libri”e 4 “riviste”che vengono stampate per verificarne la corretta creazione.
Create due oggetti prestito per ciascun utente con data di inizio 20/01/04 relativo a qualcuno
degli oggetti libro e/o rivista creati in precedenza e stampate mediante il metodo stampa i
dettagli di tutti gli utenti della biblioteca.
Spedizioni
Scrivere le classi necessarie per la gestione delle spedizioni effettuate da un corriere
espresso. Un oggetto della classe Spedizione conterrà un oggetto Mittente, un oggetto
Destinatario, uno stato di consegna (booleano) e un numero variabile (massimo 5) di istanze
della classe CentroDiSmistamento (caratterizzato da un codice e dal numero di pacchi
transitati). Si suggerisce di derivare Destinatario e Mittente da una classe Persona avente
nome, cognome e indirizzo (stringa) che vengono inizializzati dal costruttore. I mittenti
avranno anche associato il costo delle spedizioni finora effettuate mentre i destinatari avranno
associato un numero di telefono.
Create infine una classe Archivio che dovrà contenere un insieme di mittenti, un insieme di
destinatari, un insieme di centri di smistamento e un insieme di spedizioni. La classe archivio
avrà un metodo stampa che consente di stampare il dettaglio di tutte le spedizioni indicando
per ciascuno di essi mittente, destinatario, stato e centri di smistamento.
Prevedete per ciascuna classe l’overload degli operatori << e >> e tutti i metodi che ritenete
opportuni.
Utilizzate le vostre classi in un main dove si creano un oggetto archivio che contiene 2 istanze
di “mittente”, 4 di “destinatario” e 4 di “centro di smistamento” che vengono stampate per
verificarne la corretta creazione.
Create due oggetti spedizione, utilizzando gli oggetti creati in precedenza, che inizialmente
non hanno alcun centro di smistamento attraversato. Mediante un opportuno metodo fate
passare ciascuna spedizione da due dei centri di smistamento creati in precedenza tenendo
conto che ogni volta che una spedizione passa per un centro dovete aggiornare il numero di
pacchi transitati per quel centro.
Stampate dettaglio di ciascuna spedizione usando il metodo stampa e il numero di pacchi
transitati per ciascun centro.