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

Ajuda com exercício (cadastramento)


Baiano88

Pergunta

Olá não estou conseguindo fazer com que apresente os dos veículos Km na hora de exibir, alguém poderia me explicar como ?

 

 

tai o código em C++

 

 

 

 

#include<cstdlib>
#include<iostream>
using namespace std;
 
struct frota {
    
    string modelo;
    string placa;
    float km_viagem_total,viagem;
};
struct lista
{
   frota dado;
   lista *link;
};
 
lista *inicia_lista()
{
   return NULL;
}
char menu()
{
   char op;
   system("cls");
   
   
   cout<<   " ESTRUTURA DE DADOS "<<endl<<endl;
 
   cout << "1 - Cadastrar  veiculo " << endl;
   cout << "2 - Registro de viagem em KM" << endl;
   cout << "3 - Excluir veiculo" << endl;
   cout << "4 - Exibir lista  de veiculo ordem crescente "  << endl;
   cout << "0 - Sair" << endl;
   cout << " "<<endl;
   cout << "Opcao: ";
   cin >> op;
   return op;
}
bool lista_vazia(lista *l)
{
   if (l == NULL)
      return true;
   else
      return false;
}
 
lista *incluir(lista *l, string elemento, char msg)
{
   lista *n, *p;
   
   n = new lista;
   n->dado.placa = elemento;
   n->link = NULL;
   
   if (lista_vazia(l) == true)
      l = n;
   else
   {
      if (elemento< l->dado.placa)
      {
         n->link = l;
         l = n;
         }
      else
      {
         p = l;
         while (p->link != NULL and p->link->dado.placa < elemento)
            p = p->link;
         
         n->link = p->link;
         p->link = n;
      }
   }
   if (msg == 'S')
   {
      cout << "Veiculo '" << elemento << "' cadastrado" << endl;
      system("pause");
   }
   return l;
}
 
lista *excluir(lista *l, frota elemento, float km_viagem_total)
{
  lista *p, *t;      
      if (lista_vazia(l) == true)
         cout <<"   LISTA VAZIA" << endl;
      else
      p = l;
      if (p->dado.km_viagem_total > 50)
      {
         if (p->dado.placa == elemento.placa)
         {
            l = p->link;
            delete p;
            cout <<"   O VEÍCULO DA LISTA FOI EXCLUÍDO" << endl;
          }  
         else
          {
             while (p->link != NULL and p->link->dado.placa != elemento.placa)
                p = p->link;
          
             if (p->link == NULL)
                cout <<"   O VEÍCULO '" << elemento.placa << "' NÃO ENCONTRADO" << endl;
             else
             {
                 t = p->link;
                 p->link = t->link;
                 delete t;
                 cout <<"   O VEÍCULO '" << elemento.placa << "' EXCLUÍDO DA LISTA" << endl;
              }
           }
  }
      else
        cout<<"   O VEÍCULO NÃO PODE SER EXCLUÍDO, POIS NÃO POSSUI KM VIAGEM MÍNIMOS ACUMULADOS"<<endl;
   system("pause");
   return l;
}
 
 
lista *localizar(lista *l, frota elemento)
{
   lista *p;
   
   if (lista_vazia(l) == true)
      return NULL;
   else
   {
       p = l;
       while (p != NULL)
       {
          if (p->dado.placa == elemento.placa)
             return p;
          p = p->link;
       }
   } 
   return NULL;
}
 
 
void exibir(lista *l)
{
     lista *p;
     if (lista_vazia(l) == true)
        cout << "Sem veiculo cadastrado" << endl;
     else
     {
         p = l;
        cout <<" Placa: "  <<p->dado.placa  << endl;
        cout<<" Km: "<<p->dado.km_viagem_total<<endl;
         while (p->link != NULL)
         {
            p = p->link;
           cout <<" Placa: "  <<p->dado.placa  << endl;
          
         }
     }
     system("pause");
}
 
 
float viagem_volta (frota v)
{
   float viagem_tempo = 0;
   viagem_tempo= v.viagem;
   
   return viagem_tempo;
}
 
int main()
{
    lista *l, *posicao_mem;
    frota elemento;
    float km_viagem_total,x;
    char op;
    bool ok;
    l = inicia_lista();
    
    op = menu();
     while (op != '0')
    {
       if (op == '1')
       {
         cout << "Modelo do Veiculo: ";
         cin >> elemento.modelo;
         cout << "Placa  do Veiculo: ";    
         cin >> elemento.placa;
           if (localizar(l, elemento) == NULL)
             l = incluir(l, elemento.placa, 'S');
          else
          {
              cout << "Placa'" << elemento.placa << "'já no cadastro" << endl;
              system("pause");
          }
       }
       else
       if (op == '2')
        
        {
          cout <<"   DIGITE A PLACA PARA REGISTRAR A VIAGEM: ";
          cin >> elemento.placa;
          posicao_mem = localizar(l, elemento);
          if (posicao_mem == NULL)
          {
             cout <<"   A PLACA '" << elemento.placa << "' NÃO FOI LOCALIZADA " << endl;
}
 else
       
{
cout <<"   QUILOMETRAGEM: ";
            cin >> x;
posicao_mem->dado.viagem = x + posicao_mem->dado.viagem;
            
        }
         system("pause");
       } 
      if (op == '3')
       {
          cout << "Placa do veiculo para excluir: ";
          cin >> elemento.placa;
          l = excluir(l, elemento, km_viagem_total);
          op=menu();
       }
    
     else
       if (op == '4')
                            
       exibir(l);
       op = menu(); 
     
     
     
 
    }
    system("pause");
    return 0;
    
}
 
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...