Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
Esercizi e progetti di programmazione - Apogeo
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ESERCIZI E PROGETTI DI PROGRAMMAZIONE E–9<br />
metodo addInterest (privo <strong>di</strong> parametri espliciti) che aggiunga gli interessi al conto. Scrivete poi<br />
una classe SavingsAccountTester che costruisca uno <strong>di</strong> tali “conti <strong>di</strong> risparmio” con saldo iniziale<br />
<strong>di</strong> $ 1000 e tasso <strong>di</strong> interesse del 10%. Applicate, infi ne, per cinque volte il metodo addInterest,<br />
visualizzando il saldo fi nale e il suo valore previsto, dopo averlo calcolato manualmente.<br />
*** <strong>Esercizi</strong>o P3.4. Dotate la classe CashRegister della capacità <strong>di</strong> calcolare le tasse relative alla<br />
ven<strong>di</strong>ta effettuata, con il tasso <strong>di</strong> interesse fornito al costruttore della classe. Aggiungete i meto<strong>di</strong><br />
recordTaxablePurchase e getTotalTax (quanto viene aggiunto con recordPurchase non è<br />
soggetto a tassazione). Il metodo giveChange deve tener conto in modo corretto delle tasse applicate<br />
agli acquisti soggetti a tassazione.<br />
** <strong>Esercizi</strong>o P3.5. Dopo la chiusura, il gestore del negozio vorrebbe conoscere il volume totale<br />
<strong>di</strong> ven<strong>di</strong>te effettuate nella giornata: mo<strong>di</strong>fi cate la classe CashRegister in modo che lo possa fare,<br />
aggiungendo i meto<strong>di</strong> getSalesTotal e getSalesCount, che restituiscono l’incasso totale e il<br />
numero totale <strong>di</strong> ven<strong>di</strong>te effettuate, oltre al metodo reset che azzera tutto, in modo che le operazioni<br />
funzionino correttamente il giorno successivo.<br />
** <strong>Esercizi</strong>o P3.6. Realizzate una classe Employee (<strong>di</strong>pendente). Ogni <strong>di</strong>pendente ha un nome (una<br />
stringa) e uno stipen<strong>di</strong>o (<strong>di</strong> tipo double). Scrivete un costruttore con due parametri<br />
public Employee(String employeeName, double currentSalary)<br />
e i meto<strong>di</strong><br />
public String getName()<br />
public double getSalary()<br />
public void raiseSalary(double byPercent)<br />
Tali meto<strong>di</strong> forniscono il nome e lo stipen<strong>di</strong>o del <strong>di</strong>pendente e ne aumentano il salario della<br />
percentuale in<strong>di</strong>cata. Ecco un esempio <strong>di</strong> utilizzo:<br />
Employee harry = new Employee(“Hacker, Harry”, 50000);<br />
harry.raiseSalary(10); // Harry ottiene un aumento del 10%<br />
Progettate anche una classe EmployeeTester che collau<strong>di</strong> tutti i meto<strong>di</strong>.<br />
** <strong>Esercizi</strong>o P3.7. Realizzate una classe Car (automobile). Un’automobile è caratterizzata da un<br />
consumo <strong>di</strong> carburante (misurato in miglia/gallone o in litri/chilometro, a vostra scelta) e una<br />
certa quantità <strong>di</strong> carburante nel serbatoio. Il consumo è specifi cato nel costruttore e inizialmente<br />
il serbatoio è vuoto. Progettate: un metodo drive per simulare il percorso <strong>di</strong> un’automobile per<br />
una determinata <strong>di</strong>stanza, riducendo conseguentemente il livello <strong>di</strong> carburante nel suo serbatoio;<br />
un metodo getGasInTank, per ispezionare il livello del carburante; un metodo addGas, per fare<br />
rifornimento. Ecco un esempio <strong>di</strong> utilizzo:<br />
Car myHybrid = new Car(50); // 50 miglia per gallone<br />
myHybrid.addGas(20); // aggiungi 20 galloni <strong>di</strong> carburante<br />
myHybrid.drive(100); // viaggia per 100 miglia<br />
double gasLeft = myHybrid.getGasInTank()); // quantità <strong>di</strong> carburante rimasto<br />
Potete ipotizzare che il metodo drive non venga mai invocato per una <strong>di</strong>stanza maggiore <strong>di</strong> quella<br />
percorribile con il carburante <strong>di</strong>sponibile. Progettate anche una classe CarTester che collau<strong>di</strong> tutti<br />
i meto<strong>di</strong>.<br />
Cay Horstmann: Concetti <strong>di</strong> informatica e fondamenti <strong>di</strong> Java 5 a ed. - Copyright 2010 <strong>Apogeo</strong> srl