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.