Albergo! C

« Older   Newer »
  Share  
}Light{
CAT_IMG Posted on 3/5/2012, 17:44     +1   -1




Torno ora dopo tanto tempo con un progetto per un albergo... :)
Spero vi piaccia..
Suggerimenti, critiche costruttive e insegnamenti sono ben accetti.. anzi cerco quello !
Aiutatemi a Migliorare.. Grazie a tutti !
CODICE
#include "stdafx.h"
#include "stdlib.h"


struct camera{
       int numero;
       char nome[20];
       int orerimanenza;
};
int menų(camera al[]){
       int scelt;
       int i;
       system("cls");
       printf("\t\tBenvenuto nel software gestione Hotel... ! \n");
       printf("Le tariffe sono di 5 Euro all' ora per stanza piu' supplemento di 20 Euro a persona\n");
       printf("Situazione stanze: \n");
       for(i=0;i<20;i++){
               if(al[i].orerimanenza>0){
                       if(i<10){
                               printf(" %d : Occupata\n",i);
                       }
                       else{
                               printf("%d : Occupata\n",i);
                       }
                       
               }
               else{
                       if(i<10){
                       printf(" %d : Libera\n",i);
                       }
                       else{
                               printf("%d : Libera\n",i);
                       }

               }
       }
       printf("\n\nInserire:\n1. Inserimento camera\n2. Mostra camera e conto\n3. Svuota camera\n4 o superiori. Termina programma\n");
       scanf("%d",&scelt);
       return scelt;
}
void inizializzazione(camera alb[]){
       int i,j=20;
       for(i=0;i<j;i++){
               alb[i].orerimanenza=0;
               alb[i].numero=0;
               for(int k=0;k<19;k++){
                       alb[i].nome[k]='0';
                       }
               }
       }

void inserimento(camera albergo_f[]){
       int digimon,j;
       do{
               do{
                       system("cls");
                       printf("Inserisci il numero di stanza: ( Da 0 a 19) \n");
                       scanf("%d",&j);
                       if(albergo_f[j].orerimanenza>0){
                               printf("Camera gia' occupata, selezionare un'altra camera\n");
                               system("pause");
                       }
                       if((j>=20)||(j<0)){
                               printf("Stanza non esistente\n");
                               system("pause");
                       }
               }while((j>=20)||(j<0)||(albergo_f[j].orerimanenza>0));
               printf("Inserire nome della prenotazione:\n");
               fflush(stdin);
               gets(albergo_f[j].nome);
               do{
                       printf("Inserire numero di persone:\n");
                       scanf("%d",&albergo_f[j].numero);
                       printf("Inserire il numero di ore di utilizzo stanza:\n");
                       scanf("%d",&albergo_f[j].orerimanenza);
                       if(albergo_f[j].numero<=0){
                               printf("Hai inserito un numero di persone non valido.. riprovare\n");
                       }
                       if(albergo_f[j].orerimanenza<=0){
                               printf("Hai inserito il numero di ore non valido... riprovare\n");
                       }
               }while((albergo_f[j].numero<=0)||(albergo_f[j].orerimanenza<=0));
               printf("Per confermare la prenotazione digita 1, per annullarla un numero qualsiasi.\n");
               scanf("%d",&digimon);
               if(digimon!=1){
                       albergo_f[j].numero=0;
                       albergo_f[j].orerimanenza=0;
                       for(int z=0;z<19;z++){
                               albergo_f[j].nome[z]='0';
                       }
               }
       }while(digimon!=1);
       printf("Inserimento confermato... !\n");
       system("pause");
}
void cancell(camera ab[]){
       int num,controllo;
       do{
               do{
                       printf("Inserire il numero della stanza da svuotare:\n");
                       scanf("%d",&num);
                       if((num>=20)||(num<0)){
                                       printf("Stanza non esistente\n");
                                       system("pause");
                               }
               }while((num>=20)||(num<0));
               if(ab[num].orerimanenza<=0){
                       printf("Nella stanza non e' presente nessuno.. impossibile cancellare\n");
               }
               else{
                       printf("Si sta per cancellare la presenza di :\n");
                       puts(ab[num].nome);
                       printf("Dalla stanza Numero : %d\n",num);
                       }
               printf("Inserire 1 per confermare, altro numero per annullare\n");
               scanf("%d",&controllo);
       }while(controllo!=1);
       ab[num].orerimanenza=0;
       ab[num].numero=0;
       for(int i=0;i<19;i++){
               ab[num].nome[i]='0';
       }
}
void vid(camera al[]){
       int i;
       int costo;
       do{
               printf("Inserisci la camera da visualizzare :\n");
               scanf("%d",&i);
       }while((i>=20)||(i<0));
       if(al[i].orerimanenza<=0){
               printf("La stanza non e' occupata da nessuno!\n");
               system("pause");
       }
       else{
               printf("Caratteristiche della stanza %d : \n",i);
               puts(al[i].nome);
               costo=(al[i].orerimanenza*5)+(20*al[i].numero);
               if(al[i].numero>1)
                       printf("Occupa la stanza con %d persone\n",al[i].numero);
               else
                       printf("Occupa la stanza con %d persona\n",al[i].numero);
               printf("Il tempo di occupazione e' di %d ore\n",al[i].orerimanenza);
               printf("Il costo complessivo e' di %d Euro\n", costo);
               system("pause");
       }        
}
camera albergo[20];

int _tmain(int argc, _TCHAR* argv[])
{
       
       int i,j,z;
       int scelta;
       inizializzazione(albergo);
       do{
               scelta=menų(albergo);
               switch(scelta){
               case 1 :
                               inserimento(albergo);
                               break;
               case 2 :
                               vid(albergo);
                               break;
               case 3 :
                               cancell(albergo);
                               break;
               }

       }while(scelta<4);

       return 0;
}
 
Top
}Light{
CAT_IMG Posted on 10/5/2012, 21:04     +1   -1




Nessuno dice niente ?? ;( ;(
 
Top
CAT_IMG Posted on 10/5/2012, 22:02     +1   -1

So implementare gli object

Group:
Admin
Posts:
1,215
Reputazione:
+150

Status:


Gli ho dato un'occhiata veloce, mi piace il tuo stile di programmazione :)

Una cosa che mi č saltata all'occhio:
CODICE
if(i<10){
                              printf(" %d : Occupata\n",i);
                      }
                      else{
                              printf("%d : Occupata\n",i);
                      }


Usi questo metodo per stampare la spaziatura giusta, ma sarebbe pių corretto calcolare il numero di cifre del numero maggiore tra tutti quelli del ciclo e creare dinamicamente la spaziatura :D

Comunque, carino :asd:
 
Top
}Light{
CAT_IMG Posted on 11/5/2012, 14:33     +1   -1




Grazie :)!
Si lo uso per la spaziatura.. Come si fa quello che hai detto te ?
Mi posti un esempio di codice ? Grazie :)
 
Top
3 replies since 3/5/2012, 17:44   104 views
  Share