Logre un adelanto del código pero al tratar de correrlo me da el siguiente error quisiera me ayudaran el error que me indica es el siguiente.
collect2: error: ld returned 1 exit statusNo se si me falta algo o tengo algo mal.
#include<iostream>
#include<stdlib.h>
using namespace std;
struct Registro{
int cedula;
string nombre;
string apellido;
int edad;
char sexo;
Registro *Rpersona;
};
void menu();
void insertarLista(Registro *&,int c, string n, string a, int e, char s);
void mostrarLista(Registro *);
void buscarLista(Registro *,int c);
void eliminarNodo(Registro *&,int c);
void eliminarLista(Registro *&,int &);
Registro *lista = NULL;
int main(){
menu();
return 0;
}
void menu(){
int opcion,c,e;
string n,a;
char s;
do{
cout<<"\t.:::Proyecto UBV:::.\n";
cout<<"1. Ingresar un Registro a la lista\n";
cout<<"2. Mostrar los Registros de la lista\n";
cout<<"3. Buscar un Registro en la lista\n";
cout<<"4. Eliminar un Registro de la lista\n";
cout<<"5. Dejar vacia la lista\n";
cout<<"6. Salir\n";
cout<<"Opcion: ";
cin>>opcion;
switch(opcion){
case 1: cout<<"\nIngrese un Numero de Cedula: ";
cin>>c;
cout<<"\nIngrese el Nombre: ";
cin>>n;
cout<<"\nIngrese el Apellido: ";
cin>>a;
cout<<"\nIngrese la Edad: ";
cin>>e;
cout<<"\nIngrese el Sexo: ";
cin>>s;
insertarLista(lista,c,n,a,e,s);
cout<<"\n";
system("pause");
break;
case 2: mostrarLista(lista);
cout<<"\n";
system("pause");
break;
case 3: cout<<"\nIngrese el Numero de Cedula a Buscar en el Registro: ";
cin>>c;
buscarLista(lista,c);
cout<<"\n";
system("pause");
break;
case 4: cout<<"\nIngrese el Numero de Cedula a Eliminar del Registro: ";
cin>>c;
eliminarNodo(lista,c);
cout<<"\n";
system("pause");
break;
case 5:
while(lista != NULL){
eliminarLista(lista,c);
cout<<c <<" -> ";
}
cout<<"\n";
system("pause");
break;
}
system("cls");
}while(opcion != 6);
}
void insertarLista(Registro *&,int c, string n, string a, int e, char s){
Registro *nuevo_registro = new Registro();
nuevo_registro->cedula = c;
nuevo_registro->nombre = n;
nuevo_registro->apellido = a;
nuevo_registro->edad = e;
nuevo_registro->sexo = s;
Registro *aux1 = lista;
Registro *aux2;
while((aux1 != NULL) && (aux1->cedula < c), (aux1->nombre < n), (aux1->apellido < a), (aux1->edad < e), (aux1->sexo < s)){
aux2 = aux1;
aux1 = aux1->Rpersona;
}
if(lista == aux1){
lista = nuevo_registro;
}
else{
aux2->Rpersona = nuevo_registro;
}
nuevo_registro->Rpersona = aux1;
cout<<"\tPersona "<<c<<" insertada a la lista correctamente\n";
}
void mostrarLista(Registro *lista){
Registro *actual = new Registro();
actual = lista;
while(actual != NULL){
cout<<actual->cedula<<" -> ";
cout<<actual->nombre<<" -> ";
cout<<actual->apellido<<" -> ";
cout<<actual->edad<<" -> ";
cout<<actual->sexo<<" -> ";
actual = actual->Rpersona;
}
}
void buscarLista(Registro *lista,int c,string n,string a,int e,char s){
bool band = false;
Registro *actual = new Registro();
actual = lista;
while((actual != NULL) && (actual->cedula <= c), (actual->nombre <= n), (actual->apellido <= a),(actual->edad <= e), (actual->sexo <= s)){
if((actual->cedula == c), (actual->nombre == n), (actual->apellido == a), (actual->edad == e), (actual->sexo == s)){
band = true;
}
actual = actual->Rpersona;
}
if(band == true){
cout<<"Persona "<<n<<" SI a sido encontrado en lista\n";
}
else{
cout<<"Persona "<<n<<" NO a sido encontrado en la lista\n";
}
}
void eliminarNodo(Registro *&lista,int c,string n, string a, int e, char s){
if(lista != NULL){
Registro *aux_borrar;
Registro *anterior = NULL;
aux_borrar = lista;
while((aux_borrar != NULL) && (aux_borrar->cedula != c), (aux_borrar->nombre != n), (aux_borrar->apellido != a), (aux_borrar->edad != e), (aux_borrar->sexo != s)){
anterior = aux_borrar;
aux_borrar = aux_borrar->Rpersona;
}
if(aux_borrar == NULL){
cout<<"La persona no ha sido encontrado";
}
else if(anterior == NULL){
lista = lista->Rpersona;
delete aux_borrar;
}
else {
anterior->Rpersona = aux_borrar->Rpersona;
delete aux_borrar;
}
}
}
void eliminarLista(Registro *&lista,int &c, string &n, string &a,int &e, char &s){
Registro *aux = lista;
c = aux->cedula;
n = aux->nombre;
a = aux->apellido;
e = aux->edad;
s = aux->sexo;
lista = aux->Rpersona;
delete aux;
}