PROGRAMMAZIONE A MODULI 


/******************************
ESERCIZIO 1.

--------------- MODULO SERVER

Scrivere un programma che gestisce l'iscrizione degli atleti ad una gara.
Alla gara possono iscriversi al piu' 10 atleti.

Modellare un atleta con una struttura che contiene
una stringa di dimensione massima 31 e un numero di pettorale:

struct Atleta{
	char nome[32]; //nome dell'atleta (scritto nella forma nome.cognome)
	int pettorale; //numero di pettorale dell'atleta
};

Assumere che i nomi degli atleti siano univoci.

Modellare la tabella di iscrizione con una struttura che contiene
un vettore di atleti di dimensione massima 10, e con un intero
che tiene conto di quanti atleti sono iscritti alla gara:

const int MAX = 10;

struct Tabella{
	Atleta vettore[MAX];
	int quanti;
};


Realizzare le seguenti funzioni:

	- Inizializza: inizializza la tabella. Inizialmente la tabella e' vuota.

	- Visualizza: visualizza nome e numero degli atleti contenuti nella tabella.

	- Aggiungi: aggiunge un nome e il corrispondente numero assegnato.
	  Se il nome e' gia' presente nella tabella, non viene effettuato l'inserimento.
	  Se il pettorale e' gia' presente nella tabella, non viene effettuato l'inserimento.
	  Se la tabella e' piena, non viene effettuato l'inserimento.

	
Dichiarazioni delle funzioni:

	    void init(Tabella& tab);
	    void visualizza(const Tabella& tab);
	    bool aggiungi(Tabella& tab, const char* nome, int pettorale);


Definire  opportunamente  i due file 

         Iscrizioni.h   e        Iscrizioni.cpp



------------- MODULO CLIENT


Scrivere un semplice main che 

1) utilizza il servizio iscrizione
2) inserisce nella classifica i seguenti atleti con rispettivo numero di pettorale:

mario.rossi 3
sergio.bianchi 5
maria.verdi 2

3) visualizza gli atleti inseriti nella classifica. 

******************************/
	



/******************************

ESERCIZIO 2.
Realizzare lo stesso esercizio precedente utilizzando le classi.


---------- MODULO SERVER 

Modellare la tabella di iscrizione con una classe che contiene
un vettore di atleti di dimensione massima 10, e con un intero
che tiene conto di quanti atleti sono iscritti alla gara.



Definire  opportunamente  i due file 

         Tabella.h   e        Tabella.cpp


FILE  Tabella.h -----

const int MAX = 10;

class Tabella{
	Atleta vettore[MAX];
	int quanti;
public: 
    void init();
    void visualizza();
    bool aggiungi(const char* nome, int pettorale);
};

FILE Tabella.cpp -------

Tabella.cpp


void Tabella::init() { ...} 
void Tabella::visualizza(){....}
bool Tabella::aggiungi(const char* nome, int pettorale) {....}



------------- MODULO CLIENT


Scrivere un semplice main che 

1) utilizza il servizio iscrizione
2) inserisce nella classifica i seguenti atleti con rispettivo numero di pettorale:

mario.rossi 3
sergio.bianchi 5
maria.verdi 2

3) visualizza gli atleti inseriti nella classifica. 

******************************/
	


/******************************
Estensione:

Implementare le funzioni 
	- Elimina: elimina un atleta dalla tabella. L'atleta viene eliminato
	  solo se presente nella tabella.
		
	 
	  	Il vettore che elenca gli atleti deve essere mantenuto compatto:
	      	gli atleti devono essere memorizzati nella parte iniziale del vettore.
          	Per eliminare un atleta dalla tabella posso sovrascrivere il suo nome
	      	e pettorale con quelli di un altro atleta (ad esempio, con l'ultimo elencato
	      	nella tabella)


	- Cerca: cerca un nome all'interno della tabella. Se il nome viene trovato,
	  la funzione restituisce il numero di pettorale; altrimenti restituisce -1.
		


*******************************/


