#include"stdio.h"
#include"conio.h" //Tan feo ke suena si o no;-)
#include"alloc.h" //Tambien suena horrible
#include"ctype.h"
#include"time.h"
#include"dos.h"
#include"process.h"
#include"string.h"
#include"io.h"
#include"dir.h"
#define alo (struct nodo *)malloc(sizeof(struct nodo));
#define gopri(a,b,c) gotoxy(a,b); cprintf(c);
#define color(a,b) textcolor(a);textbackground(b);
typedef struct nodo{
char codigo[10];//codigo de articulo
char nom_art[20];//nombre del articulo
char desc[60];//descripcion el articulo
char cant[40];
char valor[10];//precio unitario del articulo
struct nodo *sig;
struct nodo *ant;
};
void cargar();
void guardar();
void agregar();
void buscar();
void inserta_reg(struct nodo *p);
void elimina(struct nodo *p);
void modifica(struct nodo *aux);
void mostrar();
void impri_code_c();
void impri_code_n();
void menu();
void boseto();
void listar_act_nodo();
void verifica_cod();
void verifica_val();
void vent_menu();
void vent_busc();
void verif_guard();
char *minus(char nombre[]);
struct nodo *localiza(char pnombre[]);
void ayuda();
void sonido(int frecuencia,int tiempo);
struct nodo *cab,*p,*n,*ap;
int n_art=0,guardado=0;
void main()
{
clrscr();
/*sonido(150,150);
sonido(350,350);
sonido(550,550);
sonido(750,750);*/
sonido(750,750);
sonido(550,550);
sonido(350,350);
sonido(150,150);
cargar();
menu();
}
/*-------------------------SONIDO MAQUILLAJE--------------------*/
void sonido(int frecuencia,int tiempo)
{
if (frecuencia > 0)
{
sound(frecuencia);
delay(tiempo);
nosound();
}
}
/*---------------------MENU PRINCIPAL DEL PROYECTO------------------*/
void menu()
{
int d,c,s,flar=25,flab=24,fder=17,fizq=16;
d=1;
while(d!=5)
{
time_t timer;
struct tm *tblock;
/* coge el tiempo actual */
timer = time(NULL);
/* convierte el dato del tiempo a una estructura */
tblock = localtime(&timer);
//--------------------------------
textmode(2);
color(0,6);//7
clrscr();
color(6+BLINK,0);
gotoxy(1,25);
cprintf("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",flab,flar);
color(0,6);
vent_menu();
d=1;
c=1;
do{
color(6,0);
gotoxy(1,24);
cprintf("HAY %d CLASES DE ARTICULOS EN LA LISTA. FECHA Y HORA -> %s",n_art,asctime(tblock));
gopri(27,2," MENU DE ENTRADA ");
color(0,6);
gopri(29,4," ADICIONAR ");
gopri(29,6," MOSTRAR ");
gopri(29,8," BUSCAR ");
gopri(29,10," GUARDAR ");
gopri(29,12," SALIR ");
gopri(29,14," AYUDA ");
if(d==0) d=6;
if(d==7) d=1;
color(6,0);
switch(d)
{
case 1 :gopri(29,4," ADICIONAR ");
break;
case 2 :gopri(29,6," MOSTRAR ");
break;
case 3 :gopri(29,8," BUSCAR ");
break;
case 4 :gopri(29,10," GUARDAR ");
break;
case 5 :gopri(29,12," SALIR ");
break;
case 6 :gopri(29,14," AYUDA ");
break;
}
c=getch();
if(c==72) d=d-1;
if(c==80) d=d+1;
}while(c!=13);
switch(d)
{
case 1 :agregar();
break;
case 2 :if(n_art>0)
{
p=cab;
if(n_art<2)
{
clrscr();
color(6+BLINK,0);
gotoxy(20,12);
cprintf("PRESIONA FLECHA %c- ¢ -%c, Y PRESIONA",fder,fizq);
gotoxy(20,13);
cprintf("ENTER PARA ESCOJER TU OPCION ART_Pako 1.0");
gotoxy(20,14);
cprintf("PRESIONA CUALQUIER TECLA PARA CONTINUAR");
getch();
}
mostrar();
}
else{
gopri(27,22," NO HAY DATOS QUE MOSTRAR ");
sleep(2);
}
break;
case 3 :if(n_art>0)
{
buscar();
}
else{
gopri(27,22," NO HAY DATOS PARA BUSCAR ");
sleep(2);
}
break;
case 4 :guardar();
break;
case 5 :verif_guard();
break;
case 6 :ayuda();
break;
}
}
}
void vent_menu()
{
gopri(27,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gopri(27,4,"³ ³²²");
gopri(27,5,"³ ³²²±±");
gopri(27,6,"³ ³²²±±°°");
gopri(27,7,"³ ³²²±±°°");
gopri(27,8,"³ ³²²±±°°");
gopri(27,9,"³ ³²²±±°°");
gopri(27,10,"³ ³²²±±°°");
gopri(27,11,"³ ³²²±±°°");
gopri(27,12,"³ ³²²±±°°");
gopri(27,13,"³ ³²²±±°°");
gopri(27,14,"³ ³²²±±°°");
gopri(27,15,"³ ³²²±±°°");
gopri(27,16,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°");
gopri(27,17," ²²²²²²²²²²²²²²²²²²²²²²±±°°");
gopri(27,18," ±±±±±±±±±±±±±±±±±±±±±±°°");
gopri(27,19," °°°°°°°°°°°°°°°°°°°°°°");
}
/*-----------------------MENU DE BUSQUEDA-----------------------*/
void buscar()
{
int d,c,s,flar=25,flab=24;
d=1;
while(d!=3)
{
textmode(2);
color(0,6);//7
clrscr();
color(6+BLINK,0);
gotoxy(1,25);
cprintf("PRESIONA FLECHA %c ¢ %c, Y PRESIONA ENTER PARA ESCOJER TU OPCION ->> ART_Pako 1.0",flab,flar);
color(0,6);
vent_busc();
d=1;
c=1;
do{
color(6,0);
gopri(28,2," MENU DE BUSQUEDA ");
color(0,6);
gopri(30,4," POR CODIGO ");
gopri(30,6," POR NOMBRE ");
gopri(30,8," SALIR ");
if(d==0) d=3;
if(d==4) d=1;
color(6,0);
switch(d)
{
case 1 :gopri(30,4," POR CODIGO ");
break;
case 2 :gopri(30,6," POR NOMBRE ");
break;
case 3 :gopri(30,8," SALIR ");
break;
}
c=getch();
if(c==72) d=d-1;
if(c==80) d=d+1;
}while(c!=13);
switch(d)
{
case 1 :impri_code_c();
if(n_art<1)
{
gopri(12,22," SE ELIMINARON TODOS LOS DATOS ");
sleep(2);
flushall();
cab=p=ap=NULL; //guardar();
d=3;
}
break;
case 2 :impri_code_n();
if(n_art<1)
{
gopri(12,22," SE ELIMINARON TODOS LOS DATOS ");
sleep(2);
flushall();
cab=p=ap=NULL; //guardar();
d=3;
}
break;
}
}
}
void vent_busc()
{
gopri(28,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gopri(28,4,"³ ³²²");
gopri(28,5,"³ ³²²±±");
gopri(28,6,"³ ³²²±±°°");
gopri(28,7,"³ ³²²±±°°");
gopri(28,8,"³ ³²²±±°°");
gopri(28,9,"³ ³²²±±°°");
gopri(28,10,"³ ³²²±±°°");
gopri(28,11,"³ ³²²±±°°");
gopri(28,12,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ²²±±°°");
gopri(28,13," ²²²²²²²²²²²²²²²²²²²±±°°");
gopri(28,14," ±±±±±±±±±±±±±±±±±±±°°");
gopri(28,15," °°°°°°°°°°°°°°°°°°°");
}
/*-----------IMPRIME EL ARTICULO BUSCADO POR MEDIO DEL CODIGO---------*/
void impri_code_c()
{
clrscr();
char code[10];
int jur=0;
gotoxy(12,15);printf("Codigo a buscar: ");
gets(code);
p=cab;
/*if(p!=NULL)
{
if(strcmp(code,p->codigo)==0)
{
jur=1;
}
if(jur!=1){
p=p->sig;
}*/
while(p->sig!=cab && jur!=1)
{
if(strcmp(code,p->codigo)==0)
{
jur=1;
break;
}
p=p->sig;
}
//}
if(jur==1)
{
mostrar();
}
if(jur!=1)
{
gotoxy(12,17);printf("EL CODIGO %s NO EXISTE INTENTA POR EL NOMBRE",code);
sleep(2);
}
}
/*---------------IMPRIME EL ARTICULO POR MEDIO DEL NOMBRE----------------*/
void impri_code_n()
{
clrscr();
struct nodo *aux;
char code[10];
//int jur=0;
gotoxy(12,15);printf("Nombre a buscar: ");
gets(code);
//-----------------------------------
aux=localiza(code);
if(aux){
p=aux;
mostrar();
}
else{
gotoxy(12,17);printf("EL NOMBRE %s NO EXISTE INTENTA POR EL CODIGO",code);
sleep(2);
}
}
/*-------------MUESTRA LOS DATOS EN LA LISTA------------------*/
void mostrar()
{
int d,c,s;
char elim;
d=1;
while(d!=5)
{
flushall();
textmode(2);
color(0,6);//7
if(n_art<=0)
{
clrscr();
gopri(25,12," SE ELIMINARON TODOS LOS DATOS ");
sleep(2);
cab=p=ap=NULL;//guardar();
break;
}
clrscr();
boseto();
listar_act_nodo();
color(6,0);
gopri(10,2," MOSTRANDO ARTICULOS CON SUS OPCIONES CORRESPONDIENTES ");
color(0,6);
gopri(1,24,"ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ");
gopri(2,25," SIGUIENTE ANTERIOR ELIMINAR MODIFICAR SALIR ");
d=1;
c=1;
do{
//color(6+BLINK,0);
//gopri(8,3," MENU DE BUSQUEDA ");
color(0,6);
gopri(6,25," SIGUIENTE ");
gopri(20,25," ANTERIOR ");
gopri(33,25," ELIMINAR ");
gopri(46,25," MODIFICAR ");
gopri(61,25," SALIR ");
if(d==0) d=5;
if(d==6) d=1;
color(6,0);
switch(d)
{
case 1 :gopri(6,25," SIGUIENTE ");
break;
case 2 :gopri(20,25," ANTERIOR ");
break;
case 3 :gopri(33,25," ELIMINAR ");
break;
case 4 :gopri(46,25," MODIFICAR ");
break;
case 5 :gopri(61,25," SALIR ");
break;
}
c=getch();
if(c==75) d=d-1;
if(c==77) d=d+1;
}while(c!=13);
switch(d)
{
case 1 :p=p->sig;
boseto();
listar_act_nodo();
break;
case 2 :p=p->ant;
boseto();
listar_act_nodo();
break;
case 3 : gotoxy(10,20);
printf("Esta totalmente seguro de eliminar estos datos si(S), no(N):");
elim=tolower(getch());
if (elim=='s')
{
elimina(p);
n_art--;
guardado=1;
if(n_art>0)
{
p=p->sig;
}
}
break;
case 4 : modifica(p);
break;
}
}
}
/*-----------------IMPRIME SILOCITANDO LOS DATOS---------------------*/
void boseto()
{
clrscr();
gopri(2,3,"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿");
gopri(2,4,"³ Codigo: ³±±");
gopri(2,5,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
gopri(2,6,"³ Nombre: ³±±");
gopri(2,7,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
gopri(2,8,"³ Descripci¢n: ³±±");
gopri(2,9,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
gopri(2,10,"³ Cantidad: ³±±");
gopri(2,11,"ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´±±");
gopri(2,12,"³ Valor: ³±±");
gopri(2,13,"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±");
gopri(2,14," ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±");
}
/*----------IMPRIME EL NODO ACTUAL TOMANDO COMO REFERENCIA A p -----------*/
void listar_act_nodo()
{
gotoxy(18,4);printf("%s",p->codigo);
gotoxy(18,6);printf("%s",p->nom_art);
gotoxy(18,8);printf("%s",p->desc);
gotoxy(18,10);printf("%s",p->cant);
gotoxy(18,12);printf("%s",p->valor);
}
/* -----------------ELIMINA UN REGISTRO DE LA LISTA---------------------- */
void elimina(struct nodo *p)
{
flushall();
//fflush(fp);
struct nodo *q;
q = p->ant;
q->sig = p->sig;
p->sig->ant = q;
free(p);
// p=q->sig;
// if (!(cab))
// {
// cab=q->sig;
// }
}
/*-------------------PIDE LOS DATOS CORRESPONDIENTES---------------------*/
void agregar()
{
p=alo
flushall();
//fflush(stdin); /* vac¡a el buffer del archivo stdin */
clrscr();
verifica_cod();
gotoxy(18,6);gets(p->nom_art);
gotoxy(18,8);gets(p->desc);
gotoxy(18,10);gets(p->cant);//verifica_cant();
verifica_val();//gotoxy(16,12);gets(p->valor);
inserta_reg(p);
} /* fin de la funcion */
/*---------VERIFICA SI HAY CARCTERES EN EL CODIGO DEL PRODUCTO-------*/
void verifica_cod()
{
int i,jur=0;
char code[10];
struct nodo *aux;
for(;;)
{
//jur=0;
boseto();
gopri(27,2," REGISTRANDO ARTICULO ");
gotoxy(18,4);gets(p->codigo);//Pide codigo
for(i=0;i<strlen(p->codigo);i++)//Verifica hay caracteres en Codigo
{
if(p->codigo[i]>=48 && p->codigo[i]<=57)
{
jur++;
}
if((p->codigo[i]<48 || p->codigo[i]>57) && (p->codigo[i]!=164 || p->codigo[i]!=165)){//else{
gotoxy(9,20);
printf("TU CODIGO TIENE EL CARACTER %c INTENTA DE NUEVO...",p->codigo[i]);
sleep(2);
jur=0;
break;
}
}
if(n_art>0)
{
aux=cab;
strcpy(code,p->codigo);
if(aux!=NULL)
{
if(strcmp(code,aux->codigo)==0)
{
jur=0;
gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo);
sleep(2);
}
if(jur!=0){
aux=aux->sig;
}
while(aux!=cab && jur!=1)
{
if(strcmp(code,aux->codigo)==0)
{
jur=0;
gotoxy(21,20);printf("EL CODIGO %s YA EXISTE INTENTA DE NUEVO",aux->codigo);
sleep(2);
break;
}
aux=aux->sig;
}
}
}
if (jur>0){ //si esto se cumple rompe el for(;;)
break;
}
flushall();
}//fin for(;;)
}
/*---------VERIFICA SI HAY CARACTERES EN EL VALOR DEL PRODUCTO---------*/
void verifica_val()
{
int i,jur=0;
for(;;)
{
boseto();
gopri(27,2," REGISTRANDO ARTICULO ");
gotoxy(18,4);printf("%s",p->codigo);
gotoxy(18,6);printf("%s",p->nom_art);
gotoxy(18,8);printf("%s",p->desc);
gotoxy(18,10);printf("%s",p->cant);
gotoxy(18,12);gets(p->valor);
for(i=0;i<strlen(p->valor);i++)//Verifica hay caracteres en Codigo
{
if((p->valor[i]>=48 && p->valor[i]<=57) || (p->valor[i]==46))
{
jur++;
}
if((p->valor[i]<48 || p->valor[i]>57) && (p->valor[i]!=46) && (p->valor[i]!=164 || p->valor[i]!=165)){//else{
gotoxy(13,20);
printf("DIGITASTE SIN QUERER EL CARACTER %c INTENTA DE NUEVO...",p->valor[i]);
sleep(2);
jur=0;
break;
}
}
if (jur>0){ //si esto se cumple rompe el for(;;)
break;
}
flushall();
}//fin for(;;)
}
/*----------------INSERTA LOS DATOS DE FORMA ORDENADA------------------*/
void inserta_reg(struct nodo *p /* nuevo registro a insertar */)
{
fflush(stdin);
struct nodo *aux; /* puntero auxiliar */
aux=cab;
if (cab == NULL) /* insertar el primer registro de una lista */
{
cab = p;
cab->ant = cab;
ap = p;
ap->sig = cab;
} else
for (;;)
{
if (strcmp(p->codigo, aux->codigo) < 0)
{
if (aux == cab) /* insertar registro al principio de la lista */
{
p->sig = aux;
p->ant = ap;
aux->ant = p;
cab = p;
ap->sig = p;
break;
}
else
{
p->ant = aux->ant; /* insertar registros en el medio de la lista */
p->sig = aux;
aux->ant->sig = p;
aux->ant = p;
break;
}
}
else{
if (aux->sig == cab) /* insertar registros al final de la lista */
{
aux->sig = p;
p->sig = cab;
cab->ant = p;
p->ant = aux;
ap = p;
break;
}
}
aux = aux->sig;
} /* fin de for(;;) */
n_art++;
guardado=1;
} /* fin de la funci¢n */
/*-----------MODIFICA LOS TODOS LOS DATOS DEL NODO ACTUAL-------------*/
void modifica(struct nodo *aux)
{
struct nodo info;
char op;
flushall();
fflush(stdin);//o FLUSHALL() LIMPIA EL BUFFER
clrscr();
boseto();
gopri(26,2," MODIFICANDO LOS DATOS ");
gotoxy(18,4);gets(info.codigo);
gotoxy(18,6);gets(info.nom_art);
gotoxy(18,8);gets(info.desc);
gotoxy(18,10);gets(info.cant);
gotoxy(18,12);gets(info.valor);
for (;;)
{
gotoxy(6,20);
printf("Seguro que desea realizar los cambios s/n: ");
op = tolower(getch());
if (op == 's')
{
strcpy(aux->codigo,info.codigo);
strcpy(aux->nom_art,info.nom_art);
strcpy(aux->desc,info.desc);
strcpy(aux->cant,info.cant);
strcpy(aux->valor,info.valor);
guardado=1;
break;
}else
if (op == 'n')
break;
} /* fin de for(;;) */
} /* fin de la funcion */
/*--------------------FUNCION DE CARGAR EL ARCHIVO---------------------*/
void cargar()
{
flushall();
FILE *fp;
fflush(fp);
cab = p = ap = NULL;
fp = fopen("pro2002.txt","rb");
rewind(fp); //recorre el archivo y se devuelve al principio del archivo
//if(n_art!=0){
n_art = 0;
for(;;)//while(feof(fp))
{
p = (struct nodo *) malloc (sizeof(struct nodo));
if (fread(p,sizeof(struct nodo),1,fp) != 1)
break;
//n_art++;
inserta_reg(p);
} /* termina for */
// }
fclose(fp);
if (n_art == 0)
{
cab = p = ap = NULL;
}
guardado=0;
}
/*-----------------FUNCION DE GUARDAR EN EL ARCHIVO---------------------*/
void guardar()
{
FILE *fp;
int tam;
tam = sizeof(struct nodo);
fp = fopen("pro2002.txt","wb");
p = cab;
if(n_art<=0)
{
remove("pro2002.txt");
}
else{
for (;;)
{
fwrite(p,sizeof(struct nodo),1,fp);
p = p->sig;
if (p == cab)
break;
}
}
fclose(fp);
guardado=0;
}
/*----------BANDERA QUE VERIFICA SI SE HA MODIFICADO LOS DATOS-----------*/
void verif_guard()
{
clrscr();
char res;
if(n_art>0)
{
if(guardado==1)
{
for(;;)
{
gopri(10,12," HAS MODIFICADO ALGUN DATO EN EL ARCHIVO DESEAS GURADAR [S/N] ");
res=tolower(getch());
if(res=='s')
{
guardar();
sonido(150,150);
sonido(350,350);
sonido(550,550);
sonido(750,750);
break;
}
if(res=='n')
{
break;
}
}
}
}
else{
if(n_art<=0)
{
remove("pro2002.txt");
}
}
clrscr();
gopri(29,12," QUE TENGA UN BUEN DIA ");
sleep(2);
clrscr();
gopri(68,25," By Dare... ");
sleep(1);
}
/*-------------ENCUENTRA EN NOMBRE SI EXISTE O NO----------------------*/
struct nodo *localiza(char pnombre[])//busca si esta el nombre en la lista...
{
struct nodo *aux;
register char temp2[50];
char temp1[50];
aux = cab;
strcpy(temp1,minus(pnombre));
do
{
strcpy(temp2,minus(aux->nom_art));
if (!strcmp(temp1,temp2))
return (aux);
else
aux = aux->sig;
} while (aux != cab);
return (aux = NULL);
}
/*-------------------PASA DE MAYUSCULAS A MINUSCULAS------------------*/
char *minus(char nombre[])
{
register int i;
register char *temp;
for (i = 0; i <= strlen(nombre) + 1; i++)
temp[i] = tolower(nombre[i]);
return(temp);
}
/*------------MUESTRA UN MARCO TEORICO O AYUDA PARA EL USUARIO-----------*/
void ayuda()
{
clrscr();
puts("ADICIONAR:");
puts("Codigo = Es el numero de registro que tiene el articulo, solamente puede ser");
puts(" numerico y unico en la lista.");
puts("Nombre = Es el nombre principal del producto.");
puts("Descripcion = Es la referencia o descripcion del producto o articulo");
puts("Cantidad = Se puede tomar como valor numerico o alfa-numerico, por ejemplo:");
puts(" 10.000 toneladas, 10.000 pacas, 10.000 bultos, etc.");
puts("Valor= Es el valor unitario del articulo dependiendo de la cantidad como se tome\n");
puts("MOSTRAR:");
puts("Tiene un submenu que le permite al usuario hacer modificaciones, eliminar,");
puts("avanzar hacia adelante o atras, como desee el usuario.\n");
puts("BUSCAR:");
puts("Tiene la flexibilidad de buscar el articulo por el codigo de registro o por el");
puts("nombre, no importa si el nombre esta en minusculas o mayusculas de todos modos");
puts("lo encuentra.\n");
puts("GUARDAR:");
puts("Almacena la imformacion digitada en un archivo.\n");
puts("SALIR:");
puts("Sale del programa y a su vez verifica si el usuario guardo las modificaciones.");
getch();
}