Administração de um Teatro
Publicado por DEMIS CARLOS FONSECA GOMES 06/03/2005
[ Hits: 9.535 ]
Homepage: www.portonaweb.com
Script mostra a manipulação de matrizes na administração de um teatro, vende, reserva, visualiza poltronas vendidas, reservadas e livres.
// 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); }
Parte 2 - Sessão de estudo sobre VETORES
Parte 8 - Sessão de estudo sobre VETORES
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta