Salve ragazzi avrei bisogno di un aiuto : sto provando a svolgere un esercizio ma niente,non riesco proprio a farlo...mi confondo solo le idee...
La traccia dell'esercizio è la seguente:


Si chiede di realizzare una applicazione multithreaded per la gestione degli utenti in un generico ufficio accettazione. L’applicazione deve consentire di smistare gli utenti in arrivo tra i diversi sportelli in funzione del tipo di prestazione richiesta. L’applicazione è caratterizzata dalla presenza di due moduli:
1. Inserimento dati utente: è utilizzato dall’utente per la selezione del tipo di prestazione e l’inserimento dei propri dati personali (codice fiscale e cognome);
2. Prelievo prossimo utente: è utilizzato dagli operatori agli sportelli dell’ufficio di accettazione e consente di selezionare il prossimo utente da servire in base al tipo di prestazione.
Si realizzi l’applicazione adottando il modello produttore-consumatore in cui i moduli di inserimento dei dati e di prelievo prossimo utente rivestano i ruoli rispettivamente di produttore e di consumatore. Inoltre si suggerisce di realizzare il buffer del modello produttore-consumatore attraverso N code di cui ognuna contiene le richieste dello stesso tipo e non ancora servite (N è ovviamente il numero dei tipi di prestazione).
Si realizzi una interfaccia grafica per ognuno dei due suddetti moduli, in modo che all’avvio della applicazione vengano mostrate e sia possibile accedere ad entrambe per effettuare simultaneamente operazioni di inserimento e prelievo.
Il tipo di prestazione può essere semplicemente un intero.
Si realizzino le seguenti classi:
Utente: contiene le informazioni relative all’utente, quindi codice fiscale e cognome.
Produttore: consente di inserire nel sistema una richiesta di prestazione.
GUIProduttore: interfaccia grafica che consente all’utente della applicazione (il generico utente dell’ufficio) di inserire i propri dati e di passare un messaggio al Produttore per l’inserimento dei dati nel buffer delle richieste.
Consumatore: consente di effettuare il prelievo del prossimo utente da servire in base al tipo di prestazione.
GUIConsumatore: interfaccia grafica che consente all’utente della applicazione (il generico operatore dello sportello) di selezionare il prossimo utente da servire mediante l’invio di un messaggio al Consumatore per il prelievo dei dati dal buffer delle richieste.
Buffer: è la struttura dati che contiene l’insieme delle richieste non ancora evase. La gestione delle richieste deve essere effettuata attraverso una politica FIFO nell’ambito dello stesso tipo di prestazione richiesta. Si suggerisce di realizzare il buffer usando una coda (realizzata in modo da essere thread safe) per ogni tipo di prestazione richiesta.
Gestione: contiene la funzione main attraverso cui è possibile avviare l’applicazione.

Inserire un ritardo di 3 secondi (tramite una sleep) per le operazioni di inserimento e prelievo.



Grazie a chi risponderà! =)