Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
ESERCIZI E PROGETTI DI PROGRAMMAZIONE E–13<br />
**G <strong>Esercizi</strong>o P3.22. Costruite un grafi co a barre per rappresentare i dati seguenti:<br />
Nome del ponte Campata massima<br />
(in pie<strong>di</strong>)<br />
Golden Gate 4200<br />
Brooklyn 1595<br />
Delaware Memorial 2150<br />
Mackinac 3800<br />
Disponete le barre orizzontalmente, per facilitare l’inserimento delle etichette in corrispondenza<br />
<strong>di</strong> ciascuna barra, e progettate le classi BarChartViewer e BarChartComponent.<br />
Progetti <strong>di</strong> <strong>programmazione</strong><br />
Progetto 3.1. Con questo progetto migliorerete la classe BankAccount e vedrete come<br />
l’astrazione e l’incapsulamento possano portare un cambiamento rivoluzionario nel mondo<br />
del software.<br />
Iniziate con un miglioramento molto semplice: addebitate una commissione per ogni versamento<br />
e per ogni prelievo. Consentite l’impostazione del valore della commissione e mo<strong>di</strong>fi cate i<br />
meto<strong>di</strong> deposit e withdraw in modo che venga applicata tale commissione. Collaudate la classe<br />
risultante e verifi cate che i costi delle commissioni vengano gestiti correttamente.<br />
Fate ora una mo<strong>di</strong>fi ca più complessa. La banca consentirà ogni mese un numero fi sso <strong>di</strong><br />
operazioni gratuite (versamenti o prelievi) e applicherà la commissione soltanto alle operazioni<br />
eccedenti. Le commissioni non vengono prelevate all’atto della singola operazione, ma al termine<br />
<strong>di</strong> ogni mese.<br />
Progettate e realizzate un nuovo metodo per la classe BankAccount, deductMonthlyCharge,<br />
che sottragga al saldo del conto le commissioni del mese appena trascorso, azzerando il conteggio<br />
delle operazioni. Suggerimento: usate il metodo Math.max(effettuate, gratuite).<br />
Scrivete un programma <strong>di</strong> collaudo che verifi chi la correttezza del funzionamento della classe<br />
simulando operazioni per alcuni mesi.<br />
Progetto 3.2. Con questo progetto realizzerete un’alternativa orientata agli oggetti per il programma<br />
“Hello, World!” che avete visto nel Capitolo 1.<br />
Iniziate con una semplice classe Greeter dotata <strong>di</strong> un solo metodo, sayHello, che deve restituire<br />
una stringa, senza visualizzarla. Usate BlueJ per creare due oggetti <strong>di</strong> tale classe, invocandone<br />
i relativi meto<strong>di</strong> sayHello.<br />
Ovviamente si tratta <strong>di</strong> un’attività alquanto noiosa, dal momento che entrambi gli oggetti<br />
generano il medesimo saluto.<br />
Migliorate la classe Greeter in modo che ciascun oggetto produca un saluto personalizzabile.<br />
Ad esempio, l’oggetto costruito con new Greeter(“Dave”) dovrebbe <strong>di</strong>re “Hello, Dave!” (usate<br />
il metodo concat per unire due stringhe in modo da formare una stringa più lunga, oppure date<br />
un’occhiata al Paragrafo 4.6 per vedere come si possa usare l’operatore + per ottenere lo stesso<br />
risultato).<br />
Cay Horstmann: Concetti <strong>di</strong> informatica e fondamenti <strong>di</strong> Java 5 a ed. - Copyright 2010 <strong>Apogeo</strong> srl