Advertisement
Miquel_Fuster

Adquisición de datos

Nov 6th, 2021
1,078
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.86 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define TAM 2
  4. #define MAX_CHAR_COMBUSTIBLE_TIPO 20
  5.  
  6. struct est_Combustible{
  7.     char tipo[MAX_CHAR_COMBUSTIBLE_TIPO];
  8.     int litros;        
  9. };
  10.  
  11. struct est_servicio{
  12.     int carga;  //lo hace la misma maquina por desfacaje de int i;
  13.     int playero;
  14.     int surtidor;
  15.     struct est_Combustible combustibles;
  16. } servicios[TAM];
  17.  
  18. int main() {
  19.     for(int i=0; i<TAM; i++) {
  20.         //numero de carga  
  21.         puts  ("----------------------------------------------------");
  22.         printf("        El numero de carga es %i     \n", i+1);
  23.         puts  ("----------------------------------------------------");
  24.  
  25.         //numero de surtidor del 1 al 4
  26.         printf("\n\nDigite su numero de surtidor (1-4): ");
  27.         scanf("%i", &servicios[i].surtidor);
  28.         while(servicios[i].surtidor<1 || servicios[i].surtidor>4) {
  29.             printf("\n ERROR!! Digite un numero del 1-4: ");
  30.             scanf("%i", &servicios[i].surtidor);
  31.         }
  32.         printf("\n-----------Eligio el surtidor %i---------\n", servicios[i].surtidor);
  33.        
  34.         puts(  "\n\nElija su player (1-3): ");
  35.         puts(  "1.Javier");
  36.         puts(  "2.Jose");
  37.         puts(  "3.Victoria");
  38.         printf("Digite un numero del 1-3: ");
  39.         scanf("%i", &servicios[i].playero);
  40.         while(servicios[i].playero<1 || servicios[i].playero>3) {
  41.             printf("\n ERROR!! Digite un numero del 1-3: ");
  42.             scanf("%i", &servicios[i].playero);
  43.         }
  44.         printf("\n-----------Eligio el playero numero: %i---------\n", servicios[i].playero);
  45.        
  46.         // borra el buffer hasta el caracter de nueva línea. Lo que queda del scanf anterior.
  47.         while(getchar() != '\n');
  48.         printf("\n\nElija su combustible: ");
  49.         do {
  50.             fgets(servicios[i].combustibles.tipo, MAX_CHAR_COMBUSTIBLE_TIPO, stdin);
  51.             // busca el \n dentro de la adquisición
  52.             char *cp = strchr(servicios[i].combustibles.tipo, '\n');
  53.             if(cp) {
  54.                 // si lo encuentra lo sustituye por un \n pues no forma parte del dato
  55.                 *cp = '\0';
  56.             }
  57.             else {
  58.                 // en caso de no encontrarlo está en el buffer de entrada y debemos vaciarlo
  59.                 while(getchar() != '\n');
  60.             }
  61.             // si se introdujo una línea vacía lanzar un mensaje de error
  62.             if(servicios[i].combustibles.tipo[0] == '\0') {
  63.                 printf("\n ERROR!! Debe introducir el combustible a repostar: ");
  64.             }
  65.             // y repetir la adquisición del dato
  66.         } while(servicios[i].combustibles.tipo[0] == '\0');
  67.         printf("\n-----------Eligio el combustible : %s---------\n", servicios[i].combustibles.tipo);  
  68.            
  69.         printf("\n\nEscriba la cantidad de litros de combustible : ");
  70.         scanf("%i", &servicios[i].combustibles.litros);
  71.         printf("\n-----------Cargo : %i litros de combustible---------\n", servicios[i].combustibles.litros);
  72.     }
  73.  
  74.     for(int i=0; i<TAM; i++) {
  75.         printf("\nEn el surtidor %i con el playero %i con el combustible %s se cargo la cantidad de %i litros de combustible", servicios[i].surtidor, servicios[i].playero, servicios[i].combustibles.tipo, servicios[i].combustibles.litros);
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement