Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream.h>
- #include <conio.h>
- #include <fstream.h>
- #include <stdio.h>
- #include <stdlib.h>
- struct nodo{
- char placa[20],marca[20],tipo[20],color[20];
- nodo *sig;
- };
- //LISTAS ENLAZADAS_crear
- nodo *crear_i(nodo *p);
- nodo *crear_f(nodo *p);
- //LISTAS ENLAZADAS_insertar
- nodo *inserta_i(nodo *p);
- nodo *inserta_f(nodo *p);
- nodo *inserta_ad(nodo *p);
- void inserta_dd(nodo *p);
- //LISTAS ENLAZADAS_eliminar
- nodo *elimina_i(nodo *p);
- nodo *elimina_f(nodo *p);
- nodo *elimina_x(nodo *p);
- nodo *elimina_ad(nodo *p);
- void elimina_dd(nodo *p);
- //EXTRAS
- int eliminar_rep(nodo *p,char *dato);
- void modificar(nodo *p);
- nodo *ordenar(nodo *p);
- void buscar(nodo *p);
- void recorre(nodo *p);
- //ARCHIVOS
- nodo *recargar(nodo *p);
- void soltar(nodo *p);
- //nodo *revierte(nodo *p);
- void main(void)
- {
- nodo *p = NULL,*q,*r;
- int crea = 0;
- p = recargar(p);
- //ELIMINAR...
- if(p != NULL)
- {
- q = p;
- while(q->sig != NULL)
- {
- r = q;
- q = q->sig;
- }
- r->sig = NULL;
- delete(q);
- crea = 1;
- }
- //
- char op,opt;
- do
- {
- clrscr();
- gotoxy(16,5);cout<<"LISTAS ENLAZADAS - ARCHIVOS";
- gotoxy(16,6);cout<<"===========================";
- gotoxy(17,8);cout<<"1. CREAR...";
- gotoxy(17,10);cout<<"2. INSERTAR...";
- gotoxy(17,12);cout<<"3. ELIMINAR...";
- gotoxy(17,14);cout<<"4. MODIFICAR...";
- gotoxy(17,16);cout<<"5. ORDENAR...";
- gotoxy(17,18);cout<<"6. BUSCAR...";
- gotoxy(17,20);cout<<"7. VISUALIZAR...";
- gotoxy(17,22);cout<<"0. SALIR";
- gotoxy(20,25);cout<<"OPCION : ";cin>>op;
- switch(op)
- {
- case '1':
- do
- {
- clrscr();
- gotoxy(16,5);cout<<"C R E A C I O N";
- gotoxy(16,6);cout<<"===============";
- gotoxy(17,8);cout<<"1. POR EL INICIO";
- gotoxy(17,10);cout<<"2. POR EL FINAL";
- gotoxy(17,12);cout<<"3. VISUALIZAR";
- gotoxy(17,14);cout<<"0. SALIR";
- gotoxy(20,25);cout<<"OPCION : ";cin>>opt;
- switch(opt)
- {
- case '1':
- clrscr();
- if(p != NULL)
- {
- gotoxy(20,10);cout<<"BORRARAS TODOS LOS DATOS, DESEA SEGUIR?(1:SI|2:NO): ";cin>>opt;
- if(opt == '1')
- {
- crea = 0;
- }
- }
- if(crea == 0)
- {
- p = crear_i(p);
- crea = 1;
- }
- break;
- case '2':
- clrscr();
- if(p != NULL)
- {
- gotoxy(20,10);cout<<"BORRARAS TODOS LOS DATOS, DESEA SEGUIR?(1:SI|2:NO): ";cin>>opt;
- if(opt == '1')
- {
- crea = 0;
- }
- }
- if(crea == 0)
- {
- p = crear_f(p);
- crea = 1;
- }
- break;
- case '3':
- recorre(p);
- break;
- case '0':
- break;
- default:
- opt = '0';
- }
- }while(opt != '0');
- break;
- case '2':
- do
- {
- clrscr();
- gotoxy(16,5);cout<<"I N S E R T A R";
- gotoxy(16,6);cout<<"===============";
- gotoxy(17,8);cout<<"1. POR EL INICIO";
- gotoxy(17,10);cout<<"2. POR EL FINAL";
- gotoxy(17,12);cout<<"3. ANTES DE X";
- gotoxy(17,14);cout<<"4. DESPUES DE X";
- gotoxy(17,16);cout<<"5. VISUALIZAR";
- gotoxy(17,18);cout<<"0. SALIR";
- gotoxy(20,25);cout<<"OPCION : ";cin>>opt;
- switch(opt)
- {
- case '1':
- p = inserta_i(p);
- crea = 1;
- break;
- case '2':
- p = inserta_f(p);
- crea = 1;
- break;
- case '3':
- p = inserta_ad(p);
- break;
- case '4':
- inserta_dd(p);
- break;
- case '5':
- recorre(p);
- break;
- case '0':
- break;
- default:
- opt = '0';
- }
- }while(opt != '0');
- break;
- case '3':
- do
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R";
- gotoxy(16,6);cout<<"===============";
- gotoxy(17,8);cout<<"1. POR EL INICIO";
- gotoxy(17,10);cout<<"2. POR EL FINAL";
- gotoxy(17,12);cout<<"3. DATO ESPECIFICO";
- gotoxy(17,14);cout<<"4. ANTES DE X";
- gotoxy(17,16);cout<<"5. DESPUES DE X";
- gotoxy(17,18);cout<<"6. VISUALIZAR";
- gotoxy(17,20);cout<<"0. SALIR";
- gotoxy(20,25);cout<<"OPCION : ";cin>>opt;
- switch(opt)
- {
- case '1':
- p = elimina_i(p);
- if(p == NULL)
- {
- crea = 0;
- }
- break;
- case '2':
- p = elimina_f(p);
- if(p == NULL)
- {
- crea = 0;
- }
- getch();
- break;
- case '3':
- p = elimina_x(p);
- if(p == NULL)
- {
- crea = 0;
- }
- break;
- case '4':
- p = elimina_ad(p);
- break;
- case '5':
- elimina_dd(p);
- break;
- case '6':
- recorre(p);
- break;
- case '0':
- break;
- default:
- opt = '0';
- }
- }while(opt != '0');
- break;
- case '4':
- modificar(p);
- break;
- case '5':
- p = ordenar(p);
- break;
- case '6':
- buscar(p);
- break;
- case '7':
- recorre(p);
- break;
- case '0':
- break;
- default:
- op = '0';
- }
- }while (op != '0');
- soltar(p);
- getch();
- }
- //LISTAS ENLAZADAS_crear
- nodo *crear_i(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"C R E A C I O N D E D A T O S (INICIO)";
- gotoxy(16,6);cout<<"==========================================";
- nodo *q;
- p = NULL;
- char dato[8],op;
- int cen,i = 0;
- do
- {
- gotoxy(17,8+i*11);cout<<"INGRESE LOS DATOS";
- gotoxy(18,10+i*11);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,11+i*11);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,12+i*11);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,13+i*11);cout<<"COLOR : ";gets(q->color);
- q->sig = p;
- p = q;
- gotoxy(17,15+i*11);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,12+i*11);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- gotoxy(17,17+i*11);cout<<"DESEA MAS DATOS?(1:SI|2:NO): ";cin>>op;
- i++;
- }while(op == '1');
- getch();
- return (p);
- }
- nodo *crear_f(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"C R E A C I O N D E D A T O S (FINAL)";
- gotoxy(16,6);cout<<"=========================================";
- nodo *q,*r;
- p = NULL;
- int cen,i = 0;
- char dato[8],op;
- do
- {
- gotoxy(17,8+i*11);cout<<"INGRESE LOS DATOS";
- gotoxy(18,10+i*11);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,11+i*11);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,12+i*11);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,13+i*11);cout<<"COLOR : ";gets(q->color);
- q->sig = NULL;
- if(p == NULL)
- {
- p = q;
- }
- else
- {
- r->sig = q;
- }
- r = q;
- gotoxy(17,15+i*11);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,12+i*11);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- gotoxy(17,17+i*11);cout<<"DESEA MAS DATOS?(1:SI|2:NO): ";cin>>op;
- i++;
- }while(op == '1');
- getch();
- return (p);
- }
- //LISTAS ENLAZADAS_insertar
- nodo *inserta_i(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"I N S E R T A R D A T O S (INICIO)";
- gotoxy(16,6);cout<<"====================================";
- nodo *q;
- char dato[8];
- int cen;
- gotoxy(17,8);cout<<"INGRESE LOS DATOS";
- gotoxy(18,10);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,11);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,12);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,13);cout<<"COLOR : ";gets(q->color);
- q->sig = p;
- p = q;
- gotoxy(17,15);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,12);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- getch();
- return (p);
- }
- nodo *inserta_f(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"I N S E R T A R D A T O S (FINAL)";
- gotoxy(16,6);cout<<"====================================";
- nodo *q,*r;
- int cen;
- char dato[8];
- gotoxy(17,8);cout<<"INGRESE LOS DATOS";
- gotoxy(18,10);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,11);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,12);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,13);cout<<"COLOR : ";gets(q->color);
- q->sig = NULL;
- if(p == NULL)
- {
- p = q;
- }
- else
- {
- r = p;
- while(r->sig != NULL)
- {
- r = r->sig;
- }
- r->sig = q;
- }
- gotoxy(17,15);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,12);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- getch();
- return (p);
- }
- nodo *inserta_ad(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"I N S E R T A R (ANTES DE)";
- gotoxy(16,6);cout<<"==========================";
- if(p != NULL)
- {
- nodo *q,*s,*r;
- int cen = 0;
- char dato[8];
- r = p;
- gotoxy(17,8);cout<<"INGRESE NUM DE PLACA REFERENCIAL: ";gets(dato);
- while(strcmp(r->placa,dato) != 0 && cen == 0)
- {
- if(r->sig != NULL)
- {
- s = r;
- r = r->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- gotoxy(17,10);cout<<"INGRESE LOS DATOS";
- gotoxy(18,12);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,13);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,14);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,15);cout<<"COLOR : ";gets(q->color);
- q->sig = r;
- if(r == p)
- {
- p = q;
- }
- else
- {
- s->sig = q;
- }
- gotoxy(17,17);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,14);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA REFERENCIAL...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA REFERENCIAR...";
- }
- getch();
- return (p);
- }
- void inserta_dd(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"I N S E R T A R (DESPUES DE)";
- gotoxy(16,6);cout<<"============================";
- if(p != NULL)
- {
- nodo *q,*s,*r;
- int cen = 0;
- char dato[8];
- r = p;
- gotoxy(17,8);cout<<"INGRESE NUM DE PLACA REFERENCIAL: ";gets(dato);
- while(strcmp(r->placa,dato) != 0 && cen == 0)
- {
- if(r->sig != NULL)
- {
- r = r->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- gotoxy(17,10);cout<<"INGRESE LOS DATOS";
- gotoxy(18,12);cout<<"PLACA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- q = new(nodo);
- strcpy(q->placa,dato);
- gotoxy(18,13);cout<<"MARCA : ";gets(q->marca);
- gotoxy(18,14);cout<<"TIPO : ";gets(q->tipo);
- gotoxy(18,15);cout<<"COLOR : ";gets(q->color);
- q->sig = r->sig;
- r->sig = q;
- gotoxy(17,17);cout<<"DATOS INSERTADOS EXITOSAMENTE...";
- }
- else
- {
- gotoxy(17,14);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA REFERENCIAL...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA REFERENCIAR...";
- }
- getch();
- }
- //LISTAS ENLAZADAS_eliminar
- nodo *elimina_i(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R (INICIO)";
- gotoxy(16,6);cout<<"========================";
- if(p != NULL)
- {
- nodo *q;
- int op;
- q = p;
- gotoxy(17,8);cout<<"MOSTRANDO DATOS";
- gotoxy(18,10);cout<<"PLACA : "<<q->placa;
- gotoxy(18,11);cout<<"MARCA : "<<q->marca;
- gotoxy(18,12);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,13);cout<<"COLOR : "<<q->color;
- gotoxy(17,15);cout<<"ESTAS SEGURO QUE DESEAS ELIMINAR LOS DATOS?(1:SI|2:NO): ";cin>>op;
- if(op == 1)
- {
- p = p->sig;
- delete (q);
- gotoxy(17,17);cout<<"DATOS ELIMINADOS";
- }
- else
- {
- gotoxy(17,17);cout<<"DATOS NO ELIMINADOS";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA ELIMINAR...";
- }
- getch();
- return (p);
- }
- nodo *elimina_f(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R (FINAL)";
- gotoxy(16,6);cout<<"=======================";
- if(p != NULL)
- {
- nodo *q,*r;
- int op;
- q = p;
- while(q->sig != NULL)
- {
- r = q;
- q = q->sig;
- }
- gotoxy(17,8);cout<<"MOSTRANDO DATOS";
- gotoxy(18,10);cout<<"PLACA : "<<q->placa;
- gotoxy(18,11);cout<<"MARCA : "<<q->marca;
- gotoxy(18,12);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,13);cout<<"COLOR : "<<q->color;
- gotoxy(17,15);cout<<"ESTAS SEGURO QUE DESEAS ELIMINAR LOS DATOS?(1:SI|2:NO): ";cin>>op;
- if(op == 1)
- {
- if(p == q)
- {
- p = p->sig;
- }
- else
- {
- r->sig = NULL;
- }
- delete (q);
- gotoxy(17,17);cout<<"DATOS ELIMINADOS";
- }
- else
- {
- gotoxy(17,17);cout<<"DATOS NO ELIMINADOS";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA ELIMINAR...";
- }
- return (p);
- }
- nodo *elimina_x(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R (DATO X)";
- gotoxy(16,6);cout<<"========================";
- if(p != NULL)
- {
- nodo *q,*r;
- int op,cen = 0;
- char dato[8];
- q = p;
- gotoxy(17,8);cout<<"INGRESE NUM. DE PLACA A ELIMINAR: ";gets(dato);
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- r = q;
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- gotoxy(17,10);cout<<"MOSTRANDO DATOS A ELIMINAR";
- gotoxy(18,12);cout<<"PLACA : "<<q->placa;
- gotoxy(18,13);cout<<"MARCA : "<<q->marca;
- gotoxy(18,14);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,15);cout<<"COLOR : "<<q->color;
- gotoxy(17,17);cout<<"ESTAS SEGURO QUE DESEA ELIMINAR LOS DATOS?(1:SI|2:NO): ";cin>>op;
- if(op == 1)
- {
- if(q = p)
- {
- p = p->sig;
- }
- else
- {
- r->sig = q->sig;
- }
- delete (q);
- gotoxy(17,19);cout<<"DATOS ELIMINADOS";
- }
- else
- {
- gotoxy(17,19);cout<<"DATOS NO ELIMINADOS";
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA REFERENCIAL...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA ELIMINAR...";
- }
- getch();
- return (p);
- }
- nodo *elimina_ad(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R (ANTES DE)";
- gotoxy(16,6);cout<<"========================";
- if(p != NULL)
- {
- nodo *q,*r,*s;
- int op,cen = 0;
- char dato[8];
- q = p;
- r = q;
- gotoxy(17,8);cout<<"INGRESE NUM. DE PLACA REFERENCIAL: ";gets(dato);
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- s = r;
- r = q;
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- if(q == p)
- {
- gotoxy(17,10);cout<<"NO EXISTE UNA PLACA ANTES DEL REFERENCIAL...";
- }
- else
- {
- gotoxy(17,10);cout<<"MOSTRANDO DATOS A ELIMINAR";
- gotoxy(18,12);cout<<"PLACA : "<<r->placa;
- gotoxy(18,13);cout<<"MARCA : "<<r->marca;
- gotoxy(18,14);cout<<"TIPO : "<<r->tipo;
- gotoxy(18,15);cout<<"COLOR : "<<r->color;
- gotoxy(17,17);cout<<"ESTAS SEGURO QUE DESEA ELIMINAR LOS DATOS?(1:SI|2:NO): ";cin>>op;
- if(op == 1)
- {
- if(r == p)
- {
- p = p->sig;
- }
- else
- {
- s->sig = q;
- }
- delete (r);
- gotoxy(17,19);cout<<"DATOS ELIMINADOS";
- }
- else
- {
- gotoxy(17,19);cout<<"DATOS NO ELIMINADOS";
- }
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA REFERENCIAL...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA ELIMINAR...";
- }
- getch();
- return (p);
- }
- void elimina_dd(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"E L I M I N A R (DESPUES DE)";
- gotoxy(16,6);cout<<"========================";
- if(p != NULL)
- {
- nodo *q,*r;
- int op,cen = 0;
- char dato[8];
- q = p;
- gotoxy(17,8);cout<<"INGRESE NUM. DE PLACA A ELIMINAR: ";gets(dato);
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- if(q->sig == NULL)
- {
- gotoxy(17,10);cout<<"NO EXISTE UNA PLACA DESPUES DEL REFERENCIAL...";
- }
- else
- {
- r = q->sig;
- gotoxy(17,10);cout<<"MOSTRANDO DATOS A ELIMINAR";
- gotoxy(18,12);cout<<"PLACA : "<<r->placa;
- gotoxy(18,13);cout<<"MARCA : "<<r->marca;
- gotoxy(18,14);cout<<"TIPO : "<<r->tipo;
- gotoxy(18,15);cout<<"COLOR : "<<r->color;
- gotoxy(17,17);cout<<"ESTAS SEGURO QUE DESEA ELIMINAR LOS DATOS?(1:SI|2:NO): ";cin>>op;
- if(op == 1)
- {
- q->sig = r->sig;
- delete(r);
- gotoxy(17,19);cout<<"DATOS ELIMINADOS";
- }
- else
- {
- gotoxy(17,19);cout<<"DATOS NO ELIMINADOS";
- }
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA REFERENCIAL...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO EXISTEN DATOS PARA ELIMINAR...";
- }
- getch();
- }
- //EXTRAS
- int eliminar_rep(nodo *p,char *dato)
- {
- int cen = 1;
- if(p != NULL)
- {
- cen = 0;
- nodo *q;
- q = p;
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- }
- return cen;
- }
- void modificar(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"M O D I F I C A R D A T O S";
- gotoxy(16,6);cout<<"=============================";
- if(p != NULL)
- {
- char op,opt,dato[20];
- int cen = 0;
- nodo *q;
- q = p;
- gotoxy(17,8);cout<<"INGRESE EL NUM DE PLACA A MODIFICAR: ";gets(dato);
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- gotoxy(17,10);cout<<"PLACA ENCONTRADA, MOSTRANDO DATOS";
- gotoxy(18,12);cout<<"PLACA : "<<q->placa;
- gotoxy(18,13);cout<<"MARCA : "<<q->marca;
- gotoxy(18,14);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,15);cout<<"COLOR : "<<q->color;
- gotoxy(17,17);cout<<"1. MODIFICAR TODO EL REGISTRO";
- gotoxy(17,19);cout<<"2. MODIFICAR UN SOLO DATO";
- gotoxy(17,21);cout<<"3. NO HACER NADA";
- gotoxy(17,23);cout<<"OPCION : ";cin>>op;
- switch(op)
- {
- case '1':
- gotoxy(18,25);cout<<"PLACA MODIFICADA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- strcpy(q->placa,dato);
- gotoxy(18,26);cout<<"MARCA MODIFICADA : ";gets(q->marca);
- gotoxy(18,27);cout<<"TIPO MODIFICADO : ";gets(q->tipo);
- gotoxy(18,28);cout<<"COLOR MODIFICADO : ";gets(q->color);
- }
- else
- {
- gotoxy(17,27);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- break;
- case '2':
- gotoxy(17,25);cout<<"QUE DESEA MODIFICAR?";
- gotoxy(17,26);cout<<"1.PLACA 2.MARCA 3.TIPO 4.COLOR";
- gotoxy(17,27);cout<<"OPCION : ";cin>>opt;
- switch(opt)
- {
- case '1':
- gotoxy(17,29);cout<<"ESTAS SEGURO QUE DESEAS MODIFICAR LA PLACA?(1:SI|2:NO): ";cin>>op;
- if(op == '1')
- {
- gotoxy(18,31);cout<<"PLACA MODIFICADA : ";gets(dato);
- cen = eliminar_rep(p,dato);
- if(cen == 1)
- {
- strcpy(q->placa,dato);
- }
- else
- {
- gotoxy(18,33);cout<<"EL NUM. DE PLACA YA ESTA EN USO...";
- }
- }
- break;
- case '2':
- gotoxy(18,29);cout<<"MARCA MODIFICADA : ";gets(q->marca);
- break;
- case '3':
- gotoxy(18,29);cout<<"TIPO MODIFICADO : ";gets(q->tipo);
- break;
- case '4':
- gotoxy(18,29);cout<<"COLOR MODIFICADO : ";gets(q->color);
- break;
- default:
- opt = 0;
- }
- if(opt == 0)
- {
- gotoxy(17,29);cout<<"ERROR AL MODIFICAR";
- }
- else
- {
- gotoxy(17,35);cout<<"DESEA VISUALIZAR LOS DATOS?(1:SI|2:NO): ";cin>>opt;
- if(opt == '1')
- {
- gotoxy(18,37);cout<<"PLACA : "<<q->placa;
- gotoxy(18,38);cout<<"MARCA : "<<q->marca;
- gotoxy(18,39);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,40);cout<<"COLOR : "<<q->color;
- }
- }
- break;
- case '3':
- gotoxy(18,25);cout<<"NO SE REALIZO NINGUNA ACCION...";
- break;
- default:
- op = '3';
- }
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA QUE DESEA MODIFICAR...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY ELEMENTOS...";
- }
- getch();
- }
- nodo *ordenar(nodo *p)
- {
- /*clrscr();
- gotoxy(16,5);cout<<"O R D E N A R D A T O S";
- gotoxy(16,6);cout<<"=========================";
- if(p != NULL)
- {
- nodo *q,*r,*aux,*min;
- q = p;
- while(q->sig != NULL)
- {
- min = q;
- r = q->sig;
- while(r != NULL)
- {
- if(strcmp(min->placa,r->placa) < 0)
- {
- min = r;
- }
- r = r->sig;
- }
- strcpy(aux->placa,q->placa);
- strcpy(q->placa,min->placa);
- strcpy(min->placa,aux->placa);
- strcpy(aux->marca,q->marca);
- strcpy(q->marca,min->marca);
- strcpy(min->marca,aux->marca);
- strcpy(aux->tipo,q->tipo);
- strcpy(q->tipo,min->tipo);
- strcpy(min->tipo,aux->tipo);
- strcpy(aux->color,q->color);
- strcpy(q->color,min->color);
- strcpy(min->color,aux->color);
- q = q->sig;
- }
- gotoxy(17,8);cout<<"DATOS ORDENADOS...";
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY DATOS PARA ORDENAR...";
- }
- getch(); */
- return (p);
- }
- void buscar(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"B U S C A R D A T O S";
- gotoxy(16,6);cout<<"=======================";
- if(p != NULL)
- {
- char op,dato[20];
- int cen = 0;
- nodo *q;
- q = p;
- gotoxy(17,8);cout<<"INGRESE EL NUM DE PLACA A BUSCAR: ";gets(dato);
- while(strcmp(q->placa,dato) != 0 && cen == 0)
- {
- if(q->sig != NULL)
- {
- q = q->sig;
- }
- else
- {
- cen = 1;
- }
- }
- if(cen == 0)
- {
- gotoxy(17,10);cout<<"PLACA ENCONTRADA, MOSTRANDO DATOS";
- gotoxy(18,12);cout<<"PLACA : "<<q->placa;
- gotoxy(18,13);cout<<"MARCA : "<<q->marca;
- gotoxy(18,14);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,15);cout<<"COLOR : "<<q->color;
- }
- else
- {
- gotoxy(17,10);cout<<"NO SE ENCONTRO LA PLACA QUE SE BUSCA...";
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY ELEMENTOS...";
- }
- getch();
- }
- void recorre(nodo *p)
- {
- clrscr();
- gotoxy(16,5);cout<<"V I S U A L I Z A R D A T O S";
- gotoxy(16,6);cout<<"===============================";
- if(p != NULL)
- {
- nodo *q;
- int i = 1,j = 0;
- q = p;
- while(q != NULL)
- {
- gotoxy(17,8+j*6);cout<<"VEHICULO N."<<i;
- gotoxy(18,9+j*6);cout<<"PLACA : "<<q->placa;
- gotoxy(18,10+j*6);cout<<"MARCA : "<<q->marca;
- gotoxy(18,11+j*6);cout<<"TIPO : "<<q->tipo;
- gotoxy(18,12+j*6);cout<<"COLOR : "<<q->color;
- gotoxy(17,13+j*6);cout<<"---------------------";
- q = q->sig;
- i++;
- j++;
- }
- }
- else
- {
- gotoxy(17,8);cout<<"NO HAY ELEMENTOS...";
- }
- getch();
- }
- //ARCHIVOS
- nodo *recargar(nodo *p)
- {
- nodo *q,*r;
- char dato[20];
- //CREANDO ARCHIVO
- ifstream archivo;
- //ABRIENDO ARCHIVO
- archivo.open("prueba.txt",ios::in);
- if(!archivo.fail())
- {
- while(!archivo.eof())
- {
- q = new(nodo);
- archivo.getline(dato,20);
- strcpy(q->placa,dato);
- archivo.getline(dato,20);
- strcpy(q->marca,dato);
- archivo.getline(dato,20);
- strcpy(q->tipo,dato);
- archivo.getline(dato,20);
- strcpy(q->color,dato);
- q->sig = NULL;
- if(p == NULL)
- {
- p = q;
- }
- else
- {
- r->sig = q;
- }
- r = q;
- }
- }
- archivo.close();
- return (p);
- }
- void soltar(nodo *p)
- {
- if(p != NULL)
- {
- //CREANDO ARCHIVO
- ofstream archivo;
- //ABRIENDO ARCHIVO
- archivo.open("prueba.txt",ios::out | ios::trunc);
- if(archivo.fail())
- {
- cout<<"\n\nNO SE PUDO ABRIR EL ARCHIVO...";
- exit(1);
- }
- while(p != NULL)
- {
- archivo<<p->placa<<endl;
- archivo<<p->marca<<endl;
- archivo<<p->tipo<<endl;
- archivo<<p->color<<endl;
- p = p->sig;
- }
- archivo.close();
- cout<<"\n\nDATOS ENVIADOS AL ARCHIVO...";
- }
- else
- {
- cout<<"\n\nNO HAY DATOS PARA ENVIAR AL ARCHIVO...";
- }
- }
- /*
- nodo *revierte(nodo *p)
- {
- if(p != NULL)
- {
- nodo *q,*s;
- s = p;
- p = NULL;
- while(s != NULL)
- {
- q = s;
- s = s->sig;
- q->sig = p;
- p = q;
- }
- }
- return (p);
- } */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement