Note di rilascio della versione 1.0
Premessa
Il programma proposto UBC è un programma che permette la conversione da una base A a una qualsiasi base B.
Il team, per non dare un limite di calcolabilità al programma, ha ideato di sviluppare un metodo che sostituisce i simbolo (".","@","#"), che mettevano solo in discussione il funzionamento corretto della macchina, con delle seguenza di numeri.
Es: Il numero "548" in una base x può andre rappresentare il carattere "6".
Esso permette all'utente di esercitarsi con una sezione apposita del programma, suddivisa con 3 livelli di difficoltà: facile, medio, difficile.
Nella schermata principale del programma : L'utente, grazie ad un'interfaccia semplice, potrà scegliere se effettuare la conversione di un numero o entrare nella sezione del programma dicata alla esercitazione.
Nella sezione dedicata alla conversione, vi sono presenti i seguenti pulsanti:
-
Permette, dopo aver inserito i valori nelle adeguate caselle di testo, di effettuare la conversione, il risultato della conversione sara' presente al di sotto del pulsante.
-
Azzera tutte le caselle di testo.
-
Al di sotto della casella di testo è presente il suddetto pulsate, che permette di eseguire passo passo la conversione.
Architettura del software
Il programma e' strutturato in sei classi: Convertitore, Esercitazione, Finestra, Gestore Finestra, Converti, Pop_up,Leggi file e Lingua
La classe Convertitore contiene le fuzioni che permettono la conversione dei valori.
La classe Finestra contiene l'interfaccia grafica del programma, dentro questa classe viene utilizzare la classe Gestore Finestra, Lingua e la classe Pop_up che viene chiamata quando si vuole richiamare una "Message Box".
La classe Esercitazione contiene: l'implementazione della parte grafica della suddetta area del programma, viene utilizzata la classe converti e la classe lingua.
Gestore Finestra contiene i metodi per l'attivazione dei vari pulsati nelle varie finestre, che permettono di: chiude, ridurre ad icone ed ingrandire la finestra.
La classe Pop_up permette di creare una piccola finestra con all'interno un messaggio, viene utilizzata per la comunicazione di errori all'utente e per dare un esito positivo o negativo quando l'utente utilizza il programma per esercitarsi.
Lingua permette al programma di covertire, su scelta dell'utente, il programma nelle seguente lingue: Italiano,Inglese e spagnolo.
La classe Converti contine i diversi metodi per effuttuare la conversione e viene utilizzat sia nella classe finestra e nella classe esercitazione.
Esercitazione permette all'utente di esercitarsi in 3 diverse diffcioltà, al click della difficoltà scelta genera pseudo casualmente dei numeri (controllando che la base iniziale sia diversa dalla finale e che e singole cifre siano più piccole o uguali della base iniziale). L'utente deve inserire il risulato nella casella di testo "Inserisci risultato" e alla pressione del tasto invio viene avviato un Pop_up che indica se il risultato è corretto o meno.
Alla pressione del tasto consiglio viene visualizzato un pop_ip con all'interno i passi he deve svolgere l'utente per arrivare alla soluzone.
Alla pressione del tasto "AIUTO" viene visualizzata la cifra corretta meno significativa, ad ogni click successivo del pulsante "AIUTO" viene visualizzata la cifra seguente corretta fino ad arrivare alla soluzione finale.
Reset resetta tutte le caselle di testa.
La classe LeggiFile, legge il file lingua scelto nella prima finestra all'avvio del programma e dopo che l'utente ha selezionato la lingua viene caricato il file .txt, dentro un vettore di stringhe.
I singoli elementi del vettore corrispondono alle varie etichette del programma.
La classe Linguaggio crea un oggetto della classe LeggiFile, e in base alla lingua scelta viene caricato il file apposito.
Tecniche di programmazione
Per effettuare la conversione di un dato numero l'utente da prima deve inserire i vari dati nella caselle di testo, fatto questo l'utente può scegliere se convertire il numero direttamente tramite il pulsante "INVIO" o eseguire passo passo la conversione.
Il tasto "INVIO" esegue le seguenti operazioni:
1- Trasforma la stringa contenuta nella casella di testo inserisci in un vettore di int così da permettere di effettuare le varie operazioni, se presenti caratteri non ammessi viene visualizzato un messaggio di errore tramite la classe Pop_up;
2- Controlla che nel vettore non siano presenti numeri maggiore della base iniziale, se si verifica questa condizione viene eseguito un messaggio d'errore e la conversione non viene eseguita;
3- Converte il contenuto del vettore in base 10;
4- Successivamente converte il numero in base 10 nella base finale e viene salvato in un nuovo vettore;
5- Converte il vettore appena creato in una stringa così d permette di inserirlo nella casella di testo "Risulato";
Il Tasto "AVANTI" esegue le seguenti operazioni:
- Analogamente al tasto "INVIO" esegue i suddetti punti 1,2,3 inoltre;
- Visualizza nella casella di testo la conversione in base 10 cifra a cifra, dal numero più significativo al numero meno significativo moltiplicato per 10 e elevato alla posizione della cifra (partendo da quella più significativa);
- Successivamente passo passo viene visualizzato a video la divisione tra la cifra in base 10 e la base finale, il resto della divisione viene inserita nella casella "Risulato finale" e alla fine viene così mostrato il numero convertito;
Il tasto "RESET" cancella tutte le caselle di testo.
UML
Metodi contenuti in Convertitore
- ConvertiInizializza gli attributi a 0.
- Converti(Int,Int)Inizializza gli attributi con i valori passati per copia.
- Base 10Converte il vettore "String_Input" in base 10.
- Base 10(Int[]) Converte il vettore passato per copia in base 10.
Metodi contenuti in Converti
- Esegui Conversione Converte il numero da base 10 alla base finale e il risultato viene visualizzato nella casella di testo risultato.
- Esegui Conversione Converte il numero da base 10 alla base finale il metodo viene usato nella classe esercitazione e ritorna il numero convertito il stringa.
- Controllo base Controlla che ogni singola cifra non sia più grande della base iniziale.
- Compatta(String) Converte in cifre intere la stringa passat per copia e vegono copiato nel vettore "string_Input".
Metodi contenuti in Finestra
- Finestra(Converti) Costruisce l'interfaccia grafica e vengono attivati i gestori degli eventi per i bottoni.
- actionPerformed(ActionEvent) Il metodo viene richiamato alla pressione di un bottone.
- Simulazione Viene richiamato alla pressione del pulsante "AVANTI" ed esegue le varie operazioni sopra citate.
Metodi contenuti in Esercitazione
- Esercitazione Costruisce l'interfaccia grafica e vengono attivati i gestori degli eventi per i bottoni.
- actionPerformed(ActionEvent) Il metodo viene richiamato alla pressione di un bottone.
- Generaf(int) Genera i numeri casuali contenuti nella caselle di testo("Numero da convertire", "Base iniziale", "Base Finale") in base alla difficoltà scelta, contenuta nella variabile passata per copia.
- autof Richiama il metodo simulazione.
- Base 10Converte il vettore "String_Input" in base 10.
- consigliof Crea il pop_up con il contenuto sopra citato.
- inviofConverte il numero generato casualmente nella base finale e avvisa l'utente il risultato se è corretto o sbagliato.
- resetf Resetta la casella di testo "Inserisci risulato".
- simulazione Crea la cifra di aiuto sopra citata.
Metodi contenuti in LeggiFile
- LeggiFile(string) inizializza i vari attributi dell'oggetto, in particolare asseggna la lingua passata nel parametro per valore.
- Leggi Ritorna come parametro un vettore di stringhe contenente le varie traduzioni.
Possibili miglioramenti futuri
1. Implementazione di un migliore grafica più user-friendly.
2. Possibilità di implementare una calcolatrice.
3 Implementare il segente programma per dispositivi mobile (smartphone, tablet).