Oppure

Loading
13/07/12 13:58
mamflo
dovrei implementare un programma che faccia l'anagrafica di un albergo con liste e code per la prenotazione, partendo dal fatto che so usare sia le liste che le code che le strutture non ho ben capito cosa sarebbe l'anagrafica di un hotel:-|:-|. Avete qualche spunto per iniziare? non pretendo il codice un aiuto per capire la logica da dove iniziare.

vi ringrazio
aaa
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
14/07/12 11:52
mamflo
scusate ho risolto avevo messo '*' nel posto sbagliato:-|:-|
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