Advertisement
milardovich

TP

Nov 22nd, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. /*
  5.  * PRODUCT.TXT
  6.  * {IDFABRICANTE[3]} {CODPRODUCTO[4]} {AÑO[4]}
  7.  *
  8.  * BARRANUM.TXT
  9.  * {CODIGO}
  10.  */
  11. void menu();
  12. void codigo_barras();
  13. void menor_cantidad();
  14. void buscar_productos(int empresa);
  15.  
  16. int generar_digito(int buffer[8]);
  17. int generar_codigo();
  18.  
  19.  
  20. char opt;
  21. int main(){
  22. /*  do{
  23.         menu();
  24.     } while(opt != 'C');
  25. */
  26.     //printf("%d",generar_codigo());
  27.     buscar_productos(11);
  28.     return 0;
  29. }
  30.  
  31. void menu(){
  32.     printf("\n A - CÓDIGO DE BARRAS \n B - MENOR CANTIDAD SOLICITADA \n C - FIN");
  33.     scanf("%c",&opt);
  34.     switch(opt){
  35.         case 'A':
  36.             codigo_barras();
  37.             break;
  38.         case 'B':
  39.             menor_cantidad();
  40.             break;
  41.     }
  42. }
  43.  
  44. void codigo_barras(){
  45.     int empresa;
  46.     printf("Ingrese Empresa: ");
  47.     scanf("%d", &empresa);
  48.     printf("\n");
  49.    
  50. }
  51.  
  52. int generar_codigo(){
  53.     int buffer[8],digito,i,k,b,empresa[3],producto[4];
  54.     empresa[0] = 3;
  55.     empresa[1] = 1;
  56.     empresa[2] = 2;
  57.  
  58.     producto[0] = 1;
  59.     producto[1] = 1;
  60.     producto[2] = 2;
  61.     producto[3] = 4;
  62.  
  63.     k=2;
  64.     for(i=0;i<=2;i++){
  65.         buffer[i] = empresa[i];
  66.         k--;
  67.     }
  68.  
  69.     k=0;
  70.     for(i=3;i<=6;i++){
  71.         buffer[i] = producto[k];
  72.         k++;
  73.     }
  74.     buffer[7] = generar_digito(buffer);
  75.    
  76.     b=0;
  77.     k=0;
  78.     for(i=7;i>=0;i--){
  79.         b += buffer[k]*pow(10,i);
  80.         k++;
  81.     }
  82.     return b;
  83. }
  84.  
  85. int generar_digito(int buffer[8]){
  86.     int impar = 0;
  87.     int par = 0;
  88.     int b,i;
  89.     for(i=0;i<=6;i++){
  90.         if(i%2 == 0)
  91.             impar += buffer[i];
  92.         else
  93.             par += buffer[i];
  94.     }
  95.  
  96.     b = (3*impar)+par;
  97.  
  98.     if(b % 10 == 0)
  99.         return 0;
  100.     else
  101.         return 10 - (int)(b%10);
  102. }
  103.  
  104. void menor_cantidad(){
  105.  
  106. }
  107.  
  108. void buscar_productos(int empresa){
  109.     FILE *fh;
  110.     int ch,buffer[3],k;
  111.     fh=fopen("PRODUCT.TXT","r");
  112.     if(fh==NULL) {
  113.         puts("Can't open that file!");
  114.         exit(1);
  115.     }
  116.     k=2;
  117.     buffer = 0;
  118.     while((ch=fgetc(fh))!=EOF){
  119.         buffer += ch*pow(10,k);
  120.         if(k <= 0)
  121.             k--;
  122.         } else{
  123.             if(ch == '\0')
  124.                 k=2;
  125.         }
  126.         putchar(ch);
  127.        
  128.     }
  129.     fclose(fh);
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement