Jump to content
Fórum Script Brasil
  • 0

Vetor multidimensional: programa em C++


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Cloud Computing


  • Forum Statistics

    • Total Topics
      149264
    • Total Posts
      645605
×
×
  • Create New...