Advertisement
julibar

ej8

Nov 10th, 2022
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.99 KB | None | 0 0
  1. //Alumna: Julieta Barraza
  2. /*El dueño del gimnasio Laragym nos pide que realicemos un programa que les permita cargar todas los entrenamientos de sus 50 clientes,
  3. cada registro de entrenamiento contiene:
  4.     -Numero de Entrenamiento (1 - 9999)
  5.     -Cliente (101- 150)
  6.     -Tipo de Entrenamiento ( 1 - 10 )
  7.     -Tiempo del Entrenamiento (minutos)
  8.  
  9. Puede haber varios registros de entrenamiento por cliente.
  10. La información no se encuentra agrupada ni ordenada.
  11. El fin de la carga de entrenamientos se indica con un número de entrenamiento igual a cero, informar:
  12.  
  13. 1- Por cada cliente, el tiempo total de entrenamiento (expresarlo en horas y minutos, ejemplo 70 minutos se expresaría 1 hora y 10 minutos).
  14. 2 - Por cada cliente, los tipos de entrenamiento que realizó.
  15. 3 - Por cada cada cliente y tipo de entrenamiento, la cantidad total de minutos entrenados. Sólo listar aquellos registros que sean superiores a 0.
  16. 4- El número de cliente que más tiempo haya entrenado.
  17. 5 - Los tipos de entrenamiento que no se realizaron por ningún cliente.
  18. */
  19.  
  20. #include <iostream>
  21. #include <iomanip>
  22. using namespace std;
  23.  
  24. int main () {
  25.    const int CLIENTES=50, MINUTOS=60, TIPOS=10;
  26.    int nEntrenamiento, nCliente, tipoEntrenamiento, tiempoEntrenamiento; //consigna
  27.    int x, i, vTiempoTotalEntrenamiento[CLIENTES] = {}, vHoras[CLIENTES] = {}, vMinutos[CLIENTES] = {}; //1
  28.    int vEntrenamientosRealizados[CLIENTES] [TIPOS]= {}; //2 y 3
  29.    int maximoCliente, maximoTiempoEntrenado=0; //4
  30.    int acuTiempoXTipo[TIPOS] = {}; //5
  31.  
  32.    cout << "Ingrese numero de entrenamiento: " ;
  33.    cin >> nEntrenamiento;
  34.  
  35.    while (nEntrenamiento != 0) {
  36.  
  37.         cout << "Ingrese numero de cliente: " ;
  38.         cin >> nCliente;
  39.         cout << "Ingrese tipo de entrenamiento: " ;
  40.         cin >> tipoEntrenamiento;
  41.         cout << "Ingrese tiempo de entrenamiento: " ;
  42.         cin >> tiempoEntrenamiento;
  43.  
  44.         vTiempoTotalEntrenamiento[nCliente-101] += tiempoEntrenamiento; //1 - acumular tiempo de entrenamiento por cliente
  45.  
  46.         vEntrenamientosRealizados[nCliente-101] [tipoEntrenamiento-1]= tiempoEntrenamiento; //2 y 3- Por cada cliente, acumulo el tiempo por cada tipo de entrenamiento que realizó.
  47.  
  48.         cout << endl;
  49.         cout << "Ingrese numero de entrenamiento: " ;
  50.         cin >> nEntrenamiento;
  51.  
  52.    }
  53.  
  54.     cout << endl ;
  55.     //1- Mostrar por cada cliente, tiempo de entrenamiento en formato de horas y minutos
  56.  
  57.     cout << endl << "-------------------Punto 1-------------------" << endl << endl;
  58.  
  59.     for (i=0; i<CLIENTES; i++) {
  60.  
  61.         vHoras[i] = vTiempoTotalEntrenamiento[i] / MINUTOS;
  62.         vMinutos[i] = vTiempoTotalEntrenamiento[i] % MINUTOS;
  63.     }
  64.  
  65.     for(x=0; x<CLIENTES; x++){
  66.  
  67.         if (vTiempoTotalEntrenamiento[x] != 0) { //if para que no se muestren los clientes que no entrenaron, si lo sacamos muestra todos
  68.  
  69.             cout << "El cliente " << x+101 << " entreno " << vHoras[x] << " hora/s y " << vMinutos[x] << " minutos." << endl ;
  70.  
  71.         }
  72.  
  73.     }
  74.     cout << endl;
  75.  
  76.     //2 - Por cada cliente, los tipos de entrenamiento que realizó.
  77.  
  78.  
  79.     cout << endl <<  "-------------------Punto 2-------------------" << endl << endl;
  80.  
  81.     for(x=0; x<CLIENTES; x++){
  82.  
  83.         for (i=0; i<TIPOS;i++) {
  84.  
  85.             if (vEntrenamientosRealizados [x][i]>0) {
  86.  
  87.                 cout << "El cliente " << x+101 << " realizo los tipos de entrenamientos: "  << i+1 << endl;
  88.  
  89.             }
  90.  
  91.         }
  92.  
  93.     }
  94.  
  95.     //3 - Por cada cada cliente y tipo de entrenamiento, la cantidad total de minutos entrenados. Sólo listar aquellos registros que sean superiores a 0.
  96.  
  97.  
  98.     cout << endl <<  "-------------------Punto 3-------------------" << endl << endl;
  99.  
  100.     for(x=0; x<CLIENTES; x++){
  101.  
  102.         for (i=0; i<TIPOS;i++) {
  103.  
  104.             if (vEntrenamientosRealizados [x][i]>0) {
  105.  
  106.                 cout << "El cliente " << x+101 << " entreno "  << vEntrenamientosRealizados[x][i] << " minutos para el entrenamiento tipo " << i+1 <<endl;
  107.  
  108.             }
  109.  
  110.         }
  111.  
  112.     }
  113.  
  114.     //4- El número de cliente que más tiempo haya entrenado.}
  115.  
  116.     cout << endl <<  "-------------------Punto 4-------------------" << endl << endl;
  117.  
  118.     for (i=0; i<CLIENTES; i++) {
  119.  
  120.         if (vTiempoTotalEntrenamiento[i]>maximoTiempoEntrenado) {
  121.  
  122.             maximoTiempoEntrenado=vTiempoTotalEntrenamiento[i];
  123.             maximoCliente=i+101;
  124.         }
  125.  
  126.     }
  127.  
  128.     cout << "El cliente que mas entreno en total fue el " << maximoCliente << endl;
  129.  
  130.     //5 - Los tipos de entrenamiento que no se realizaron por ningún cliente.
  131.  
  132.     cout << endl <<  "-------------------Punto 5-------------------" << endl << endl;
  133.  
  134.     for(x=0; x<CLIENTES; x++){
  135.  
  136.         for (i=0; i<TIPOS;i++) {
  137.  
  138.             acuTiempoXTipo[i] += vEntrenamientosRealizados[x][i];
  139.  
  140.         }
  141.  
  142.     }
  143.  
  144.     for (i=0; i<TIPOS; i++) {
  145.  
  146.         if (acuTiempoXTipo[i]==0) {
  147.  
  148.             cout << "El tipo de entrenamiento " << i+1 << " nunca se realizo" << endl;
  149.  
  150.  
  151.         }
  152.  
  153.     }
  154.  
  155.  
  156. system("pause>nul");
  157.     return 0;
  158. }
  159.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement