Baiano88 0 Denunciar post Postado Dezembro 4, 2015 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