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