Esercizi programmazione ad oggetti in C++

Seguono alcuni esercizi di programmazione ad oggetti,

ESERCIZI DI BASE

ESERCIZIO TELEVISIONE

Creare una classe Televisione sapendo che lo stato di una televisione è caratterizzato dal fatto di essere accesa o spenta, dal volume (che è compreso tra zero e 10), dal canale (che è compreso tra 0 e 99) e dal fatto che sia in modalità silenzioso o meno.

Creare un opportuno costruttore, e iseguenti metodi: pulasanterosso(), canaleSuccessivo(), canalePrecedente(), aumentaVolume(), abbassaVolume(), impostaCanale(int c), print(), pulsanteSilenzioso().
Si rendano esplicitino le scelte implementative fatte nei commenti all’inizio del codice.
Testare la classe con un opportuno main.

Si rispettino i dettami della programmazione orientata agli oggetti con gli attributi privati e i metodi pubblici

ESERCIZIO ANFORE (sviluppo di una classe e utilizzo di una classe)

Scrivere un programma che un main e la classe Indovinello permetta di affrontare il famoso indovinello delle due anfore (presente anche nel film Die Hard) .
L’indovinello è il seguente: Si hanno due anfore, una può contenere al massimo 5 litri d’acqua, l’altra 3 litri.Si vuole riuscire a misurare con l’ausilio delle due anfore (e senza l’ausilio di altri strumenti) la quantità di 4 litri d’acqua, come si può fare?

Il main permetterà all’utente di simulare le azioni che si possono fare con le due anfore;il main consisterà in un ciclo che visualizzerà un menu e farà scegliere all’utente che azione fare tra quelle a disposizione.
Le azioni saranno quelle messe a disposizione dalla classe Indovinello, ovvero:
svuotare o riempire completamente un’anfora, svuotare un’anfora nell’altra, sapere lo stato delle anfore, sapere se un’anfora sia vuota o piena.
Quando l’anfora da 5 litri conterrà esattamente 4 litri il main dirà all’utente che ha vinto e terminerà il programma.

Realizzare quindi la classe Indovinello il main.

ESERCIZIO BANCA
Esercizio per simulare il comportamento di una banca, dei conti correnti e delle operazioni.
Necessario saper lavorare con le classi e gli array.
Disponibile al link esercizio banca con la programmazione ad oggetti.

ESERCIZIO SQUADRA
Creare una classe Squadra che rappresenta una squadra di calcio e ha come attributi il numero di partite vinte, il numero di partite perse e il numero di partite pareggiate.
Ha opportuni metodi per impostare i parametri e farli visualizzare, inoltre ha il metodo punti() che restituisce quanti punti ha in campionato (ogni partita vinta vale 3 punti, ogni partita pareggiata 1, quelle perse 0) e un metodo inizioanno() che resetta il numero di partite vinte, pareggiate e perse portandole a zero.Creare un main per provare la classe creando due istanze Juventus e Milan e si provino ad utilizzare facendo inserire all’utente per entrambe le squadre il numero di partite vinte, perse e pareggiate e poi confrontando quale delle due ha più punti in campionato. NB: si sviluppi usando il paradigma della programmazione ad oggetti ed in particolare rispettando l’information hiding: parametri privati, metodi pubblici.

ESERCIZI SU POLIMORFISMO E EREDITARIETÀ

  1. EREDITARIETA’ E POLIMORFISMO (overriding)
    Creare una classe Scatola con gli opportuni attributi e metodi, per ogni scatola bisognerà memorizzare la dimensione dei lati e il suo peso, si potrà poi avere a disposizione le caratteristiche della scatola, ovvero le dimensioni dei lati, l’area della base, il volume, il peso, la densità media.
    Creare la classe Giocoinscatola in cui andranno memorizzate oltre alle informazioni della scatola anche il numero di giocatori e il nome del gioco.
    Si crei inoltre per entrambe le classi un metodo print() che permette di stampare a schermo i valori degli attributi dell’istanza sul quale è richiamato.
    Testare le classi con un opportuno main.
    Tra le prove, far inserire le informazioni di due giochi da tastiera e poi dire quali tra i due ha il rapporto volume/numero di giocatori maggiore.
  2. METODI – POLIMORFISMO (overloading)
    Creare una classe Portamonete in cui memorizzare quante monete da 50 cent 1 euro o 2 euro si hanno.
    Creare il metodo inserisci(double valore) che riceve il valore di una moneta e se è un valore ammissibile aumenta il numero di monete di quel tipo,
    creare un altro metodo inserisci(double valore,int n) che permette di inserire più monete di uno stesso tipo (n) in una volta sola.
    Ccreare un metoto denaro() che restituisce quanto denaro in totale si ha nel portamonete
    creare un metodo denaropertipo() che scrive per a schermo quante monete di ogni taglio sono presenti.
    Creare un costruttore standard che porta tutte le monete a zero, creare un altro costruttore che riceve il numero di monete da 50 cent, da 1 euro e da 2 euro.
  3. EREDITARIETÀ E POLIMORFISMO (overriding)
    Creare una classe Portafoglio che estende la classe Portamonete dell’esercizio 2 e che permette di memorizzare anche banconote da 5, 10 e 20 euro.
    La classe ha gli stessi metodi della classe Portamonete opportunamente rivisti: permettono di inserire anche banconote e le conteggiano tra il denaro memorizzato.
    Inoltre ha un metodo banconote() che dice il valore delle banconote inserite.

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...