Simulador de teatro

Publicado por Danilo Lima 04/11/2006

[ Hits: 15.529 ]

Homepage: http://danilo.site88.net

Download danilo_teatro.c




Este script simula a venda e reserva de cadeiras em um teatro. Ele mostra ainda as cadeiras reservadas e disponíveis.

  



Esconder código-fonte

/*
  Name: teatro
  Copyright: danilo lima da guia    
  Author: limadaguia
  Date: 21/09/06 14:58
  Description: 
*/

#include <stdio.h>
#include<stdlib.h>
#include<conio.h>
#define COL 7
#define ROW 4
#define FALSE 0
#define TRUE 1

void inicializa(char matriz[ROW][COL]);
void mostrarPainel(char matriz[ROW][COL]);
void comprar(char matriz[ROW][COL]);
void reservar(char matriz[ROW][COL]);
void legenda();
int menuOpcao();
int colunaY();
int linhaX();

//estrutura dos dados
 struct dados {
          char nome[30];
          char bairro[30];
          int regnum;
   };  
      
   struct dados cod[50];
      int n=0;

int main (void){
  char matriz[ROW][COL];
  int opcao;
  int loopContinue=TRUE;
  
  inicializa(matriz); //Iniciliza a matriz com valores .(Livre)
    
  do{
     system("cls");//Limpa a tela                
     opcao=menuOpcao();                   
     switch(opcao){
        case 1:
          system("cls");
          system("cls"); 
          mostrarPainel(matriz);//Mostra o Painel atualizado
          comprar(matriz); // Realiza a compra de uma cadeira no painel, marcando c/ um X
          break;
        
        case 2:
          system("cls");
          system("cls");
          mostrarPainel(matriz);
          reservar(matriz); //Realiza a reserva de uma cadeira no painel, marcando c/ um R
          break;
        
        case 3:
          system("cls");
          mostrarPainel(matriz);
          getch();
          break;   
        
        case 4:
          loopContinue = FALSE; //condicao para saída do programa
     }
  }while(loopContinue);
        
  getchar();    
  return 0;       
}
void inicializa(char matriz[ROW][COL]){
     int i,j;
     for(i=1;i<=ROW;i++)
       for(j=1;j<=COL;j++)
          matriz[i][j] = '.';
}

void mostrarPainel(char matriz[ROW][COL]){
  
  int i,j;
  printf("\n\n         %c   PAINEL DE OCUPACOES   %c\n\n",16,17);
  printf("          ");
  
  for(i=1;i<=COL;i++)
    printf("%d     ",i);
  
  for(i=1;i<=ROW;i++){
     printf("\n\n     %d",i);
     for(j=1;j<=COL;j++)
       printf("   (%c)",matriz[i][j]);     
  }
  //apresenta o menu na tela
  legenda();
}        
 
int menuOpcao(){
    int opcao=4;
    do {
         system("cls"); 
         printf("\n\n                    %c  MENU  %c\n\n",16,17);
        
         printf("                %c  1- Comprar        %c\n",16,17);
        
         printf("                %c  2- Reservar       %c\n",16,17);
        
         printf("                %c  3- Mostrar Painel %c\n",16,17);
        
         printf("                %c  4- Exit           %c\n\n",16,17);
        
         printf("                   opcao: ");scanf("%d",&opcao);
         
         if(opcao <= 0 || opcao > 4){
            printf("\n\n\n    DIGITE APENAS VALORES CORESPONDENTES AO MENU !!");
            getch();
         }
            
     }while(opcao <= 0 || opcao > 4);
    
    return opcao;
}
//apresenta  a legenda na tela
void legenda(){
   printf("\n\n\n        .-Livre  X-Ocupado  R-Reservado\n\n");

}  
    //efetica a compra da cadeira
void comprar(char matriz[ROW][COL]){
   int row, col;
   printf("\n           COMPRA DE CADEIRAS\n\n");
   row = linhaX();
   col = colunaY();
   
   if(matriz[row][col]=='.'){
       matriz[row][col] = 'X';
       printf("\n\n      COMPRA EFETIVADA COM SUCESSO !!");
   }   
   else if (matriz[row][col]=='X')
             printf("\n\n      CADEIRA JA OCUPADA!! ESCOLHA OUTRA !!\n\n");
        else if(matriz[row][col]=='R')
               printf("\n\n    CADEIRA JA RESERVADA!! ESCOLHA OUTRA !!\n\n");
   
   getch();
   
               
} 
//reserva a cadeira no teatro
void reservar(char matriz[ROW][COL]){
   int row, col;
    printf("\n\n         RESERVA DE CADEIRAS\n\n");
   row = linhaX();
   col = colunaY();
   
   if(matriz[row][col]=='.'){
       matriz[row][col] = 'R';
       printf("\n\n      RESERVA EFETIVADA COM SUCESSO !!");
   }   
   else if (matriz[row][col]=='X')
             printf("\n\n      CADEIRA JA OCUPADA!! ESCOLHA OUTRA !!\n\n");
        else if(matriz[row][col]=='R')
               printf("\n\n      CADEIRA JA RESERVADA !! ESCOLHA OUTRA !!\n\n");
    
    getch();
              
}
//ler a linha oferecida pelo usuario
int linhaX(){
   int row;
   printf("          Linha: "); scanf("%d",&row);
     if(row>4)
     {
       printf("\t\n Esta cadeira nao existe!!! ");
       }
   return row;
}
//ler a coluna oferecida pelo usuario
int colunaY(){
   int col;
   printf("          Coluna: "); scanf("%d",&col);
   if(col>7)
     {
       printf("\t\n Esta cadeira nao existe!!! ");
       }
   return col;                         
}


    
  
                      

Scripts recomendados

Comando goto

Existência de triângulo, em C

StrLen e StrCat

Escolha o algoritmo de ordenação

Maior de dois numeros


  

Comentários
[1] Comentário enviado por AboutDiego em 04/11/2006 - 19:04h

Interessante como foi construído este algoritmo, só acho que não era necessário criar uma variável definidade chamada FALSE, ainda mais fora de main, e para alguns novatos em programação acho que fica um pouco mais complicado que a variável que é verificada no WHILE deveria ser do tipo booleana. É claro, este algoritmo está otimamente bem feito ^^, aquilo ali em cima fica somente como conselho ^^, até mais.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts