Un vector? o como lo resuelvo?

Iniciado por YDOM, 20 Noviembre 2013, 02:40 AM

0 Miembros y 1 Visitante están viendo este tema.

YDOM

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()
{________________________________________________________________

Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.

MS Windows 7 Ultimate 64-bit
AMD Phenom II X4 955 3.2GHz
4,0GB RAM, NVIDIA GeForce 9400 GT

flony

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
si un problema no tiene solucion entonces no es un problema...es algo inevitable

YDOM

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...
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.

MS Windows 7 Ultimate 64-bit
AMD Phenom II X4 955 3.2GHz
4,0GB RAM, NVIDIA GeForce 9400 GT

rir3760

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
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

YDOM

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;
}
Si le das a alguien un programa, lo frustarás un día. Si le enseñas a programar, lo frustarás toda la vida.

MS Windows 7 Ultimate 64-bit
AMD Phenom II X4 955 3.2GHz
4,0GB RAM, NVIDIA GeForce 9400 GT