Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    17

    [c]gestire prenotazioni per una lista clienti

    codice:
    #include <stdio.h>
    #include <string.h>
    #include <malloc.h>
    
    struct cliente
    {
    char nome[20];
    char cognome[20];
    int codice;
    struct cliente *next;
    };
    
    
    int numero;
    struct cliente *crea();
    struct cliente *inserisci(struct cliente *);
    void cerca(struct cliente *);
    void visualizza(struct cliente *);
    void prenotazione();
    
    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;
    		case 4: prenotazione(); 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;
    	}
    }
    void prenotazione()
    {
    int sel;
    	
    printf("\nIl cliente che vuole prenotare e' gia' nella lista clienti?");
    printf("\n1.si");
    printf("\n2.no");
    scanf("%d",&sel);
    
    	switch(sel)
    		{
    		case 1: break;
    		case 2: printf("\nBisogna immettere i dati del cliente prima");	break;
    		default : printf("\nscelta non valida"); break;
    		}
    }
    salve ragazzi come da titolo dovrei creare delle funzioni per gestire delle prenotazioni in un albergo, di una lista clienti.
    Non mi viene in mente come potrei gestire le prenotazione per una determinata data, cioè aggiungo la prenotazione per una data e non permetto di fare la prenotazione se la stanza è già occupata per quei giorni. Non cerco righe di codice in se, solo una soluzione logica su come gestire le date occupate da quelle no. grazie in anticipo e complimenti a tutti per la community

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Crea una lista con la data, il codice del cliente e le date di arrivo e partenza.

    Fai una ricerca preventiva per testare la presenza di una registrazione per data.

    Non sarà il metodo più efficiente ma se ti stai "allenando" con le strutture, puoi farlo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Un consiglio: non usare la scanf per prendere i nomi e i cognomi dei clienti. Prova ad immaginare se uno inserisce come cognome "De Giovanni" cosa ti esce come output..

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2012
    Messaggi
    17
    hai ragione dovrei usare gets per giusta regola ,sbaglio?
    comunque dovrei fare una struct prenotazione con le date di arrivo e partenza e il codice, quindi fare una lista(o una coda?) di prenotazione dei clienti. Poi un altro problema sarà come gestire i giorni e i mesi, cioè un cliente può prenotarsi dal 27 febbraio al 3 marzo, quello che non mi è chiaro è come gestire le 5 stanze durante un calendario annuale.. sono molto confuso.

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Si devi usare la gets. Se vuoi un consiglio prova a fare una cosa alla volta.. non pensare a tutto in una sola volta. Vai con calma
    E se hai problemi apri dei thread, ma aprili solo se veramente non hai più idee e su internet non hai trovato nulla..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.