14/07/12 11:28
mamflo
#include <stdio.h> #include <string.h> #include <malloc.h> struct cliente { char nome[20]; char cognome[20]; int codice; struct cliente *next; }; struct cliente *crea(); struct cliente *inserisci(struct cliente *); int i=1; main() { int c=-1; struct cliente *primo, *new; while(c!=0) { printf("\n\t1.crea nuovo cliente"); printf("\n\t2.visualizza lista clienti"); scanf("%d",&c); switch(c) { case 1: if (i==1) { primo = crea(); i++; new = primo; break; } else { new->next=malloc(sizeof(struct cliente)); new = inserisci(new->next); break; } /*case 2: visualizza(); break;*/ } } } struct *cliente crea(){ /*linea incriminata*/ struct cliente *p; p = malloc(sizeof(struct cliente); printf("\nInserisci nome del cliente"); scanf("%s", p->nome); printf("\nInserisci cognome"); scanf("%s", p->cognome); printf("\nInserisci codice cliente (0-9999)"); scanf("%d", &p->codice); p->next= NULL; return p; } struct *cliente inserisci(struct cliente *p){ /*linea incriminata*/ printf("\nInserisci nome del cliente"); scanf("%s", p->nome); printf("\nInserisci cognome"); scanf("%s", p->cognome); printf("\nInserisci codice cliente (0-9999)"); scanf("%d", &p->codice); p->next= NULL; return p; }
mi da errori sulla riga delle funzioni crea e inserisci
:48:8:error: expected ‘{’ before ‘*’ token
:66:8: error: expected ‘{’ before ‘*’ token
non capisco il perchè dovrebbe esserci una parentesi prima del '*'
aaa
15/07/12 15:25
mamflo
#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; } }
con questa porzione di programma ho creato la lista clienti identificati da un numero codice unico assegnato ad ogni cliente, adesso dovrei creare una funzione per la prenotazione di una stanza nell'albergo con una data di arrivo e una di partenza, avevo pensato ad una coda di stanze di albergo che mi avvisa su quante stanze ci sono libere per una determinata data come potrei fare?
aaa