• Non ci sono risultati.

Progetto di esempio Si scriva un’applicazione Java che implementa il seguente progetto.

N/A
N/A
Protected

Academic year: 2021

Condividi "Progetto di esempio Si scriva un’applicazione Java che implementa il seguente progetto."

Copied!
2
0
0

Testo completo

(1)

Progetto di esempio

Si scriva un’applicazione Java che implementa il seguente progetto.

Descrizione del problema

Si vuol realizzare un’applicazione che gestisca un archivio degli studenti. Uno studente è caratterizzato da nome, cognome, matricola, data di nascita e luogo di nascita.

Funzionalità

L’applicazione dovrà permettere di

− Riempire automaticamente l’archivio con alcuni dati, in modo da poterlo testare

− Inserire e rimuovere uno studente

− Stampare a video tutti gli studenti

− Ricercare gli studenti nati in certo luogo

L’applicazione dovrà possedere un menu che permetta di scegliere fra le varie funzionalità disponibili.

Vincoli da rispettare

Per memorizzare l’insieme degli studenti si dovrà usare una struttura dati di tipo vettore.

(2)

Documentazione

L’applicazione sviluppata è composta da tre classi: Studente, Archivio e Menu.

Studente

Contiene i dati di un singolo studente. Ha dei metodi per rappresentare uno studente attraverso una stringa e per verificare se due studenti sono uguali.

Archivio

Contiene un array di studenti e implementa le funzionalità richieste dal progetto: inserimento e rimozione di uno studente; ricerca di uno studente per luogo di nascita; restituzione di tutti gli studenti. L’inserimento è stato implementato in due metodi diversi che prendono in ingresso un oggetto studente oppure tutti le variabili di uno studente. La rimozione è stata implementata con tre metodi diversi che rimuovono lo studente usando la matricola, la posizione occupata nell’array e l’oggetto studente.

Menu

Visualizza il menu con le funzionalità richieste. Contiene un oggetto archivio che usa per memorizzare i dati. Contiene metodi corrispondenti alle funzionalità offerte più alcuni metodi di utilità (vedi sotto).

Una documentazione più dettagliata sulle classi è disponibile nei documenti javadoc allegati e generati automaticamente con Jbuilder

Osservazioni

• Per quanto riguarda l’allocazione degli studenti nel vettore si è scelto di usare un’allocazione sequenziale con una variante rispetto a quanto visto a lezione. Uno studente può trovarsi in una qualsiasi posizione dell’array, ma si fa in modo che le prime posizioni dell’array siano tutte occupate, cioè non esista mai una posizione vuota seguita da posizioni che contengono studenti.

In pratica, l’inserimento avviene come in una pila: si mantiene una variabile che indica la prima posizione libera e si inserisce lo studente in tale posizione. Per la rimozione, si sposta l’ultimo studente dell’array al posto di quello da rimuovere: in questo modo anche dopo le rimozioni le prime posizioni dell’array rimangono tutte piene. Questa soluzione rende l’inserimento più veloce.

• Nella classe menù alcune operazioni sono eseguite più volte in punti diversi del programma: la scrittura di un messaggio a video, la richiesta di conferma di una operazione, la lettura di una stringa da tastiera. Per rendere il progetto più modulare si è scelto di scrivere tre metodi che implementano tali operazioni e poi richiamarli quando necessario. Inoltre, si è scelto di creare dei metodi anche per operazioni piuttosto lunghe che erano però delle funzioni logicamente unitarie: la stampa del menu, l’esecuzione dell’interfaccia. Questa soluzione rende il codice più facile da leggere.

Riferimenti

Documenti correlati

Pasturs si propone di facilitare il ritorno dei predatori (lupe e orso) con il supporto attivo di giovani volontari, che aiutano i pastori nella gestione delle misure di prevenzione

2. dati di progetto. Schema generale, in cui siano indicate le principali relazioni o connessioni tra i componenti e i dati preliminari dei componenti principali.

La nuova funzione prevede due criteri: uno automatico con la lista di massimo 300 iscritti in ordine alfabetico da usare cicli- camente (in modo da elaborare in più riprese tutti

E che indipendentemente dal modello di intervento terapeutico (psicodinamico, cognitivo comportamentale, sistemico o familiare) è importante la continuità della presa in carico e

Federazioni Sportive o Discipline  Sportive Associate di riferimento  (o relativi Comitati regionali dalle 

Lo sviluppo di tali tematiche ha portato al progressivo riconoscimento della correttezza e della utilità delle attività svolte, creando, presso la struttura di

 Caricare il gioco Break Wall e sfruttare l’accelerometro per muovere la piattaforma.  Migliorare l’interfaccia grafica

- sviluppo di nuove macchine per l’estrazione dei succhi di ficodindia e melograno anche attraverso l’adattamento di macchine già in commercio per la