Administração de um Teatro

Publicado por DEMIS CARLOS FONSECA GOMES 06/03/2005

[ Hits: 9.535 ]

Homepage: www.portonaweb.com

Download admteatrodem.c




Script mostra a manipulação de matrizes na administração de um teatro, vende, reserva, visualiza poltronas vendidas, reservadas e livres.

  



Esconder código-fonte

// SIMULACAO DE UM TEATRO (ADMINISTRACAO)
//BY DEMIS CARLOS FONSECA GOMES- UFT - C. COMP. - PROGRAMACAO AVANCADA

#include <stdio.h>

typedef struct cadeira{
    int posicao;
    char situacao;
}cadeira;

int main(void)
{
    cadeira ***mat1, ***mat2;
    int tamanhodalinha, tamanhodacoluna, i,j, posicao_cadeira=1, opcao, _posicao_cadeira, cadeira_vendida=0, cadeira_reservada=0, opcao1;
  system("clear"); printf("\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333\333");
    printf("\n\n\n\n\t\t\t Teatro On-line\n\n");
    printf("\n\n Sistema On-line compras de bilhetes para entrada no EsPeCsHoW\n\n\n\n");
    printf("QUAL O NUMERO DE FILEIRAS DO SEU TEATRO /fileiras (linhas)");
    scanf("%d",&tamanhodalinha);
    printf("\nQUAL O NUMERO DE FILAS DO SEU TEATRO/filas (colunas):");
    scanf("%d",&tamanhodacoluna);

    //Alocando Matrizes
    mat1 = (cadeira ***)malloc(sizeof(int)*tamanhodacoluna);
    mat2 = (cadeira ***)malloc(sizeof(int)*tamanhodacoluna);
    for(i = 0; i < tamanhodalinha; i++)
    {
   mat1[i] = (cadeira **)malloc(sizeof(int)*tamanhodalinha);
   mat2[i] = (cadeira **)malloc(sizeof(int)*tamanhodalinha);
    }

    for(i = 0; i < tamanhodalinha; i++)
    {
   for(j = 0; j < tamanhodacoluna; j++)
   {
       mat1[i][j] = (cadeira *) malloc(sizeof(cadeira));
       mat2[i][j] = (cadeira *) malloc(sizeof(cadeira));
   }
    }
    for(i = 0; i < tamanhodalinha; i++)
    {
   for(j = 0; j < tamanhodacoluna; j++)
   {
       mat1[i][j]->posicao = posicao_cadeira;
       mat1[i][j]->situacao = 'L';
       posicao_cadeira++;
   }
    }
    for(i = 0; i < tamanhodalinha; i++)
    {
   for(j = 0; j < tamanhodacoluna; j++)
   {
       mat2[i][j]->posicao = posicao_cadeira;
       mat2[i][j]->situacao = 'L';
       posicao_cadeira++;
   }
    }
    system("clear");
    do{
   printf("        Para ----------------------->>>    Digite ----->\n");
   printf("__________|__________________________________|______________|\n");
   printf(" Comprar/Reservar cadeira                 -- 1 --\n");
   printf(" Cancelar Reservas                        -- 2 -- \n");
   printf(" Listar cadeiras Vendidas                 -- 3 --\n");
   printf(" Listar cadeiras Reservadas               -- 4 --\n");
   printf(" Listar Todas as cadeiras                 -- 5 --\n");
   printf(" Mostrar como estao as Vendas e Reservas  -- 6 -- \n");
   printf(" Sair do Sistema EsPeCsHoW...             -- 0 --\n");
   printf(" ----------------------------------->>>   ");
   scanf("%d",&opcao);

   switch(opcao)
   {
       case 1:
       {
      
      printf("cadeira || Ela esta'...\n");
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         printf("%d ------------> ",mat1[i][j]->posicao);
         printf("%c\n",mat1[i][j]->situacao);
          }
      }
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         printf("%d ------------> ",mat2[i][j]->posicao);
         printf("%c\n",mat2[i][j]->situacao);
          }
      }
      printf("\n\n\334\334 Livre \334\334   \334\334 Vendida \334\334      \334\334 Reservada \334\334\n\n\n");
      printf("-- 1-- Comprar      --2-- Reservar     --0-- Para retornar ao menu principal\n");
      scanf("%d",&opcao1);
      if(opcao1 ==1)
      {
          printf("\t\tCOMPRANDO CADEIRA . . .\n\n ");
          printf("cadeira: ");
          scanf("%d", & _posicao_cadeira);
          cadeira_vendida++;
          for(i = 0; i < tamanhodalinha; i++)
          {
         for(j = 0; j < tamanhodacoluna; j++)
         {
             if(mat1[i][j]->posicao == _posicao_cadeira)
             {
            mat1[i][j]->situacao = 'V';
             }
             if(mat2[i][j]->posicao == _posicao_cadeira)
             {
            mat2[i][j]->situacao = 'V';
             }
            }
          }
          cadeira_vendida+1;
      }
      if(opcao1 ==2)
      {
          printf("\t\tRESERVANDO CADEIRA . . .\n\n ");
          printf("cadeira: ");
          scanf("%d", & _posicao_cadeira);
          cadeira_reservada++;
          for(i = 0; i < tamanhodalinha; i++)
          {
         for(j = 0; j < tamanhodacoluna; j++)
         {
             if(mat1[i][j]->posicao == _posicao_cadeira)
             {
            mat1[i][j]->situacao = 'R';
             }
             if(mat2[i][j]->posicao == _posicao_cadeira)
             {
            mat2[i][j]->situacao = 'R';
             }
         }
          }
          cadeira_reservada+1;
      }
      system("clear");
      break;
       }
       case 2:
       {
      system("clear");
      printf("\t\tRESERVAS CANCELADAS\n\n ");
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat1[i][j]->situacao == 'R')
         {
             printf("=>cadeira %d\n",mat1[i][j]->posicao);
         }
          }
      }
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat2[i][j]->situacao == 'R')
         {
             printf("=>cadeira %d\n",mat2[i][j]->posicao);
         }
          }
      }
      printf("cadeira: ");
      scanf("%d", & _posicao_cadeira);
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if((mat1[i][j]->posicao == _posicao_cadeira) && (mat1[i][j]->situacao == 'R'))
         {
             mat1[i][j]->situacao = 'L';
         }
         if((mat2[i][j]->posicao == _posicao_cadeira) && (mat2[i][j]->situacao == 'R'))
         {
             mat2[i][j]->situacao = 'L';
         }
          }
      }
      break;
       }
       case 3:
       {
      system("clear");
      printf("\t\tLISTA DE CADEIRAS VENDIDAS\n\n ");
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat1[i][j]->situacao == 'V')
         {

             printf("=>cadeira %d\n",mat1[i][j]->posicao);
         }
          }
      }
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat2[i][j]->situacao == 'V')
         {
             printf("=>cadeira %d\n",mat2[i][j]->posicao);
         }
          }
      }
      break;
       }
       case 4:
       {
      system("clear");
      printf("\t\tLISTA DE CADEIRAS RESERVADAS\n\n ");
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat1[i][j]->situacao == 'R')
         {
             printf("=>cadeira %d\n",mat1[i][j]->posicao);
         }
          }
      }
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         if(mat2[i][j]->situacao == 'R')
         {
             printf("=>cadeira %d\n",mat2[i][j]->posicao);
         }
          }
      }
      break;
       }
       case 5:
       {
      system("clear");
      printf("\t\tLISTANDO TODAS AS CADEIRAS . . .\n\n ");
      printf("cadeira    Situacao\n");
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         printf("%d \333\333\333\333\333\333\333\333\333\333\333\333\333\333> ",mat1[i][j]->posicao);
         printf("%c\n",mat1[i][j]->situacao);
          }
      }
      for(i = 0; i < tamanhodalinha; i++)
      {
          for(j = 0; j < tamanhodacoluna; j++)
          {
         printf("%d \333\333\333\333\333\333\333\333\333\333\333\333\333\333> ",mat2[i][j]->posicao);
         printf("%c\n",mat2[i][j]->situacao);
          }
      }
      printf("\n\n\334\334 Livre \334\334   \334\334 Vendida \334\334      \334\334 Reservada \334\334\n\n\n");
      break;
       }
       case 6:
       {
      system("clear");
      printf("\t\tSITUACAO ATUAL NO INTERIOR DO TEATRO\n\n ");
      printf("\n=>cadeiras Vendidas %d\n", cadeira_vendida);
      opcao==2;
      {
      }
      printf("=>cadeiras Reservadas %d\n", cadeira_reservada);
      break;
       }
   }
    }while(opcao !=0);

    return(0);
}

Scripts recomendados

Parte 2 - Sessão de estudo sobre VETORES

Visualizador hexadecimal

Parte 8 - Sessão de estudo sobre VETORES

Mini - agenda

Calcular a série de Fibonacci


  

Comentários
[1] Comentário enviado por removido em 23/12/2005 - 13:19h

legal, mas o código ficaria muito mais legível se vc fizesse funções para deixar o código mais modularizado e legível.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts