Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: YDOM en 20 Noviembre 2013, 02:40 am



Título: Un vector? o como lo resuelvo?
Publicado por: YDOM en 20 Noviembre 2013, 02:40 am
Que tal amigos, les comento mi problema, publique un hilo en dias pasados y les agradezco infitamente el gradioso aporte.

como puedo hacer lo siguiente, quiero que la funcion maquinas alquiler() permita al usuario ingresar que solo pueda alquilar una sola maquina de cada tipo existente, y que en dado caso si el usuario quiere alquilar dos o mas maquinas me guarda en una variable "x" el tipo de maquina que escogio para luego hacer los calculos de todas las maquinas pudiera alquilar.

espero haber sido claro, en dado caso vuelvo a explicar...

Código
  1.  
  2. /**< definicion de precion de maquinaria */
  3. #define bobcat 43000000
  4. #define bulldozer 520000000
  5. #define komatzu 320000000
  6. #define retroex 180000000
  7. #define topadora 35000000
  8. #define tuneladora 600000000
  9. #define zanjadora 70000000
  10. #define camionpluma 120000000
  11.  
  12. using namespace std;
  13.  
  14. int sueldoTotalEmpleado( int tipoEmpleado, int horasOrdinarias, int horasExtras)
  15. {________________________________________________________________
  16.  
  17. void MenuEmpleado ()
  18. {________________________________________________________________
  19.  
  20. int MenuUsuario()
  21. {________________________________________________________________
  22.  
  23. int reinicioPrograma()
  24. {________________________________________________________________
  25.  
  26. int maquinasAlquiler()
  27. {
  28.  
  29.    int opcMaq;
  30.    char otramaq;
  31.    cout << endl << endl;
  32.    cout << "           MAQUINAS DISPONIBLES" << endl;
  33.    cout << " SOLO SE ALQUILA UNA MAQUINA POR CADA TIPO" << endl << endl;
  34.    do
  35.    {
  36.       /// i++;
  37.        cout << "   1. Bobcat               $  43.000.000" << endl;
  38.        cout << "   2. Bulldozer            $ 520.000.000" << endl;
  39.        cout << "   3. Komatzu Limited      $ 320.000.000" << endl;
  40.        cout << "   4. Retroexcavadoras     $ 180.000.000" << endl;
  41.        cout << "   5. Topadora             $  35.000.000" << endl;
  42.        cout << "   6. Tuneladora           $ 600.000.000" << endl;
  43.        cout << "   7. Zanjadora            $  70.000.000" << endl;
  44.        cout << "   8. Camion de Pluma      $ 120.000.000" << endl << endl;
  45.        cout << "   SELECCIONE UNA OPCION   ";
  46.        cin >> opcMaq;
  47.  
  48.        cout << endl << endl;
  49.        cout << "ALQUILAR OTRA MAQUINA? S/N";
  50.        cin >> otramaq;
  51.    }
  52.    while(otramaq == 's' || otramaq == 'S');
  53.  
  54.  /// como lo comente anteirormente no se como hacer, que codigo usar,
  55.  /// para que el programa me guarde los datos, un vector tal vez, pero
  56.  /// no se como usarlo en este caso, para que despues de escogidas todas
  57.  /// todas las maquinas, haga los respectivos calculos e imprima. Gracias
  58.  
  59. }
  60.  
  61. int MenuPrincipal()
  62. {________________________________________________________________
  63.  
  64. int compraMateriales()
  65. {________________________________________________________________
  66.  
  67. int main()
  68. {________________________________________________________________
  69.  
  70.  


Título: Re: Un vector? o como lo resuelvo?
Publicado por: flony en 20 Noviembre 2013, 02:59 am
una opción seria que la variable opcMaq la vaya guardando en un vector, del tamaño total de maquinas, supongo que no debes tener mas de x cantidad de la maquina 1.
por tal motivo el tamaño de vector seria la suma de la totalidad de maquinas.
después con un for, recorres el vector y sumas todas las maquinas 1, después todas las maquinas 2....etc etc
eso si deberías tener variables auxiliares para cada tipo de maquina, así queda el resultado y los utilizas para lo que quieras


Título: Re: Un vector? o como lo resuelvo?
Publicado por: YDOM en 20 Noviembre 2013, 03:27 am
brother, sinceramente en estos momento no como hacerle a ese codigo
disculpas si suena descarado de mi parte, pero me podrias indicar por
medio de un ejemplo como podria hacerlo? te estaria agradecido...


Título: Re: Un vector? o como lo resuelvo?
Publicado por: rir3760 en 20 Noviembre 2013, 03:32 am
Otra forma mas sencilla (en mi opinión) es declarar un array de ocho elementos, uno apara cada tipo de maquina. Todos ellos se inicializan a cero para indicar el total (inicial) de maquinas arrendadas:
Código
  1. // Maquinas arrendadas segun su tipo, por simplicidad hay un elemento adicional
  2. int tipo_arrendado[9] = {0};

Primero debes validar que "opcMaq" este en el rango indicado (1 .. 8), si es así para conocer si la maquina ha sido arrendada basta con verificar el valor de "tipo_arrendado[opcMaq]" que es el total de maquinas arrendadas de ese tipo.

Y por supuesto cuando se alquila una maquina debes incrementar el contador correspondiente.

En cuanto al código fuente como el enunciado es uno donde se pide completar el programa lo políticamente correcto es que lo intentes tu primero, nosotros te ayudamos después.

Un saludo


Título: Re: Un vector? o como lo resuelvo?
Publicado por: YDOM en 20 Noviembre 2013, 04:39 am
pues lo resolvi de esta manera, muchas gracias  ;D   ;-)

Código
  1. int maquinasAlquiler()
  2. {
  3.    int reinicioPrograma();
  4.    int opcMaq[8];
  5.    int granTotal =0;
  6.    int totalBob =0;
  7.    int totalKoma =0;
  8.    int totalRetro =0;
  9.    int totalTopad =0;
  10.    int totalTunel =0;
  11.    int totalZanj =0;
  12.    int totalPluma =0;
  13.    int totalBull =0;
  14.    int n;
  15.    cout << endl << endl;
  16.  
  17.    do
  18.    {
  19.        cout << "\tCUANTAS MAQUINAS DESEA ALQUILAR  ";
  20.        cin >> n;
  21.    }
  22.    while(n<0 || n>8);
  23.  
  24.    for (int j=1; j<=n; j++)
  25.    {
  26.        system("cls");
  27.        cout << endl << endl;
  28.        cout << " SE ALQUILA UNA MAQUINA POR CADA TIPO" << endl;
  29.        cout << "         MAQUINAS DISPONIBLES" << endl << endl;
  30.        cout << "   1. Bobcat               $  43.000.000" << endl;
  31.        cout << "   2. Bulldozer            $ 520.000.000" << endl;
  32.        cout << "   3. Komatzu Limited      $ 320.000.000" << endl;
  33.        cout << "   4. Retroexcavadoras     $ 180.000.000" << endl;
  34.        cout << "   5. Topadora             $  35.000.000" << endl;
  35.        cout << "   6. Tuneladora           $ 600.000.000" << endl;
  36.        cout << "   7. Zanjadora            $  70.000.000" << endl;
  37.        cout << "   8. Camion de Pluma      $ 120.000.000" << endl << endl;
  38.        cout << "   MAQUINA " << j << " QUE DESEA ALQUILAR ";
  39.        cin >> opcMaq[j];
  40.    }
  41.  
  42.    for (int m=1; m<=n; m++)
  43.    {
  44.        if(opcMaq[m]==1)
  45.            totalBob = totalBob + 43000000;
  46.        if(opcMaq[m]==2)
  47.            totalBull = totalBull + 520000000;
  48.        if(opcMaq[m]==3)
  49.            totalKoma = totalKoma + 320000000;
  50.        if(opcMaq[m]==4)
  51.            totalRetro = totalRetro + 180000000;
  52.        if(opcMaq[m]==5)
  53.            totalTopad = totalTopad + 35000000;
  54.        if(opcMaq[m]==6)
  55.            totalTunel = totalTunel + 600000000;
  56.        if(opcMaq[m]==7)
  57.            totalZanj = totalZanj + 70000000;
  58.        if(opcMaq[m]==8)
  59.            totalPluma = totalPluma + 120000000;
  60.    }
  61.  
  62.    granTotal = totalBob + totalBull + totalKoma + totalPluma
  63.                + totalRetro + totalTopad + totalTunel + totalZanj;
  64.  
  65.    cout << endl << endl;
  66.    cout << "LA CUENTA TOTAL DEL ALQUILER DE LAS MAQUINAS ES " << granTotal;
  67.  
  68.    reinicioPrograma();
  69.    return 0;
  70. }