Advertisement
juanjo12x

LP1_Solucion_LAB1_2014_2

Sep 29th, 2014
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.38 KB | None | 0 0
  1. /*
  2.  * File:   Pregunta 5, Laboratorio 1, 2014-2
  3.  * Author: Fernando Alva Manchego
  4.  *
  5.  */
  6.  
  7. #include <cstdio>
  8.  
  9. using namespace std;
  10.  
  11. #define MAX_PUESTO 15
  12. #define MAX_NOMBRE 30
  13.  
  14.  
  15. char pasarPalabra(int *cant){
  16.     char c;
  17.     while ((c = getchar()) == ' ');
  18.     if (c == '(' || c == ')') return c;
  19.     do{
  20.         putchar(c);
  21.         (*cant)++;
  22.         c = getchar();
  23.     } while(c!= ' ' && c!='\t' && c!='\n' && c!= ')' && c!=EOF);
  24.     return c;
  25. }
  26.  
  27. void completarTexto(int num){
  28.     while (num > 0){
  29.         putchar(' ');
  30.         num--;
  31.     }
  32. }
  33.  
  34. int main(int argc, char** argv) {
  35.     int camiseta, dia, diaAnt, mes, anho, goles, partidos, diaUlt, mesUlt, anhoUlt;
  36.     int campeonatos, copas, ranking; bool primero; int cant;
  37.     char c; int cantLeidos = 0;
  38.    
  39.     // Mientras existan equipos
  40.     while (cantLeidos != EOF){
  41.         printf("=================================================================================================\n");
  42.         printf("Pais: ");
  43.         // Intentar leer el numero de campeonatos, copas, ranking
  44.         while(scanf("%d %d %d", &campeonatos, &copas, &ranking) < 3){
  45.             // Transcribir el pais
  46.             pasarPalabra(&cant);
  47.             putchar(' ');
  48.         }
  49.         printf("\nContinente:");
  50.         c = ' ';
  51.         // Transcribir el continente
  52.         while (c!='\n'){
  53.             c = pasarPalabra(&cant);
  54.             putchar(c);
  55.         }
  56.         printf("Participaciones en los mundiales: %d\n", campeonatos);
  57.         printf("Copas ganadas: %d\n", copas);
  58.         printf("Ranking: %d\n", ranking);
  59.         printf("=================================================================================================\n");
  60.         printf("Entrenador: ");
  61.         // Transcribir el nombre del entrenador
  62.         c = ' ';
  63.         while (c!='('){
  64.             c = pasarPalabra(&cant);
  65.             putchar(' ');
  66.         }
  67.         printf("\tNacionalidad: ");
  68.         // Transcribir el pais el entrenador
  69.         c = ' ';
  70.         while (c!=')'){
  71.             c = pasarPalabra(&cant);
  72.             putchar(' ');
  73.         }
  74.         printf("\n=================================================================================================\n");
  75.         printf("Equipo:\n");
  76.         printf("Puesto         Nombre                         No.   Nacimiento Goles   Partidos    Ultimo partido\n");
  77.         printf("-------------------------------------------------------------------------------------------------\n");
  78.         // Mientras existan jugadores
  79.         primero = true; cant = 0;
  80.         while(1){
  81.             // Leer datos numéricos del jugador
  82.             cantLeidos = scanf("%2d", &dia);
  83.            
  84.             if (cantLeidos == 0){
  85.                 // Transcribir el nombre del jugador
  86.                 c = pasarPalabra(&cant);
  87.                 if (c == '\n') { break;}
  88.                 if (c == EOF) { cantLeidos = EOF; break;}
  89.                 putchar(' '); cant++;
  90.             }
  91.            
  92.             if (cantLeidos > 0){ // Nuevo jugador
  93.                 if (!primero){
  94.                     completarTexto(MAX_NOMBRE - cant); cant = 0;
  95.                     printf("%2d\t", camiseta);
  96.                     // Escribir los datos numéricos del jugador anterior
  97.                     printf("\t%02d/%02d/%04d\t%2d\t\t%3d\t\t\t%02d/%02d/%04d\n", diaAnt, mes, anho, goles, partidos, diaUlt, mesUlt, anhoUlt);
  98.                 }else primero = false;
  99.                 // Leer el resto de datos numéricos del jugador nuevo
  100.                 cantLeidos = scanf("%2d%4d%2d%3d%2d%2d%4d", &mes, &anho, &goles, &partidos, &diaUlt, &mesUlt, &anhoUlt);
  101.                 diaAnt = dia;
  102.                                
  103.                 // Transcribir la posición
  104.                 pasarPalabra(&cant);
  105.                 completarTexto(MAX_PUESTO - cant); cant = 0;
  106.                 // Leer el número de camiseta
  107.                 scanf("%d", &camiseta);
  108.             }
  109.            
  110.             if (cantLeidos == EOF) break;
  111.         }
  112.         // Escribir los datos numéricos del último jugador
  113.         completarTexto(MAX_NOMBRE - cant); cant = 0;
  114.         printf("%2d\t", camiseta);
  115.         printf("\t%02d/%02d/%04d\t%2d\t\t%3d\t\t\t%02d/%02d/%04d\n", diaAnt, mes, anho, goles, partidos, diaUlt, mesUlt, anhoUlt);
  116.     }
  117.     printf("=================================================================================================\n");
  118.  
  119.     return 0;
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement