Preciso de uma ajuda, preciso excluir e mostrar lista ordenada nesse meu programa
#include <iostream>
#include <cstdlib>
using namespace std;
struct cadastro{
int codigo;
string nome;
cadastro *prox;
cadastro *ant;
};
void cadastrar (cadastro*&inicio){
system("cls");
cadastro *novo = new cadastro;
cout << "Codigo: ";
cin >> novo -> codigo;
cout << "Nome: ";
cin >> novo -> nome;
if (inicio == NULL)
{
inicio = novo;
novo -> prox = NULL;
novo -> ant = NULL;
}else{
cadastro *percorredor = inicio;
while (percorredor -> prox != NULL)
{
percorredor = percorredor -> prox;
}
percorredor -> prox = novo;
novo -> prox = NULL;
novo -> ant = percorredor;
}
system("cls");
}
void listar(cadastro*inicio){
system("cls");
cout << "**** LISTA DE CADASTROS **** \n"<< "\n Finalize com 0(zero)";
cout << endl;
while(inicio != NULL)
{
cout << " " << "Codigo: " << inicio -> codigo << " " << "Nome: " << inicio -> nome << endl;
inicio = inicio -> prox;
}
cout << endl;
cout << "**************************** \n";
cout << endl;
}
int menu(){
int opcao=0;
cout << "Digite 1 - Cadastrar \n";
cout << "Digite 2 - Listar \n";
cout << "Digite 3 - Editar \n";
cout << "Digite 4 - excluir \n";
cout << endl;
cout << "Opcao: ";
cin >> opcao;
return opcao;
}
void editar (cadastro*&inicio){
system("cls");
int codigo=0;
cout << "Digite o codigo que deseja alterar: " << "\n" ;
cin >> codigo;
cadastro *percorredor = inicio;
while ((percorredor -> codigo != codigo) && (percorredor -> prox != NULL))
{
percorredor = percorredor -> prox;
}
if (percorredor -> codigo != codigo)
{
cout << "Codigo nao encontrado" << endl;
cout << endl;
}else{
cout << "Codigo: ";
cin >> percorredor -> codigo;
cout << "Nome: ";
cin >> percorredor -> nome;
}
}
int main(){
cadastro *inicio = NULL;
int opcao=0;
do{
opcao = menu();
switch(opcao)
{
case 1: cadastrar(inicio);
break;
case 2: listar(inicio);
break;
case 3: editar(inicio);
break;
/*case 4: excluir(inicio);
break;*/
}
}
while(opcao != 0);
system("pause");
return 0;
}
Alguem poderia me ajudar?Discussão (1)
Carregando comentários...