Esercizi del 6/4/05

Transcript

Esercizi del 6/4/05
Esercizi 5
Esercizio P7.1 e P7.17
Implementare le classi:
q Purse:
n
n
q
Coin:
n
n
q
addCoin(Coin)
getTotal()
getValue()
getName()
Mettere le classi in un pacchetto
“it.unisa.lp2.money” e testare le classi con una
classe di collaudo MoneyTest del pacchetto di
default
1
Esercizio P7.2
n
Implementare e testare la classe ContoCorrente
(pacchetto “money”)
q
deposita(double importo)
n
q
preleva(double importo)
n
q
q
n
n
pre-condizione importo >= 0
pre-condizione importo <= saldo
restituisciSaldo()
restituisciNumeroConto()
Ogni conto corrente ha un numero progressivo che
lo identifica, restituito da restituisciNumeroConto()
Quando la pre-condizione viene violata lanciare
IllegalArgumentException (pacchetto java.lang)
Codici a barre
pesi
n
Codifica a barre per
cifre decimali
q
q
q
Barra intera = bit 1
Barra a metà = bit 0
Ogni cifra codificata
con 5 bit di cui due
sono 1
Eccetto per 0 valore
cifra = somma pesi
per bit del codice
1
7
0
4
0
2
0
1
1
0
1
2
3
4
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
5
6
7
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
8
9
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
2
Codici a barre
n
n
n
n
n
Ogni cifra è sostituita con il codice corrispondente
Si aggiunge una cifra di controllo in modo che la
somma totale (cifre del numero + cifra di controllo) sia
un multiplo di 10
Alla sequenza a barre ottenuta si aggiunge una barra
piena all’inizio e una alla fine
Codifica usata per il CAP
Es. 84081
(8+4+0+8+1) = 21 cifra controllo = 9
| |::|:
8
:|::|
4
||::: |::|: :::|| |:|:: |
0
8
1
9
Esercizio P7.11
n
n
Scrivere e testare un programma che riceve
in ingresso un intero e stampa il codice a
barre corrispondente
Utilizzare classi:
q
BarCode contiene:
n
n
q
Variabile istanza di tipo int
Metodo getCode() che restituisce codice a barre
corrispondente al contenuto della variabile istanza
Digit contiene:
n
n
Variabile istanza di tipo int per contenere singola cifra
Metodo getCode() che restituisce la codifica della cifra
3
Esercizio P7.13
n
n
Scrivere e testare un programma che riceve in
ingresso un codice a barre per numeri a 5 cifre e
stampa il numero corrispondente se il codice è
corretto. Se il codice non è corretto stampa un
messaggio di errore.
Utilizzare classi:
q
BarCodeInverso contiene:
n
n
q
Variabile istanza di tipo String che contiene il codice
Metodo getCode() che restituisce il numero corrispondente al
codice a barre contenuto nella variabile istanza
DigitInverso contiene:
n
n
Variabile istanza di tipo String
Metodo getCode() che restituisce l’intero corrispondente alla
cifra rappresentata nella variabile istanza. Lancia
un’eccezione se la codifica è errata
4