Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- #include <ctype.h>
- //No puedo validar nombre del producto porque este puede contener un numero: Whisky 15 años.
- bool EsCodigo(char* valor)
- {
- int i;
- int cant_caracteres = strlen(valor);
- if(cant_caracteres<3)
- {
- return false;
- }
- for(i=0; i<2; i++)
- {
- if (!isalpha(valor[i]))
- return false;
- }
- for(i=2; i<cant_caracteres; i++)
- {
- if(!isdigit(valor[i]))
- return false;
- }
- return true;
- }
- bool EsNumero(char* valor)
- {
- bool hay_letras = false;
- int caracteres = strlen(valor);
- for(int i = 0; i < caracteres; i++)
- {
- if(!isdigit(valor[i])) hay_letras = true;
- }
- return !hay_letras;
- }
- bool EsFecha(char* c_dia,char* c_mes,char* c_anio)
- {
- int dia, mes, anio;
- if(!EsNumero (c_dia)|| !EsNumero (c_mes)|| !EsNumero (c_anio))
- {
- return false;
- }
- dia=atoi(c_dia);
- mes=atoi(c_mes);
- anio=atoi(c_anio);
- if(!(dia>0&&dia<32))
- {
- return false;
- }
- if (!(mes>0&&mes<13))
- {
- return false;
- }
- if(!(anio>1900&&anio<2200))
- {
- return false;
- }
- return true;
- }
- int main()
- {
- struct producto
- {
- char nom_pro[60];
- char cod_pro[60];
- int pre_pro;
- int fec_ela[3];
- int fec_ven[3];
- };
- producto listado[60]= {0};
- char val_opc,val_pre[6],val_fecha[3], comp[60];
- int opc;
- int cantidad=0,j;
- char resp='S', resp2='S', resp3='S', resp4='S', salir='N';
- do
- {
- printf("*****-MENU-*****\n");
- printf("*1.INCLUIR *\n*2.BUSCAR *\n*3.MODIFICAR *\n*4.ELIMINAR *\n*5.SALIR *\n");
- printf("****************\n");
- printf("TIPEE EL NUMERO DE SU OPCION: \n");
- scanf("%s",&val_opc);
- if(EsNumero(&val_opc))
- {
- opc= atoi (&val_opc);
- if((opc>0)&&(opc<6))
- {
- switch(opc)
- {
- case 1:
- {
- do
- {
- printf("****-INCLUIR-***\n");
- bool correcto;
- do
- {
- printf("TIPEE EL CODIGO DEL PRODUCTO:\n");
- scanf("%s",&listado[cantidad].cod_pro);
- correcto= EsCodigo(listado[cantidad].cod_pro);
- if (!correcto)
- {
- printf("EL CODIGO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
- }
- }
- while(!correcto);
- printf("TIPEE EL NOMBRE DEL PRODUCTO:\n");
- scanf("%s",&listado[cantidad].nom_pro);
- do
- {
- printf("TIPEE EL PRECIO DEL PRODUCTO:\n");
- scanf("%s",&val_pre);
- correcto= (EsNumero(val_pre));
- if (!correcto)
- {
- printf("EL PRECIO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
- }
- else
- {
- listado[cantidad].pre_pro=atoi(val_pre);
- }
- }
- while(!correcto);
- do{
- correcto=true;
- printf("TIPEE LA FECHA DE ELABORACION DEL PRODUCTO:(DIA-MES-AÑO)\n");
- scanf("%s-%s-%s",&val_fecha[0],&val_fecha[1],&val_fecha[2]);
- correcto=EsFecha(&val_fecha[0],&val_fecha[1],&val_fecha[2]);
- if(!correcto)
- {
- printf("LA FECHA NO ES CORRECTA, INTENTA DE NUEVO\n");
- }
- else
- {
- listado[cantidad].fec_ela[0]=atoi(&val_fecha[0]);
- listado[cantidad].fec_ela[1]=atoi(&val_fecha[1]);
- listado[cantidad].fec_ela[2]=atoi(&val_fecha[2]);
- }
- }while(!correcto);
- printf("TIPEE LA FECHA DE VENCIMIENTO DEL PRODUCTO:(DIA-MES-AÑO)\n");
- scanf("%d-%d-%d",&listado[cantidad].fec_ven[0],&listado[cantidad].fec_ven[1],&listado[cantidad].fec_ven[2]);
- cantidad++;
- printf("¿DESEA INCLUIR OTRO PRODUCTO?(S/N)\n");
- scanf("%s",&resp);
- }
- while(resp=='S' || resp=='s');
- break;
- }
- case 2:
- {
- if(cantidad==0)
- {
- printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
- }
- else
- {
- printf("**-BUSCAR-**\n");
- do
- {
- printf("INGRESE EL CODIGO DEL PRODUCTO A BUSCAR\n");
- scanf("%s",&comp);
- bool encontrado=false;
- for(j=0; j<cantidad; j++)
- {
- if(strcmp(comp,listado[j].cod_pro)==0)
- {
- printf("EL PRODUCTO CON EL CODIGO %s SE ENCUENTRA REGISTRADO\n",listado[j].cod_pro);
- printf("NOMBRE DEL PRODUCTO: %s\n",listado[j].nom_pro);
- printf("PRECIO DEL PRODUCTO: Bs.F %d\n",listado[j].pre_pro);
- printf("FECHA DE ELABORACION: %d-%d-%d\n",listado[j].fec_ela[0],listado[j].fec_ela[1],listado[j].fec_ela[2]);
- printf("FECHA DE VENCIMIENTO: %d-%d-%d\n",listado[j].fec_ven[0],listado[j].fec_ven[1],listado[j].fec_ven[2]);
- encontrado=true;
- }
- }
- if(!encontrado)
- printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
- printf("¿DESEA BUSCAR OTRO PRODUCTO?(S/N)\n");
- scanf("%s",&resp2);
- }
- while(resp2=='S' || resp2=='s');
- break;
- }
- break;
- }
- case 3:
- {
- if(cantidad==0)
- {
- printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
- }
- else
- {
- do
- {
- printf("TIPEE EL CODIGO DE PRODUCTO A MODIFICAR:\n");
- scanf("%s",&comp);
- bool encontrado=false;
- for(j=0; j<cantidad; j++)
- {
- if(strcmp(listado[j].cod_pro,comp)==0)
- {
- encontrado=true;
- bool correcto;
- do
- {
- printf("TIPEE EL NUEVO CODIGO DEL PRODUCTO:\n");
- scanf("%s",&listado[cantidad].cod_pro);
- correcto= EsCodigo(listado[cantidad].cod_pro);
- if (!correcto)
- {
- printf("EL CODIGO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
- }
- }
- while(!correcto);
- printf("TIPEE EL NUEVO NOMBRE DEL PRODUCTO:\n");
- scanf("%s",&listado[cantidad].nom_pro);
- do
- {
- printf("TIPEE EL NUEVO PRECIO DEL PRODUCTO:\n");
- scanf("%s",&val_pre);
- correcto= (EsNumero(val_pre));
- if (!correcto)
- {
- printf("EL PRECIO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
- }
- else
- {
- listado[cantidad].pre_pro=atoi(val_pre);
- }
- }
- while(!correcto);
- printf("TIPEE LA NUEVA FECHA DE ELABORACION DEL PRODUCTO:(DIA-MES-AÑO)\n");
- scanf("%d-%d-%d",&listado[cantidad].fec_ela[0],&listado[cantidad].fec_ela[1],&listado[cantidad].fec_ela[2]);
- printf("TIPEE LA NUEVA FECHA DE VENCIMIENTO DEL PRODUCTO:(DIA-MES-AÑO)\n");
- scanf("%d-%d-%d",&listado[cantidad].fec_ven[0],&listado[cantidad].fec_ven[1],&listado[cantidad].fec_ven[2]);
- cantidad++;
- printf("***********************\n");
- printf("**-PRODUCTO MODIFICADO-**\n");
- printf("***********************\n");
- }
- }
- if(!encontrado)
- printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
- printf("¿DESEA MODIFICAR OTRO PRODUCTO?(S/N)\n");
- scanf("%s",&resp4);
- }
- while(resp4=='S' || resp4=='s');
- break;
- }
- break;
- }
- case 4:
- {
- if(cantidad==0)
- {
- printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
- }
- else
- {
- printf("**-ELIMINAR-**\n");
- do
- {
- printf("TIPEE EL CODIGO DE PRODUCTO A ELIMINAR:\n");
- scanf("%s",&comp);
- bool encontrado=false;
- for(j=0; j<cantidad; j++)
- {
- if(strcmp(listado[j].cod_pro,comp)==0)
- {
- memset(&listado[j], 0, sizeof(producto));
- encontrado=true;
- printf("***********************\n");
- printf("**-PRODUCTO ELIMINADO-**\n");
- printf("***********************\n");
- }
- }
- if(!encontrado)
- printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
- printf("¿DESEA ELIMINAR OTRO PRODUCTO?(S/N)\n");
- scanf("%s",&resp3);
- }
- while(resp3=='S' || resp3=='s');
- break;
- }
- break;
- }
- case 5:
- {
- printf("¿REALMENTE DESEA SALIR?(S/N)\n");
- scanf("%s",&salir);
- break;
- }
- default:
- printf("ESCOGE UNA OPCION CORRECTA\n");
- break;
- }
- }
- else
- printf("NO ES UN NUMERO DE OPCION CORRECTA, INTENTE DE NUEVO\n");
- }
- else
- printf("TIPEASTE UN CARACTER EN LA OPCION, INTENTE DE NUEVO\n");
- }
- while(salir=='N' || salir=='n');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement