Advertisement
Drowze

08 Matrizes 05 (reservas de teatro)

May 14th, 2014
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.11 KB | None | 0 0
  1. /*Num teatro a plateia é constituída por 200 lugares organizados em 10 fileiras com 20
  2. colunas cada. Um lugar nesse teatro é identificado pelo seu número de fileira e seu
  3. número de coluna.  Supondo que em tal teatro há espetáculos de Quarta a Domingo,
  4. um espetáculo por dia, fazer um programa que represente o mapa de reservas numa
  5. semana em tal teatro. Uma vez criada essa representação o programa deverá iniciar a
  6. mesma  de  modo  a  representar  que  todos  os  lugares  encontram-se  disponíveis  para
  7. reservas.
  8. Outras informações:
  9. a)    Não é necessário fazer o controle de reservas. O programa deverá apenas criar
  10. a  estrutura  que  identifique  o  mapa  de  reservas  desse  teatro  de  quarta  a
  11. domingo.
  12. b)  Em  seguida,  basta  inicializar  esse  mapa  indicando  que  os  lugares  estão
  13. disponíveis.  Portanto,  nesse  exercício  não  haverá  recebimento  de  dados  por
  14. parte do usuário e nenhum tipo de cálculo.
  15. c)  Embora  não  seja  necessário,  criar  o  controle  de  reservas,  implementando
  16. consulta de lugares disponíveis e a realização e  cancelamento  da reserva é um
  17. ótimo exercício!*/
  18.  
  19. #include <stdlib.h>
  20. #include <stdio.h>
  21. #define FILE 10
  22. #define COLU 20
  23.  
  24. void main(){
  25.         int ocupado=0; //0: livre, 1: ocupado
  26.         int reservas[5][FILE][COLU]; //5 dias da semana, 10 fileiras, 20 colunas
  27.         int h, i, j; //contadores da matriz
  28.         int op; //operador do menu principal
  29.  
  30.  
  31.         //bloco para deixar todos os assentos vagos em todos os dias da semana
  32.         for(h=0;h<5;h++){
  33.                 for(i=0;i<FILE;i++){
  34.                         for(j=0;j<COLU;j++){
  35.                                 reservas[h][i][j]=0;
  36.                         }
  37.                 }
  38.         }
  39.  
  40.         //bloco principal
  41.         do{
  42.                 fflush(stdin);
  43.                 printf("Voce deseja checar as reservas de qual dia da semana?\n");
  44.                 printf("1- Quarta\n");
  45.                 printf("2- Quinta\n");
  46.                 printf("3- Sexta\n");
  47.                 printf("4- Sabado\n");
  48.                 printf("5- Domingo\n");
  49.                 printf("0- Sair\n");
  50.                 scanf("%d",&op);
  51.  
  52.                 system("cls");
  53.        
  54.                 switch(op){
  55.                 case 0: break;
  56.                 case 1: printf("        Quarta feira:\n\n");
  57.                         break;
  58.                 case 2: printf("        Quinta feira:\n\n");
  59.                         break;
  60.                 case 3: printf("        Sexta feira:\n\n");
  61.                         break;
  62.                 case 4: printf("        Sabado:\n\n");
  63.                         break;
  64.                 case 5: printf("        Domingo:\n\n");
  65.                         break;
  66.                 default: printf("       Opcao invalida\n");
  67.                         system("pause");
  68.                         break;
  69.                 }
  70.  
  71.                 //Exibe o mapa de reservas
  72.                 if(op>0 && op<6){
  73.                         printf("0: livre   X: ocupado\n   ");
  74.  
  75.                         for(h=0;h<COLU/2.3;h++) printf("|||"); //linhas para exibir o palco
  76.                         printf("PALCO"); //linhas para exibir o palco
  77.                         for(h=0;h<COLU/2.3;h++) printf("|||"); //linhas para exibir o palco
  78.                         printf("\n    ");
  79.  
  80.                         for(h=0;h<COLU;h++)
  81.                                 if(h<9) printf("%d  ",h+1); //linha para mostrar o numero da coluna
  82.                                 else printf("%d ",h+1); //linhas para mostrar o numero da coluna
  83.                         printf("\n");
  84.                        
  85.                         for(i=0;i<FILE;i++){
  86.                                 if(i<9) printf("%d : ",i+1); //linhas para mostrar o numero da fileira
  87.                                 else printf("%d: ",i+1); //linhas para mostrar o numero da fileira
  88.                                 for(j=0;j<COLU;j++)
  89.                                         if(reservas[op-1][i][j]==0)     printf("0  ");
  90.                                         else printf("X  ");
  91.                                 printf("\n");
  92.                         }
  93.                
  94.                
  95.                         printf("\n\nDeseja fazer uma reserva ou cancelamento?\n1- Reserva\n2- Cancelamento\nOutro- Nao\n");
  96.                         scanf("%d", &h);
  97.                         if(h==1){
  98.                                 printf("Fileira desejada: ");
  99.                                 scanf("%d",&i);
  100.                                 printf("Coluna desejada: ");
  101.                                 scanf("%d",&j);
  102.                                 if(reservas[op-1][i-1][j-1]==1) printf("ERRO: Lugar ja reservado\n");
  103.                                 else if(i>10 || j>20 || i<=0 || j<=0) printf("ERRO: Fileira invalida\n");
  104.                                 else{
  105.                                         reservas[op-1][i-1][j-1]=1;
  106.                                         printf("Reserva feita com sucesso!\n");
  107.                                 }
  108.                                 system("Pause");
  109.                         }
  110.                         else if(h==2){
  111.                                 printf("Fileira desejada: ");
  112.                                 scanf("%d",&i);
  113.                                 printf("Coluna desejada: ");
  114.                                 scanf("%d",&j);
  115.                                 if(reservas[op-1][i-1][j-1]==0) printf("ERRO: Lugar nao possui reserva\n");
  116.                                 else if(i>10 || j>20 || i<=0 || j<=0) printf("ERRO: Fileira invalida\n");
  117.                                 else{
  118.                                         reservas[op-1][i-1][j-1]=0;
  119.                                         printf("Cancelamento feito com sucesso!\n");
  120.                                 }
  121.                                 system("Pause");
  122.                         }
  123.                         else{
  124.                                 printf("Deseja continuar executando o programa?\n0- Nao\n");
  125.                                 scanf("%d",&op);
  126.                         }
  127.                 }
  128.  
  129.  
  130.                 system("cls");
  131.         }while(op!=0);
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement