Esercizi del 31/5/05
Transcript
Esercizi del 31/5/05
Cifratura a trasposizione di alfabeto Esercizio 14.2 Esercizio P14.2 Scrivete un programma che Legge da un file di testo, un carattere alla volta Cifra un carattere alla volta, usando un cifrario KeyWord Scrive in un file i caratteri cifrati, uno alla volta Esercizio P14.2 Il KeyWordCipher usa come chiave una stringa: Elimina le lettere duplicate dalla chiave Chiave: VISIT Æ VIST Accoda le altre lettere dell’alfabeto Effettua la sostituzione carattere per carattere N E X T plaintext ciphertext A B C D E F G H I J K L M V I S T A B C D E F G H J K N O L P Q R S T U V W X Y Z M N O P Q R U W X Y Z K A X Q Esercizio P14.2 Scriviamo un programma Crypt che testa la classe precedente Legge da riga di comando L’opzione –d per decifrare L’opzione –kCHIAVE Il nome del file da cifrare Il nome del file di ouput (cifrato) Esempio: java Crypt –kVISIT input.txt encrypted.txt java Crypt –d –kVISIT encrypted.txt decrypted.txt Esercizio 14.2 Soluzione la prossima settimana… Esame del 2 settembre 2004 Gestione contratti telefonici Gestione contratti telefonici Definire la classe ContrattoTelefonico che specifica un tipo di contratto telefonico caratterizzato da intestatario e numero telefonico e che fornisce i seguenti metodi: il costruttore ContrattoTelefonico(String intestatario, String numeroTel) stampaDati() che stampa i dati del contratto telefonico getCostoMedio(int numMinCostosi, int numMinEconomici), che restituisce il costo medio per minuto di una telefonata. Gli argomenti numMinCostosi e numMinEconomici specificano rispettivamente il numero di minuti di conversazione nella fascia costosa ed economica. Gestione contratti telefonici (2) Definire tre sottoclassi 24Ore, Weekend, e Serale. Il contratto 24Ore non ha scatto alla risposta e il costo al minuto è di 25 centesimi. Per il contratto Weekend il costo dello scatto alla risposta è di 10 centesimi e il costo al minuto è di 30 centesimi dal lunedì al venerdì (fascia costosa) e 15 centesimi nel weekend (fascia economica). Per il contratto Serale il costo dello scatto alla risposta è di 10 centesimi e il costo al minuto dalle 8:00 alle 18:00 è di 45 centesimi (fascia costosa), e dalle 18:00 alle 8:00 è di 15 centesimi (fascia economica). Gestione contratti telefonici (3) Definire la classe ElencoContratti che rappresenta l’elenco di contratti stipulati da una compagnia telefonica e che fornisce i seguenti metodi: Un costruttore che crea un elenco vuoto addContratto(ContrattoTelefonico c) che inserisce un contratto nell’elenco getIntestatari(char init), che restituisce un ArrayList di tutti i contratti i cui intestatari hanno un nome che inizia con il carattere init. Testiamo le classi… Scrivere un programma di test, che crea un oggetto della classe ElencoContratti e lo riempie con 10 contratti i cui identificativi e numeri telefonici sono specificati da tastiera. Infine, il programma deve stampare i dati di tutti i contratti i cui intestatari hanno un nome che inizia con la lettera A. Modifichiamo il codice per… Poter cercare tutti gli intestatari di un ContrattoTelefonico il cui nome cominci per una stringa init L’applicazione di Test: permette di cercare intestatari il cui nome cominci per una qualsiasi stringa Procedura di inserimento che termini con input -1 da tastiera Salvare in un file l’elenco degli abbonati della compagnia telefonica Soluzioni per rendere non abstract il metodo getCostoMedio nella classe ContrattoTelefonico