Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.29 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4. #include <ctype.h>
  5. //No puedo validar nombre del producto porque este puede contener un numero: Whisky 15 años.
  6. //No puedo validar codigo del producto porque este puede contener letras y numeros: PR1-0001
  7. //Esta funcion es nueva y retorna true si es numero falso en otro caso
  8. bool EsCodigo(char* valor)
  9. {
  10. int i;
  11. int cant_caracteres = strlen(valor);
  12. if(cant_caracteres<3)
  13. {
  14. return false;
  15. }
  16. for(i=0; i<2; i++)
  17. {
  18. if (!isalpha(valor[i]))
  19. return false;
  20. }
  21. for(i=2; i<cant_caracteres; i++)
  22. {
  23. if(!isdigit(valor[i]))
  24. return false;
  25. }
  26. return true;
  27. }
  28. bool EsNumero(char* valor)
  29. {
  30. bool hay_letras = false;
  31.  
  32. int caracteres = strlen(valor);
  33. for(int i = 0; i < caracteres; i++)
  34. {
  35. if(!isdigit(valor[i])) hay_letras = true;
  36. }
  37.  
  38. return !hay_letras;
  39. }
  40. // FIN EsNumero(...)
  41.  
  42. int main()
  43. {
  44. struct producto
  45. {
  46. char nom_pro[60];
  47. char cod_pro[60];
  48. int pre_pro;
  49. int fec_ela[3];
  50. int fec_ven[3];
  51. };
  52. producto listado[60]= {0};
  53. char val_opc, comp[60];
  54. int opc;
  55. int cantidad=0,j;
  56. char resp='S', resp2='S', resp3='S', resp4='S', salir='N';
  57.  
  58.  
  59. do
  60. {
  61. printf("*****-MENU-*****\n");
  62. printf("*1.INCLUIR *\n*2.BUSCAR *\n*3.MODIFICAR *\n*4.ELIMINAR *\n*5.SALIR *\n");
  63. printf("****************\n");
  64. printf("TIPEE EL NUMERO DE SU OPCION: \n");
  65. scanf("%s",&val_opc);
  66. if(EsNumero(&val_opc))
  67. {
  68. opc= atoi (&val_opc);
  69. if((opc>0)&&(opc<6))
  70. {
  71.  
  72. switch(opc)
  73. {
  74. case 1:
  75. {
  76. do
  77. {
  78. printf("****-INCLUIR-***\n");
  79. do
  80. {
  81. printf("TIPEE EL CODIGO DEL PRODUCTO:\n");
  82. scanf("%s",&listado[cantidad].cod_pro);
  83. if (!EsCodigo(listado[cantidad].cod_pro))
  84. {
  85. printf("EL CODIGO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
  86. }
  87. }
  88. while(!EsCodigo);
  89. printf("TIPEE EL NOMBRE DEL PRODUCTO:\n");
  90. scanf("%s",&listado[cantidad].nom_pro);
  91. /*do{*/
  92. printf("TIPEE EL PRECIO DEL PRODUCTO:\nBs.F: ");
  93. scanf("%d",&listado[cantidad].pre_pro);
  94. /*if(!EsNumero(&listado[cantidad].pre_pro))
  95. {
  96. printf("EL PRECIO DEL PRODUCTO NO ES VALIDO, INTENTE DE NUEVO\n");
  97. }
  98. }while(!EsNumero);*/
  99. printf("TIPEE LA FECHA DE ELABORACION DEL PRODUCTO:(DIA-MES-AÑO)\n");
  100. scanf("%d-%d-%d",&listado[cantidad].fec_ela[0],&listado[cantidad].fec_ela[1],&listado[cantidad].fec_ela[2]);
  101. printf("TIPEE LA FECHA DE VENCIMIENTO DEL PRODUCTO:(DIA-MES-AÑO)\n");
  102. scanf("%d-%d-%d",&listado[cantidad].fec_ven[0],&listado[cantidad].fec_ven[1],&listado[cantidad].fec_ven[2]);
  103. cantidad++;
  104.  
  105.  
  106. printf("¿DESEA INCLUIR OTRO PRODUCTO?(S/N)\n");
  107. scanf("%s",&resp);
  108. }
  109. while(resp=='S' || resp=='s');
  110. break;
  111. }
  112.  
  113. case 2:
  114. {
  115. if(cantidad==0)
  116. {
  117. printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
  118. }
  119. else
  120. {
  121. printf("**-BUSCAR-**\n");
  122. do
  123. {
  124. printf("INGRESE EL CODIGO DEL PRODUCTO A BUSCAR\n");
  125. scanf("%s",&comp);
  126. bool encontrado=false;
  127. for(j=0; j<cantidad; j++)
  128. {
  129.  
  130. if(strcmp(comp,listado[j].cod_pro)==0)
  131. {
  132. printf("EL PRODUCTO CON EL CODIGO %s SE ENCUENTRA REGISTRADO\n",listado[j].cod_pro);
  133. printf("NOMBRE DEL PRODUCTO: %s\n",listado[j].nom_pro);
  134. printf("PRECIO DEL PRODUCTO: Bs.F %d\n",listado[j].pre_pro);
  135. printf("FECHA DE ELABORACION: %d-%d-%d\n",listado[j].fec_ela[0],listado[j].fec_ela[1],listado[j].fec_ela[2]);
  136. printf("FECHA DE VENCIMIENTO: %d-%d-%d\n",listado[j].fec_ven[0],listado[j].fec_ven[1],listado[j].fec_ven[2]);
  137. encontrado=true;
  138. }
  139. }
  140. if(!encontrado)
  141. printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
  142.  
  143.  
  144.  
  145.  
  146. printf("¿DESEA BUSCAR OTRO PRODUCTO?(S/N)\n");
  147. scanf("%s",&resp2);
  148. }
  149. while(resp2=='S' || resp2=='s');
  150. break;
  151.  
  152. }
  153. break;
  154. }
  155.  
  156. case 3:
  157. {
  158. if(cantidad==0)
  159. {
  160. printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
  161. }
  162. else
  163. {
  164. do
  165. {
  166. printf("TIPEE EL CODIGO DE PRODUCTO A MODIFICAR:\n");
  167. scanf("%s",&comp);
  168. bool encontrado=false;
  169. for(j=0; j<cantidad; j++)
  170. {
  171.  
  172. if(strcmp(listado[j].cod_pro,comp)==0)
  173. {
  174. encontrado=true;
  175. printf("TIPEE EL NUEVO CODIGO DE PRODUCTO:\n");
  176. scanf("%s",&listado[j].cod_pro[j]);
  177. printf("TIPEE EL NUEVO NOMBRE DE PRODUCTO:\n");
  178. scanf("%s",&listado[j].nom_pro[j]);
  179. printf("TIPEE EL NUEVO PRECIO DE PRODUCTO:\nBs.F: ");
  180. scanf("%d",&listado[j].pre_pro);
  181. printf("TIPEE LA NUEVA FECHA ELABORACION DE PRODUCTO:(DIA-MES-AÑO)\n");
  182. scanf("%d-%d-%d",&listado[j].fec_ela[0],&listado[j].fec_ela[1],&listado[j].fec_ela[2]);
  183. printf("TIPEE LA NUEVA FECHA VENCIMIENTO DE PRODUCTO:(DIA-MES-AÑO)\n");
  184. scanf("%d-%d-%d",&listado[j].fec_ven[0],&listado[j].fec_ven[1],&listado[j].fec_ven[2]);
  185. printf("***********************\n");
  186. printf("**-PRODUCTO MODIFICADO-**\n");
  187. printf("***********************\n");
  188. }
  189. }
  190. if(!encontrado)
  191. printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
  192.  
  193. printf("¿DESEA MODIFICAR OTRO PRODUCTO?(S/N)\n");
  194. scanf("%s",&resp4);
  195. }
  196. while(resp4=='S' || resp4=='s');
  197. break;
  198. }
  199. break;
  200. }
  201.  
  202. case 4:
  203. {
  204. if(cantidad==0)
  205. {
  206. printf("NO SE A INCLUIDO NINGUN PRODUCTO\n");
  207. }
  208. else
  209. {
  210. printf("**-ELIMINAR-**\n");
  211. do
  212. {
  213. printf("TIPEE EL CODIGO DE PRODUCTO A ELIMINAR:\n");
  214. scanf("%s",&comp);
  215.  
  216. bool encontrado=false;
  217. for(j=0; j<cantidad; j++)
  218. {
  219.  
  220. if(strcmp(listado[j].cod_pro,comp)==0)
  221. {
  222. listado[j].cod_pro[j]=' ';
  223. listado[j].nom_pro[j]=' ';
  224. listado[j].pre_pro=' ';
  225. listado[j].fec_ela[j]=' ';
  226. listado[j].fec_ven[j]=' ';
  227. encontrado=true;
  228.  
  229. printf("***********************\n");
  230. printf("**-PRODUCTO ELIMINADO-**\n");
  231. printf("***********************\n");
  232. }
  233.  
  234. }
  235. if(!encontrado)
  236. printf("EL PRODUCTO NO SE ENCUENTRA REGISTRADO\n");
  237.  
  238. printf("¿DESEA ELIMINAR OTRO PRODUCTO?(S/N)\n");
  239. scanf("%s",&resp3);
  240. }
  241. while(resp3=='S' || resp3=='s');
  242. break;
  243. }
  244. break;
  245. }
  246. case 5:
  247. {
  248. printf("¿REALMENTE DESEA SALIR?(S/N)\n");
  249. scanf("%s",&salir);
  250. break;
  251. }
  252. default:
  253. printf("ESCOGE UNA OPCION CORRECTA\n");
  254. break;
  255. }
  256. }
  257. else
  258. printf("NO ES UN NUMERO DE OPCION CORRECTA, INTENTE DE NUEVO\n");
  259. }
  260. else
  261. printf("TIPEASTE UN CARACTER EN LA OPCION, INTENTE DE NUEVO\n");
  262.  
  263. }
  264. while(salir=='N' || salir=='n');
  265. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement