Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Baiano88

exercício de cadastramento

Recommended Posts

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 << "'ja 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;

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.