Autor Tema: Java ejercicios resueltos vector lista tipo Vector capacidad capacity CU00922C#  (Leído 2509 veces)

Erik_Escriche

  • Principiante
  • **
  • Mensajes: 65
    • Ver Perfil
Buenas tardes a todos.

Dejo mi respuesta al ejercicio de la entrega CU00922C del curso Lenguaje de Programación Java Nivel Avanzado I.

Citar
Crea una clase denominada Paquete con los atributos idPaquete (int) y pesoPaquete (int), donde pesoPaquete supondremos que es un dato en kg que podrá tomar valores entre 80 y 150.

Crea una clase con el método main donde se cree una lista de tipo Vector que tendrá una capacidad inicial de 5 y un incremento de 1. Esta lista será “el contenedor” donde guardaremos los paquetes. Este contenedor podrá cargar un peso máximo de 100 kilos multiplicado por su capacidad (capacity de Vector). Es decir, el contenedor inicialmente podrá cargar 500 kilos. Este dato lo calcularemos y lo denominaremos cargaMaximaContenedor.

Introduciremos 50 paquetes en la lista. El atributo pesoPaquete debe establecerse para  cada objeto de forma aleatoria. Al introducir los paquetes la capacidad (capacity) del contenedor se ampliará a 50, por lo que calcularemos de nuevo el valor de cargaMaximaContenedor. Ahora deberemos obtener que se  podrá cargar hasta 5000 kilos, ya que la nueva capacidad (capacity) será 50. Muestra un mensaje por consola informando de la capacidad del contenedor, de su carga máxima y del número de paquetes que contiene y el peso total de estos paquetes.

Si el peso total de los paquetes resulta superior al peso máximo que puede  cargar el contenedor deberemos aumentar la capacidad (capacity) del contenedor en tantos elementos como fuera necesario para que el peso  total de los paquetes sea inferior al peso máximo que puede cargar el contenedor y mostrar un mensaje informando de ello.

Clase Paquete.
Código: [Seleccionar]
public class Paquete {
    //Atributos.
    private int idPaquete;
    private int pesoPaquete;
    //Constructor.
    public Paquete (int idPaquete, int pesoPaquete) {
        this.idPaquete=idPaquete;
        this.pesoPaquete=pesoPaquete;
    }
    //Métodos.
    public void setIdPaquete (int idPaquete) {this.idPaquete=idPaquete;}
    public void setPesoPaquete (int pesoPaquete) {this.pesoPaquete=pesoPaquete;}
    public int getIdPaquete () { return idPaquete; }
    public int getPesoPaquete () {return pesoPaquete; }
    @Override
    public String toString () {
        return "Paquete con ID: "+idPaquete+". Peso: "+pesoPaquete+" kilogramos.";
    }
}

Clase TestPaquete.
Código: [Seleccionar]
import java.util.Vector;
import java.util.Random;
public class TestPaquete {
    public static void main (String [] args) {
        Vector <Paquete> v = new Vector <Paquete> (5,1);
        int cargaMaximaContenedor=100*v.capacity();
        System.out.println("Carga máxima inicial: "+cargaMaximaContenedor);
        Random r = new Random();
        int numRandom;
        int i =0;
        while (i<50) {
            numRandom = r.nextInt(71)+80;
            v.add(new Paquete(i, numRandom));
            i++;
        }
        v.trimToSize();
        cargaMaximaContenedor=100*v.capacity();
        int pesoTotal=0;       
        for (Paquete tmp: v) {
            pesoTotal=pesoTotal+tmp.getPesoPaquete();
        }
        System.out.println("Capacidad del contenedor: "+v.capacity()+". Carga máxima: "+cargaMaximaContenedor+". Número de paquetes: "+v.capacity()+". Peso total de los paquetes: "+pesoTotal+"." );
        if (pesoTotal<=cargaMaximaContenedor) {System.out.println ("No ha sido necesario aumentar la capacidad del contenedor.");
        }
        while (pesoTotal>cargaMaximaContenedor) {
            v.ensureCapacity(v.capacity()+1);
            cargaMaximaContenedor=100*v.capacity();
            if (pesoTotal<=cargaMaximaContenedor) {
                System.out.println ("Se ha aumentado la capacidad a "+v.capacity()+", lo que permite cargar hasta "+cargaMaximaContenedor+" kilogramos.");
            }
        }
    }
}

¡Saludos!
« Última modificación: 24 de Septiembre 2020, 18:07 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas Erick veo bien el ejercicio, cumple con lo solicitado

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".