0% encontró este documento útil (0 votos)
14 vistas16 páginas

Prac 04 Parc 01

Este documento presenta una clase llamada LDE que implementa una lista doblemente enlazada para almacenar datos de calzado. La clase incluye métodos para insertar, ordenar, buscar, modificar y eliminar nodos de la lista, así como imprimir la lista.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
14 vistas16 páginas

Prac 04 Parc 01

Este documento presenta una clase llamada LDE que implementa una lista doblemente enlazada para almacenar datos de calzado. La clase incluye métodos para insertar, ordenar, buscar, modificar y eliminar nodos de la lista, así como imprimir la lista.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

# include <MMD_Funcs.

h>// Mi propia libreria que tiene mis funciones y las demas librerias

using namespace std;

struct Datos{

char Marca [15];

char Modelo[30];

int Color;

float Precio;

double Talla;

};

Datos Ini={'\0,\0,0,0.0.0.0'};

Datos LeerDatos(){

Datos L;

cout <<" Marca de Calzado : " ;cin>>L.Marca;

cout<<endl; fflush(stdin);

cout<<" Modelo de Calzado : "; cin>> L.Modelo;

cout<<endl; fflush(stdin);

cout<< " Ingrese el Tipo de color "<<endl<<endl;

cout<< " 1)Blanco 2)Negro 3)Gris 4)Azul 5)Rojo 6)Personalizado"<<endl<<endl;

cout<<" Color : "; cin>>L.Color;

cout<<endl;

cout<<" Precio : $"; cin>> L.Precio;

cout<<endl;

cout<<" Talla (MEX) : "; cin>> L.Talla;

return(L);

}
class Nodo

{ Datos Dato;

Nodo *sig, *ant;

public:

Nodo(Datos d=Ini, Nodo *a=NULL, Nodo *s=NULL)

{ Dato = d; ant = a; sig = s;}

void ModDatos (Datos d) {Dato=d;}

void ModAnt (Nodo *a) { ant=a;}

void ModMarca(char M[15]){strcpy(M,Dato.Marca);}

void ModModelo(char m[30]){strcpy(m,Dato.Modelo);} //Se aplica la función strcpy()

void ModColor(int c) {Dato.Color=c;}

void ModPrecio(float p) {Dato.Precio=p;}

void ModTalla(double t) {Dato.Talla=t;}

void ModSig(Nodo *s) {sig=s;}

Datos RegDato() {return(Dato);}

char *RegMarca() {return(Dato.Marca);}

char *RegModelo() {return(Dato.Modelo);}

int RegColor() {return(Dato.Color);}

float RegPrecio() {return(Dato.Precio);}

double RegTalla() {return(Dato.Talla);}

Nodo *RegSig() {return(sig);}

Nodo *RegAnt() {return(ant);}

};

class LDE

{ Nodo *st, *ed, *gen;

Nodo *aux, *aux1;//


public:

LDE(){ st=ed=gen=NULL; }

void Insertar(Datos x);

void InsOrd(Datos x);

void Buscar(char M[30]);

void Modificar();

void Eliminar();

void GuardaArch();

void LeerArch();

void Imprimir();

};

void LDE::Insertar(Datos x){

if (st==NULL){

gen = new Nodo(x);

if(gen==NULL){

cout<< "No hay memoria";

exit(1);

st=ed=gen;

else{

Nodo *p=gen;

gen = new Nodo(x,p);//

if(gen==NULL){

cout<< "No hay memoria";

exit(1);

}
p->ModSig(gen);

ed=gen;

void LDE::InsOrd(Datos x){

Nodo *p, *q;

if (st == NULL){

gen = new Nodo(x);

if(gen==NULL){

cout<< "No hay memoria";

exit(1);

st=ed=gen;

} else {

p = st;

if(strcmp(x.Modelo,p->RegModelo())<0){ //

gen = new Nodo(x,NULL,p);

if(gen==NULL){

cout<< "No hay memoria";

exit(1);

st = gen;

} else {

p = ed;

if(strcmp(x.Modelo,p->RegModelo())>0){

gen = new Nodo(x,p);


if(gen==NULL){

cout<< "No hay memoria";

exit(1);

p->ModSig(gen);

ed=gen;

} else {

p=st;

while(strcmp(x.Modelo,p->RegModelo())>0){

p=p->RegSig();

q=p->RegAnt();

gen = new Nodo(x,q,p);

if(gen==NULL){

cout<< "No hay memoria";

exit(1);

p->ModAnt(gen);

q->ModSig(gen);

//cin.getline(2);

// condiciones y funcion para que me ordene los caraceres alfabeticamente

void LDE::Buscar(char M[30]){

aux = st;
while(strcmp(M,aux->RegModelo())!=0){//

aux1=aux;

aux = aux->RegSig();

if(aux==NULL){

cout<<"No existe el modelo" ;

return;

cout<<" Modelo encontrado ";

cout <<"\n\t" <<aux -> RegMarca()<<setw(10)

<<aux -> RegModelo()<<setw(10)<<"\n";

return;

void LDE::Modificar(){

Datos NvoDato;

NvoDato = LeerDatos();

aux->ModDatos(NvoDato);

cout<< aux->RegMarca()<<"\t"

<< aux->RegModelo()<<"\t"

<< aux->RegColor()<<"\t"

<< aux->RegPrecio()<<"\t"

<< aux->RegTalla()<<endl;

void LDE::Eliminar(){

if(aux==st){

st =aux->RegSig();
aux->ModSig(NULL);

delete(aux);

} else{

if(aux==ed){

ed=aux1;

aux1->ModSig(NULL);

delete(aux);

} else{

aux1->ModSig(aux->RegSig());

aux->ModSig(NULL);

delete(aux);

void LDE::Imprimir(){

Nodo *i;

cout<<setw(12)<<" -Marca-"<<setw(10)<<" -Modelo-"<<

setw(10)<<" -#Color-"<<setw(10)<<" -Precio-"<<

setw(10)<<" -Talla-"<<endl;

for( i = st; i != NULL; i = i->RegSig()){

cout <<"\n\t" <<i -> RegMarca()<<setw(10)<<

i -> RegModelo()<<setw(10)<<

i -> RegColor()<<setw(10)<<

i -> RegPrecio()<<setw(10)<<

i -> RegTalla()<<setw(10)<<"\n";
}

cout<<endl<<endl;

for ( i = ed; i != NULL; i = i->RegAnt()){

cout <<"\n\t" <<i -> RegMarca()<<setw(10)<<

i -> RegModelo()<<setw(10)<<

i -> RegColor()<<setw(10)<<

i -> RegPrecio()<<setw(10)<<

i -> RegTalla()<<setw(10)<<"\n";

int main(){

LDE J;

Datos l;

Datos M;

int opc;

char sal;

system ("cls"); Titulos("LSE"); Inicio();// mi propia funcion de mi propia libreria # include


<MMD_Funcs.h>

do{

cout <<"\n\n"<<setw(14)<<" Menu "<<endl;

cout << "\n 1) -- Insertar --"<<endl;

cout << " 2) -- Ordenar --" <<endl;

cout << " 3) -- Modificar --" <<endl;

cout << " 4) -- Eliminar --" <<endl;


cout << " 5) -- Imprimir --" <<endl;

cout << " 6) -- Salir --"<<endl<<endl;

cout << "Seleccione la opcion : ";

cin>>opc;

switch (opc){

case 1:

system ("cls"); Titulos("LSE"); Inicio();//

cout<<"\n INGRESE LOS DATOS DEL CALZADO"<<endl<<endl;

l=LeerDatos();

J.Insertar(l);

getch();

break;

case 2:

system ("cls"); Titulos("LSE"); Inicio();//

cout << " DATOS ORDENADOS "<<endl<<endl;

J.InsOrd(l);

J.Imprimir();

getch();

break;

case 3:

system ("cls"); Titulos("LSE"); Inicio();

J.Imprimir();

cout<<"\n Ingrese el Dato que desea Modificar: " ;

cin>>l.Modelo; fflush(stdin);

J.Buscar(l.Modelo);

J.Modificar();

J.Imprimir();
getch();

break;

case 4:

system ("cls"); Titulos("LSE"); Inicio();

J.Imprimir();

cout<<"\n Ingrese el Dato que desea Eliminar: " ;

cin>>l.Modelo; fflush(stdin);

J.Buscar(l.Modelo);//

J.Eliminar();

J.Imprimir();

break;

case 5:

system ("cls"); Titulos("LSE"); Inicio();//

cout<<" DATOS OBTENIDOS :"<<endl;

J.Imprimir();

getch();

break;

case 6:

exit(6);

break;

default:

cout << "\nIngrese opcion valida";

cout << "\n\nDeseas realizar otra operacion?: S/N ";

cin >> sal;

sal = toupper(sal);
system ("cls"); Titulos("LSE"); Inicio( );

while(sal=='S');

cout << "Proceso terminado. Oprima una tecla...";

getch( );

return 0;

También podría gustarte