Costruire la classe TemporaryFile che implementi
Suggerimento 1: generate una serie di nomi di file tramite una regola e di volta in volta provate ad aprire i file in lettura. Utilizzate al contrario l'eccezione FileNotFoundException: quando questa viene lanciata, il nome generato è corretto.
Suggerimento 2: per generare la serie di nomi basta una semplice regola. Ad esempio basta aggiungere ogni volta un determinato carattere al prefisso di partenza: se questo vale "ciao", basterà verificare se esiste un file di nome "ciao"; se questo non esiste il metodo ritornerà "ciao", altrimenti verificherà se esiste un file di nome "ciao1", eventualmente continuando a considerare "ciao11", "ciao111" e così via.
Suggerimento 3: i più intraprendenti possono confrontarsi con una variante di questo esercizio in cui i nomi dei file vengono generati aggiungendo simboli di un alfabeto prefissato. Ad esempio, se il prefisso è pari a "ciao" e l'alfabeto è pari a "aeiou", i nomi da generare saranno "ciao", "ciaoa", "ciaoe", "ciaoi", "ciaou", "ciaoaa", "ciaoae" e così via.
A lezione abbiamo visto la classe SecondoGrado che, letti in input tre valori a, b e c che descrivono un'equazione di secondo grado espressa nella forma a·x²+b·x+c=0, calcola e stampa le relative radici, nel caso queste siano reali.
Modificare la classe SecondoGrado in modo che quando le radici dell'equazione sono complesse emetta un'eccezione della classe ArithmeticException, che viene gestita in modo da calcolare e stampare le radici complesse.
Realizzare la classe CorpoCeleste, contenente:
Realizzare poi la classe CentroControllo, contenente
la variabile di istanza soglia, di tipo double, che indica la soglia minima per una forza che caratterizza il comportamento di un corpo celeste come anomalo
il costruttore CentroControllo(double) il cui argomento indica il valore per la variabile di istanza soglia
il metodo boolean controlla(CorpoCeleste) che ritorna true se la forza tra il corpo celeste passato come argomento e la Terra è maggiore del valore contenuto nella variabile di istanza soglia e false altrimenti
il metodo main() che
- legge da tastiera una serie di coppie di valori (massa, distanza) e istanzia il corrispondente oggetto della classe CorpoCeleste (gestendo l'eccezione InvalidDataException emettendo un opportuno messaggio di errore e chiedendo nuovamente all'utente di immettere i valori per istanziare la classe CorpoCeleste)
- verifica se il corpo ha un comportamento anomalo oppure no e lo comunica all'utente tramite un messaggio opportuno stampato a video
Attenzione: non è richiesto di gestire in modo particolare la terminazione della sequenza di input. Teoricamente il programma può continuare indefinitamente la sua esecuzione.