#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct cliente
{
char nome[20];
char cognome[20];
int codice;
struct cliente *next;
};
struct stanza
{
int numero;
struct cliente *crea();
struct cliente *inserisci(struct cliente *);
void cerca(struct cliente *);
void visualizza(struct cliente *);
int i=1;
main()
{
int c=-1;
struct cliente *p, *new;
while(c!=0)
{
printf("\nNella lista sono presenti %d clienti",i-1);
printf("\n\n\t1.crea nuovo cliente");
printf("\n\t2.cerca clienti");
printf("\n\t3.visualizza lista clienti");
printf("\n\t4.crea prenotazione");
printf("\n\nDigita la scelta ---->");
scanf("%d",&c);
switch(c)
{
case 1:
if (i==1)
{
p = crea();
i++;
new = p;
break;
}
else
{
new->next=malloc(sizeof(struct cliente));
new = inserisci(new->next);
break;
}
case 2: cerca(p); break;
case 3: visualizza(p); break;
}
}
}
struct cliente * crea(){
struct cliente *p;
p = malloc(sizeof(struct cliente));
printf("\nInserisci nome del cliente ");
scanf("%s", p->nome);
printf("\nInserisci cognome ");
scanf("%s", p->cognome);
p->codice = 1;
printf("\nAl cliente è stato assegnato il codice [1]\n");
p->next=NULL;
return p;
}
struct cliente * inserisci(struct cliente *p){
printf("\nInserisci nome del cliente ");
scanf("%s", p->nome);
printf("\nInserisci cognome ");
scanf("%s", p->cognome);
p->codice = i;
printf("\nAl cliente è stato assegnato il codice [%d]\n",i);
i++;
p->next= NULL;
return p;
}
void cerca(struct cliente *p)
{
int codice;
printf("\ndigita il codice cliente---->");
scanf("%d", &codice);
do
{
if (p->codice==codice)
{
printf("\n\nil codice cliente appartiene a [ %s %s ]",p->nome,p->cognome);
}
}
while ((p = p->next) !=NULL);
}
void visualizza(struct cliente *p)
{
int d=1;
printf("[codice] [nome] [cognome]");
while (p!=NULL)
{
printf("\n [%d] %s %s\n",d,p->nome,p->cognome);
d++;
p = p->next;
}
}