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

Gerenciamento de vagões


Carlos Augusto Junior

Pergunta

Estou começando em C++ e tive dificuldade para desenvolver esse exercício. Se alguém puder fazer alguma coisa, dar dicas ou ajudar de qualquer forma, ficarei muito grato! :rolleyes:

Suponha que você foi contratado pela Tabajara’s Ferrovia LTDA. Destinado a gerenciar as composições(grupo de vagões) dos trens que circulam em suas linhas.

As informações armazenadas consistem em código do vagão, a cidade de destino, país de destino e o numero de passageiros. Os vagões podem ser inseridos no inicio ou no fim da composição ferroviária. Como a malha ferroviária da empresa se estende somente na América do Sul, os vagões cujo país comece pela letra A ou B deverão ser incluídos no inicio da composição, já os demais no fim.

Os vagões quando são excluídos só podem ser do inicio ou do fim da composição. Como critério, será excluído o vagão da extremidade que tiver menos passageiro.

Faça um programa principal que contenha um menu o qual possamos selecionar as opções Incluir, Excluir, Listar e Sair.

Observações:

a) A Inclusão, Exclusão e Listagem deverão ser efetuadas por funções;

B) Os dados devem ser passados via parâmetros.

Editado por Jonathan Queiroz
Título editado conforme regra 3.6 (Jonathan)
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Estou começando em C++ e tive dificuldade para desenvolver esse exercício. Se alguém puder fazer alguma coisa, dar dicas ou ajudar de qualquer forma, ficarei muito grato! :rolleyes:

Suponha que você foi contratado pela Tabajara’s Ferrovia LTDA. Destinado a gerenciar as composições(grupo de vagões) dos trens que circulam em suas linhas.

As informações armazenadas consistem em código do vagão, a cidade de destino, país de destino e o numero de passageiros. Os vagões podem ser inseridos no inicio ou no fim da composição ferroviária. Como a malha ferroviária da empresa se estende somente na América do Sul, os vagões cujo país comece pela letra A ou B deverão ser incluídos no inicio da composição, já os demais no fim.

Os vagões quando são excluídos só podem ser do inicio ou do fim da composição. Como critério, será excluído o vagão da extremidade que tiver menos passageiro.

Faça um programa principal que contenha um menu o qual possamos selecionar as opções Incluir, Excluir, Listar e Sair.

Observações:

a) A Inclusão, Exclusão e Listagem deverão ser efetuadas por funções;

B) Os dados devem ser passados via parâmetros.

Boa tarde, não sei se vou ajudar em algo, pois não sei C++, mas pelo enunciado você pode dar uma pesquisada em LISTAS (listas encadeadas), e ai tu vai realizar operações de incluir na lista(listas de vagões), excluir da lista e listar os vagões...Vi isso em teoria apenas, na disciplina de algorítmos e estrutura de dados, mas não cheguei a fazer programas, pois ainda não to aprendendo C++.

Esperio que tenha ajudado em algo, boa sorte.

[]'s

Jeferson Neves

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Carlos,

Como nosso amigo Jeferson disse, você pode usar funções de LISTA. As funções podem ser feitas das seguintes formas:

#include <malloc.h>
typedef struct NODO
{
        int dado;
        struct NODO *proximo;
        } LISTA;

LISTA *crialista()
{
      struct NODO *cabeca;
      cabeca = (LISTA *)malloc(sizeof (LISTA));
      cabeca -> proximo = NULL;
      return cabeca;
      }

int incluir(LISTA *cabeca, int posicao, int elemento)
{
    struct NODO *p, *q = cabeca;
    int i;
    for (i = 0; i < posicao && q != NULL; i++)
        q = q -> proximo;
    if (q == NULL)
          return 0;
    p = (struct NODO *)malloc(sizeof (struct NODO));
    p -> dado = elemento;
    p -> proximo = q -> proximo;
    q -> proximo = p;
    return 1;
}

int excluir(LISTA *cabeca, int posicao)
{
    struct NODO *p = cabeca, *anterior;
    int aux, i;
    for (i = 0; i <= posicao && p != NULL; i++)
    {
        anterior = p;
        p = p -> proximo;
        }
    if (p == NULL)
           return 0;
    aux = p -> dado;
    anterior -> proximo = p -> proximo;
    free(p);
    return aux;
}

int listar(LISTA *cabeca)
{
    LISTA *q = cabeca;
    for (q = q -> proximo; q != NULL; q = q -> proximo)
    cout << q -> dado << " ";
}
você pode fazer um registro contendo todas as informações. Como usar as funções:
LISTA L1; //Declarou uma lista
L1 = crialista(); //criou espaço na memória para gerar a lista
inserir(L1, 0, VAGOES); //inserir(lista declarada, posição que deseja inserir, elemento que deve ser inserido)
retirar(L1, 0); //retirar(lista declarada, posição que deseja retirar);
listar(L1); //listar(lista declarada)

Espero ter ajudado, ficou meio confuso, pra você intender assim como funciona as funções vai ser meio difícil, é meio complicado, mas não é nada de mais. Depois posta aí se deu certo. Até mais!

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
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...