Ir ao conteúdo
  • Cadastre-se

Exercício: Programa de reserva de poltronas em linguagem C


Gustavo Rossy

Posts recomendados

Olá pessoal, estou cursando programação de computadores na faculdade e meu professor nos passou um exercicio que diz o seguinte: "Escreva um programa para uma empresa de transportes aéreos que permita controlar a reserva de poltronas de uma aeronave." O exercício completo está em anexo. Meu professor disse que se quiser fazer apenas com um vetor[20] também pode.

Comecei a criar uma função para cada opção do menu, mas minha dificuldade aparece quando eu tento criar um vetor que inicialmente printa o numero de cada poltrona e se caso ele for selecionado apareça um X no lugar dele. Aqui está o código que comecei a criar: 

 

#include <stdio.h>
#include <stdlib.h>
char p[20]={49,50,51,52,53,54,55,56,57,'A','B','C','D','E','F','G','H','I','J','K','L'};

void mostrar_poltronas(){
    printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],p[8],p[9]);
    printf("\n\n");
    printf("[%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c] [%c]",p[10],p[11],p[12],p[13],p[14],p[15],p[16],p[17],p[18],p[19]);
}

void reservar_poltrona(){
    int i;
    do{
        mostrar_poltronas();
        printf("\nDigite a poltrona que deseja reservar (digite 0 para sair): ");
        scanf("%i", &i);
        p[i-1]=88;
        system("cls");
    }while (i!=0);
}

int main()
{
    //TESTE DAS FUNÇÕES
    int menu;
    printf("\nTESTE\nMostrar poltronas: 1\nReservar poltronas: 2\nOpcao: ");
    scanf("%i", &menu);
    if (menu==1) mostrar_poltronas();
    else if (menu==2) reservar_poltrona();
    return 0;
}

 

Comecei a criar esse vetor char que armazena as poltronas, e consegui fazer com que ele mostrasse as 9 primeiras poltronas com seus números certos, utilizando a tabela ASCII. Mas a partir do 9 não consegui mais! (Onde está representado pelas letras A - L). Alguém pode me dar alguma ajuda/dica de como resolver isso? Desde já, agradeço muito!

Exercicio 001.jpg

Link para o comentário
Compartilhar em outros sites

Tente simplificar, você pode usar uma vetor de chars de 20 posições, e inicializá-lo com valor 0 em todas as posições, e apenas atribuir o valor do caractere 'X' a respectiva posição quando ela estiver ocupada.

 

Assim você imprime o caractere se ele estiver armazenado no vetor, do contrário imprime o número da posição do vetor (+ 1 já que as posições no vetor começam em 0, mas as poltronas começam em 1).

 

Veja:

 

#include <stdio.h>

int main(){
  char vetor[20] = {0};
  int i;
  
  vetor[0] = 'X';  //Poltrona 1
  vetor[10] = 'X'; //Poltrona 11
  vetor[11] = 'X'; //Poltrona 12
  vetor[17] = 'X'; //Poltrona 18
  
  for(i=0; i<20; i+=2){
    if(vetor[i] != 0)
      printf("[ %c] ", vetor[i]);
    else
      printf("[%2d] ", i+1);
  }
  printf("\n");
  
  for(i=1; i<20; i+=2){
    if(vetor[i] != 0)
      printf("[ %c] ", vetor[i]);
    else
      printf("[%2d] ", i+1);
  }
  printf("\n");
  
  return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...