Jump to content
Fórum Script Brasil
  • 0

Ajuda com exercício (cadastramento)


Baiano88
 Share

Question

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

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...