Test Foro de elhacker.net SMF 2.1

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 (cpp) [Seleccionar]


/**< definicion de precion de maquinaria */
#define bobcat 43000000
#define bulldozer 520000000
#define komatzu 320000000
#define retroex 180000000
#define topadora 35000000
#define tuneladora 600000000
#define zanjadora 70000000
#define camionpluma 120000000

using namespace std;

int sueldoTotalEmpleado( int tipoEmpleado, int horasOrdinarias, int horasExtras)
{________________________________________________________________

void MenuEmpleado ()
{________________________________________________________________

int MenuUsuario()
{________________________________________________________________

int reinicioPrograma()
{________________________________________________________________

int maquinasAlquiler()
{

    int opcMaq;
    char otramaq;
    cout << endl << endl;
    cout << "           MAQUINAS DISPONIBLES" << endl;
    cout << " SOLO SE ALQUILA UNA MAQUINA POR CADA TIPO" << endl << endl;
    do
    {
       /// i++;
        cout << "   1. Bobcat               $  43.000.000" << endl;
        cout << "   2. Bulldozer            $ 520.000.000" << endl;
        cout << "   3. Komatzu Limited      $ 320.000.000" << endl;
        cout << "   4. Retroexcavadoras     $ 180.000.000" << endl;
        cout << "   5. Topadora             $  35.000.000" << endl;
        cout << "   6. Tuneladora           $ 600.000.000" << endl;
        cout << "   7. Zanjadora            $  70.000.000" << endl;
        cout << "   8. Camion de Pluma      $ 120.000.000" << endl << endl;
        cout << "   SELECCIONE UNA OPCION   ";
        cin >> opcMaq;

        cout << endl << endl;
        cout << "ALQUILAR OTRA MAQUINA? S/N";
        cin >> otramaq;
    }
    while(otramaq == 's' || otramaq == 'S');

  /// como lo comente anteirormente no se como hacer, que codigo usar,
  /// para que el programa me guarde los datos, un vector tal vez, pero
  /// no se como usarlo en este caso, para que despues de escogidas todas
  /// todas las maquinas, haga los respectivos calculos e imprima. Gracias

}

int MenuPrincipal()
{________________________________________________________________

int compraMateriales()
{________________________________________________________________

int main()
{________________________________________________________________

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 (cpp) [Seleccionar]
// Maquinas arrendadas segun su tipo, por simplicidad hay un elemento adicional
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 (cpp) [Seleccionar]
int maquinasAlquiler()
{
    int reinicioPrograma();
    int opcMaq[8];
    int granTotal =0;
    int totalBob =0;
    int totalKoma =0;
    int totalRetro =0;
    int totalTopad =0;
    int totalTunel =0;
    int totalZanj =0;
    int totalPluma =0;
    int totalBull =0;
    int n;
    cout << endl << endl;

    do
    {
        cout << "\tCUANTAS MAQUINAS DESEA ALQUILAR  ";
        cin >> n;
    }
    while(n<0 || n>8);

    for (int j=1; j<=n; j++)
    {
        system("cls");
        cout << endl << endl;
        cout << " SE ALQUILA UNA MAQUINA POR CADA TIPO" << endl;
        cout << "         MAQUINAS DISPONIBLES" << endl << endl;
        cout << "   1. Bobcat               $  43.000.000" << endl;
        cout << "   2. Bulldozer            $ 520.000.000" << endl;
        cout << "   3. Komatzu Limited      $ 320.000.000" << endl;
        cout << "   4. Retroexcavadoras     $ 180.000.000" << endl;
        cout << "   5. Topadora             $  35.000.000" << endl;
        cout << "   6. Tuneladora           $ 600.000.000" << endl;
        cout << "   7. Zanjadora            $  70.000.000" << endl;
        cout << "   8. Camion de Pluma      $ 120.000.000" << endl << endl;
        cout << "   MAQUINA " << j << " QUE DESEA ALQUILAR ";
        cin >> opcMaq[j];
    }

    for (int m=1; m<=n; m++)
    {
        if(opcMaq[m]==1)
            totalBob = totalBob + 43000000;
        if(opcMaq[m]==2)
            totalBull = totalBull + 520000000;
        if(opcMaq[m]==3)
            totalKoma = totalKoma + 320000000;
        if(opcMaq[m]==4)
            totalRetro = totalRetro + 180000000;
        if(opcMaq[m]==5)
            totalTopad = totalTopad + 35000000;
        if(opcMaq[m]==6)
            totalTunel = totalTunel + 600000000;
        if(opcMaq[m]==7)
            totalZanj = totalZanj + 70000000;
        if(opcMaq[m]==8)
            totalPluma = totalPluma + 120000000;
    }

    granTotal = totalBob + totalBull + totalKoma + totalPluma
                + totalRetro + totalTopad + totalTunel + totalZanj;

    cout << endl << endl;
    cout << "LA CUENTA TOTAL DEL ALQUILER DE LAS MAQUINAS ES " << granTotal;

    reinicioPrograma();
    return 0;
}