Ir para conteúdo
Fórum Script Brasil
  • 0

Vetor multidimensional: programa em C++


Valdeir Medeiros

Pergunta

Preciso de ajuda em uma atividade, que pede o seguinte:

Crie um programa que simule a ''compra de passagens aéreas de uma empresa'', mostrando ao usuário um menu inicial com as opções de reserva e cancelamento, em seguida os destino disponíveis, os dias disponíveis, os horários disponíveis, a fila pretendida e por ultimo a poltrona desejada. No final, o programa deve mostrar ao usuário um mapa de lugares do voo desejado: caso o lugar esteja vago, mostre seu número, seguinte forma, o número da fila com dois dígitos seguindo do número da
poltrona com dois dígitos. Ex: primeira poltrona na primeira fila, o número será 0101. Caso a poltrona já esteja ocupada, informe no lugar do código, imprimir “OCUP”. Se o usuário escolher uma poltrona inválida ou já reservada, mostre uma mensagem de erro. Caso escolha um lugar vago, mostre a mensagem, reserva foi efetuada com sucesso e retorne ao menu principal. O programa será feito com um vetor multidimensional, ele deve ler o ARQUIVO DE ENTRADA que contém o mapa de reservas. Na
primeira linha do arquivo deve conter a quantidade de destinos (máximo 8), a quantidade de dias
(máximo 7), a quantidade de horários (máximo de 4), a quantidade de filas (máximo de 20), e a
quantidade de poltronas por fila (máximo de 8). O sistema informatizado deve ser capaz de fazer a
venda semanal de lugares, e ao ser finalizado o mapa atual de reservas deve ser gravado e sobrescrito
sobre o arquivo de entrada.  OBS: Não devem ser utilizadas variáveis globais, não deve ser utilizada a biblioteca string.h.

Não sei como fazer sem o uso da string.h, desde já agradeço quem puder me auxiliar, pois estou com muita dificuldade.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Eu consegui fazer apenas dessa forma:

 

#include <stdio.h>
#include <stdlib.h> 

int LeOpcaoMenu(void) {
    int op;

    system("cls");
    printf("\n\nBem vindo ao sistema de venda de passagens aereas\n\n\n");
    printf("\n\nOpcoes Disponiveis\n\n");
    printf("1 - Fazer Reserva\n");
    printf("2 - Cancelar Reserva\n");
    printf("3 - Sair\n");
    printf("\n\nOpção desejada: ");

    scanf("%d", &op);
    return(op);
}

int LeDestino(int qdestino, char destinos[8][20]) {
    int op, i;

    do { 
        system("cls");
        printf("\n\nDestinos Disponiveis\n\n");
        for (i = 0; i < qdestino; i ++ ) {
            printf("%d - %s\n", i+1, destinos[i]);
         }
        printf("%d - Volta ao Menu Inicial\n", i+1);
        printf("\n\nOpcao desejada: ");

        scanf("%d", &op);
        if (op <1 || op > qdestino +1) {
            printf("\nOpcao invalida !! \n");
            system("pause");
        }
    }while (op <1 || op > qdestino+1);
    return(op);
}


int LeDia(int destino, char destinos[8][20], int qdias, char dias_semana[7][8]) {
    int op, i;

    do { 
        system("cls");
        printf("\n\nDias Disponiveis para o destino %s\n\n", destinos[destino-1]);
        for (i = 0; i < qdias; i ++ ) {
            printf("%d - %s\n", i+1, dias_semana[i]);
         }
        printf("%d - Volta ao Menu Inicial\n", i+1);
        printf("\n\nOpcao desejada: ");

        scanf("%d", &op);
        if (op <1 || op > qdias +1) {
            printf("\nOpcao invalida !! \n");
            system("pause");
        }
    }while (op <1 || op > qdias+1);
    return(op);
}


int LeHorario(int destino, char destinos[8][20], int dia, char dias_semana[7][8], int qhorario, char horarios[4][8]) {
    int op, i;

    do { 
        system("cls");
        printf("\nHorarios Disponiveis para o destino %s na %s:\n\n", destinos[destino-1], dias_semana[dia-1]);
        for (i = 0; i < qhorario; i ++ ) {
            printf("%d - %s\n", i+1, horarios[i]);
         }
        printf("%d - Volta ao Menu Inicial\n", i+1);

        printf("\n\nOpcao desejada: ");

        scanf("%d", &op);
        if (op <1 || op > qhorario+1) {
            printf("\nOpcao Invalida !! \n");
            system("pause");
        }
    }while (op <1 || op > qhorario+1);
    return(op);
}


int LeFila(int destino, char destinos[8][20], int dia, char dias_semana[7][8], int horario, char horarios[4][8], int qfila, char filas[20][8]) {
    int op, i;

    do { 
        system("cls");
        printf("\nEscolha uma dentre as seguintes filas:\n\n");
        for (i = 0; i < qfila; i ++ ) {
            printf("%d - %s\n", i+1, filas[i]);
         }
        printf("%d - Volta ao Menu Inicial\n", i+1);

        printf("\n\nOpcao desejada: ");

        scanf("%d", &op);
        if (op <1 || op > qfila+1) {
            printf("\nOpcao Invalida !! \n");
            system("pause");
        }
    }while (op <1 || op > qfila+1);
    return(op);
}

int LePoltrona(int destino, char destinos[8][20], int dia, char dias_semana[7][8], int horario, char horarios[4][8], int fila, char filas[20][8], int qpoltrona, char poltronas[8][20]) {
    int op, i;

    do { 
        system("cls");
        printf("\nEscolha uma dentre as seguintes poltronas disponiveis:\n\n");
        for (i = 0; i < qpoltrona; i ++ ) {
            printf("%d - %s\n", i+1, poltronas[i]);
         }
        printf("%d - Volta ao Menu Inicial\n", i+1);

        printf("\n\nOpcao desejada: ");

        scanf("%d", &op);
        if (op <1 || op > qpoltrona+1) {
            printf("\nOpcao Invalida !! \n");
            system("pause");
        }
    }while (op <1 || op > qpoltrona+1);
    return(op);
}

void ReservaVagas(int qdestino, int qdias, int qhorarios, int qfila, int qpoltrona, char destinos[8][20], char dias_semana[7][8], char horarios[4][8], char filas[20][8], char poltronas[8][20]) {
    int p, d, h, f, a;
    p = LeDestino(qdestino, destinos);
    if (p <= qdestino) {
        d = LeDia(p, destinos, qdias, dias_semana);
        if (d <= qdias) {
            h = LeHorario(p, destinos, d, dias_semana, qhorarios, horarios);
            if (h <= qhorarios){
                f = LeFila(p, destinos, d, dias_semana, h, horarios, qfila, filas);
                if (f <= qfila){
                    a = LePoltrona(p, destinos, d, dias_semana, h, horarios, f, filas, qpoltrona, poltronas);
                    if (a <= qpoltrona){
                        
                    printf("\n\nVoce fez reserva para viagem com destino a %s, %s, as %s, voce escolheu a poltrona %s na %s\n\n", destinos[p-1],dias_semana[d-1], horarios[h-1], poltronas[a-1], filas[f-1]);
                    system("pause");
                    }
                
                }
                
            }
        }
    }

}

void CancelaReserva(int qdestino, int qdias, int qhorarios, char destinos[8][20], char dias_semana[7][8], char horarios[4][8]) {
    
    int p, d, h;
    p = LeDestino(qdestino, destinos);
    if (p <= qdestino) {
        d = LeDia(p, destinos, qdias, dias_semana);
        if (d <= qdias) {
            h = LeHorario(p, destinos, d, dias_semana, qhorarios, horarios);
            if (h <= qhorarios){
                    printf("\n\nCancelamento Realizado com sucesso\nVoce cancelou a sua viagem para %s, que seria em uma %s, no horario das %s\n\n", destinos[p-1],dias_semana[d-1], horarios[h-1]);
                    system("pause");
            }
                 
        }
         
    }
}
    


int main() {
    int op;
    
    char destinos[8][20]={"Rio de Janeiro RJ", "são Paulo SP", "Belo Horizonte MG", "Santa Catarina RS", "Salvador BA", "Recife PE", "Palmas TO", "Belem do Para PA "};
    char dias_semana[7][8]={"Segunda", "Terca", "Quarta", "Quinta", "Sexta", "sábado", "Domingo"};
    char horarios[4][8]={"09:00 h", "13:00 h", "17:00 h", "21:00 h"};
    char filas[20][8]={"fila 1", "fila 2", "fila 3", "fila 4", "fila 5", "fila 6", "fila 7", "fila 8", "fila 9", "fila 10", "fila 11", "fila 12", "fila 13", "fila 14", "fila 15", "fila 16", "fila 17", "fila 18", "fila 19", "fila 20"};
    char poltronas[8][20]={"1", "2", "3", "4", "5", "6", "7", "8"};

      do {
        
        op = LeOpcaoMenu();
        switch (op) {
            case 1:
                system("cls");
                ReservaVagas(8, 7, 4, 20, 8, destinos,  dias_semana, horarios, filas, poltronas);    
                break;
               case 2:
                system("cls");
                CancelaReserva(8, 7, 4, destinos, dias_semana, horarios);
                break;
               case 3:
                system("cls");
                printf("\n\nPROGRAMA FINALIZADO !!!\n\n");
                system("pause");
                break;
            default:
                 printf("\nOpcao invalida.\n");
                system("pause");
           }
    } while (op != 3);
}

 

 

Ao longo do programa precisaria mostrar ao usuário, as opções de vagas em forma de matriz (filas por poltronas) em que cada vaga seria representada por 4 dígitos, ex: 0102, 1ª fila, 2ª poltrona. Além de mostrar algumas das vagas já ocupadas, pelo texto OCUP. No fim, mostraria a matriz final com sua vaga secionada. É estas matrizes que eu não consegui fazer para se adequar ao código, necessitaria ser um vetor multidimensional (*****) para cada dimensão ser ocupada (destinos, dias, horários, filas e poltronas).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...