Popular channels

Varios Datos en una lista enlazada

Muy buenas , tenia mi lista muy bien hecha con enteros, pero ahora me piden que de la clase cliente que tengo pueda capturar en la lista varios datos; nombre , servicio , id del cliente y duracion de llamada. Aqui les dejo el codigo,

Cliente.h

#ifndef CLIENTE_H
#define CLIENTE_H
#include "nodoCliente.h"
#include

class Cliente
{
private:
NodoCliente *encabezado;
int id;
int duracion;
std::string nombre;
std::string servicio;
public:
Cliente();
NodoCliente* getEncabezado();
void setEncabezado(NodoCliente*);
NodoCliente* getUltimo();
int getId();
void setId(int);
int getDuracion();
void setDuracion(int);
std::string getNombre();
void setNombre(std::string);
std::string getSevicio();
void setServicio(std::string);

void insertar(NodoCliente*);
void eliminar(Cliente);
NodoCliente* localizar(Cliente);
void vaciar(Cliente);
};

#endif // CLIENTE_H

Cliente.cpp
#include "cliente.h"
#include "nodoCliente.h"
#include
#include

using namespace std;
Cliente::Cliente()
{
id = -1;
nombre= " ";
duracion= 0;
servicio = " ";
}
NodoCliente* Cliente::getEncabezado()
{
return encabezado;
}

void Cliente::setEncabezado(NodoCliente* e)
{
encabezado = e;
}

int Cliente::getId()
{
return id;
}

void Cliente::setId(int I)
{
id = I;
}

int Cliente::getDuracion()
{
return duracion;
}

void Cliente::setDuracion(int d)
{
duracion = d;
}

string Cliente::getNombre()
{
return nombre;
}

void Cliente::setNombre(string n)
{
nombre= n;
}

string Cliente::getSevicio()
{
return servicio;
}

void Cliente::setServicio(string s)
{
servicio = s;
}
void Cliente::insertar(NodoCliente *Nuevo)
{
if (getEncabezado()==NULL)
setEncabezado(Nuevo);
else
getUltimo()->setSig(Nuevo);
}

void Cliente::eliminar(Cliente numero)
{
NodoCliente *Busqueda = getEncabezado();
NodoCliente *Anterior = NULL;
if(Busqueda->getDato()==numero)
setEncabezado(getEncabezado()->getSig());
else
{
while((Busqueda!=NULL) && (Busqueda->getDato()!=numero)){

Anterior = Busqueda;
Busqueda = Busqueda->getSig();
}
if(Busqueda!=NULL){
Anterior->setSig(Busqueda->getSig());
}

}
delete Busqueda;


}
NodoCliente* Cliente::localizar(Cliente numero)
{
NodoCliente *Busqueda = getEncabezado();
while((Busqueda!=NULL) && (Busqueda->getDato()!=numero))
Busqueda= Busqueda->getSig();
return Busqueda;
}


void Cliente::vaciar(Cliente numero)
{
NodoCliente *Vaciar = getEncabezado();
NodoCliente *Anterior= NULL;
setEncabezado(getEncabezado()->getSig());
while(Vaciar!= NULL){
Anterior = Vaciar;
Vaciar = Vaciar->getSig();
}
if(Vaciar!= NULL)
Anterior->setSig(Vaciar->getSig());

delete Vaciar;
}

nodoCliente.h
#define NODOCLIENTE_H
#include
#include "cliente.h"


class NodoCliente
{
private:
Cliente dato;
NodoCliente* sig;
public:
NodoCliente();

Cliente getDato();
void setDato(Cliente);
NodoCliente* getSig();
void setSig(NodoCliente*);
};

#endif // NODOCLIENTE_H

nodoCliente.cpp
#include "nodoCliente.h"
#include
#include

using namespace std;

NodoCliente::NodoCliente()
{
dato = 0;
sig = NULL;

}

Cliente NodoCliente::getDato()
{
return dato;
}

void NodoCliente::setDato(Cliente c)
{
Cliente = c;
}

NodoCliente* NodoCliente::getSig()
{
return sig;
}

void NodoCliente::setSig(NodoCliente* s)
{
sig = s;
}

main.cpp

#include
#include
#include
#include "cliente.h"
#include "nodoCliente.h"

using namespace std;

char Menu(){
int opc;


cout<<"tMenu de registro"< cout<<"1.- Agregar Cliente"< cout<<"2.- Mostrar Cliente"< cout<<"3.- Buscar Cliente"< cout<<"4.- Eliminar Cliente"< cout<<"5.- Vaciar Lista"< cout<<"6.- Salir"< cout<<"Que desea hacer? Elije una opcion: ";cin>>opc;

if((opc<1)or(opc>7)){
system("cls");
cout<<"Opcion invalida, intente de nuevo"< system("pause");
system("cls");
}while((opc<1)or(opc>7));
return opc;

}



int main()
{
char opc = ' ';
NodoCliente Temp;
Temp tm;
NodoCliente *Aux= NULL, *temp=NULL;
Cliente *Cadena = new Cliente();
int numero= 0;
string nombre = " ";
bool vacio = true;
do{
opc= Menu();
system("cls");
switch(opc){
case 1:
cout<<"Agregar Cliente"< Aux = new NodoCliente();
cout<<"Ingrese el nuevo numero"< cin>>tm;
Aux->setDato(tm);
Cadena->insertar(Aux);
cout<<"Numero guardado"< break;
case 2:
int i;
cout<<"Mostrar Cliente"<
if(Cadena->getEncabezado()!= 0){
temp=Cadena->getEncabezado();
while(temp!=NULL){
cout<getDato()< temp=temp->getSig();

}
}

else
cout<<"Lista Vacia"<
break;
case 3:
int op;

cout<<"Buscar Cliente"< cout<<"Ingrese el numero a buscar: ";cin>>tm;
temp=Cadena->localizar(tm);
if(temp!=NULL)
cout<<"EL numero fue localizado y es: "<getDato()< else
cout<<"Numero no hallado o no existente"<

break;
case 4:
cout<<"Eliminar Cliente"< cout<<"Ingrese el numero a eliminar: ";cin>>tm;
temp = Cadena->localizar(tm);
if(temp!=NULL){
Cadena->eliminar(tm);
cout<<"Numero eliminado exitosamente!"< }
else
cout<<"Numero no hallado o no existente"< break;
break;
case 5:
cout<<"Vaciar Lista"< cout<<"Se eliminara toda la lista"< temp = Cadena->getEncabezado();

while(temp!=NULL){
Cadena->vaciar(tm);
temp = temp->getSig();
}
break;
case 6:
cout<<"Gracias!"< break;
}
system("pause");
system("cls");
}while(opc!=6);




return 0;
}
0
0
0
0No comments yet