Advertisement
Guest User

Untitled

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