#include<stdio.h>
#include<string.h>
#include<stdlib.h>
const int MaxContatti=100;
/*definisco dei vettori di caratteri che serviranno per inserire il nome e il cognome nella struct*/
typedef char strin15[16];
typedef char strin10[11];
typedef struct TContatto
{
strin15 Nome;
strin15 Cognome;
strin10 Telefono;
} Tcontatto;
/*defifinizione di un vettore di struct*/
typedef TContatto VettoreContatti[MaxContatti];
/*definizione dei prototipi delle procedure*/
void Inizializza(int i,VettoreContatti Rubrica);
void VisualizzaRubrica(int i, VettoreContatti Rubrica);
void AggiungiContatto(int i, char scelta, VettoreContatti Rubrica);
void RimuoviContatto(int i, VettoreContatti Rubrica);
/*programma principale*/
int main()
{
VettoreContatti Rubrica; /* variabile per accedere all'array di struct */
int i,scelta;
Inizializza(i, Rubrica); /* Pulisce i campi " nome, cognome telefono " */
printf (" #######################\n");
printf (" # RUBRICA #\n");
printf (" #######################\n\n");
printf (" 0) ESCI\n\n");
printf (" 1) VISUALIZZA RUBRICA\n\n");
printf (" 2) AGGIUNGI CONTATTO\n\n");
printf (" 3) RIMUOVI CONTATTO\n\n");
printf (" la tua scelta > ");
scanf ("%d", &scelta);
if (scelta==0)
{
return 0;
}
else if (scelta==1)
{
VisualizzaRubrica(i, Rubrica);
}
else if (scelta==2)
{
AggiungiContatto(i,scelta,Rubrica);
}
else if (scelta==3)
{
RimuoviContatto(i,Rubrica);
}
}
/*pulisce Nome, Cognome e Telefono*/
void Inizializza(int i, VettoreContatti Rubrica)
{
for(i=0; i<MaxContatti; i++)
{
strcpy(Rubrica[i].Nome," ");
strcpy(Rubrica[i].Cognome," ");
strcpy(Rubrica[i].Telefono," ");
}
};
/*Stampa a video i contatti*/
void VisualizzaRubrica(int i, VettoreContatti Rubrica)
{
for(i=0; i<MaxContatti;i++)
{
printf("Dati del %d utente: \n",i+1);
printf("Nome: %s\n", Rubrica[i].Nome);
printf("Cognome: %s\n", Rubrica[i].Cognome);
printf("Telefono: %s\n", Rubrica[i].Telefono);
system("PAUSE");
}
}
/*Inserisce contatto (nome,cognome,telefono nella struttura*/
void AggiungiContatto(int i, char scelta, VettoreContatti Rubrica)
{
do {
printf("inserisci il nome: ");
gets(Rubrica[i].Nome);
printf("Inserisci il cognome: ");
gets(Rubrica[i].Cognome);
printf("Inserisci il numero di telefono");
scanf("%sRubrica.Telefono");
i++;
}while (i<MaxContatti);
}
/*Dati nome e cognome trova il contatto e lo cancella, lasciando lo "spazio" */
void RimuoviContatto(int i, VettoreContatti Rubrica)
{
char nome[16],cognome[16];
bool trovato=false;
for (i=0;i<MaxContatti;i++)
{
if ((Rubrica[i].Nome == nome) && (Rubrica[i].Cognome == cognome))
{
strcpy(Rubrica[i].Nome," ");
strcpy(Rubrica[i].Cognome," ");
strcpy(Rubrica[i].Telefono," ");
trovato=true;
}
else if (!trovato)
{
printf("Il contatto non esiste");
}
}
}