Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - dlegolas

Páginas: [1]
1
Disculpa la omisión. Reenvío el mensaje completo:

Buenas tardes, tratando de resolver el ejercicio encuentro un problema con el iterator, al imprimir solo me imprime el ultimo registro ingresado la cantidad de registros que hay en la lista.

A continuación las 4 clases creadas.
EntradaDeTeclado:

Código: [Seleccionar]
import java.util.Scanner;

public class EntradaDeTeclado {

    private String entradaTeclado;

    public EntradaDeTeclado() { //Constructor
        entradaTeclado = "";
    } //Cierre del constructor

    public void pedirEntrada() {  //Método de la clase         
        Scanner entradaEscaner = new Scanner(System.in);
        entradaTeclado = entradaEscaner.nextLine();
    } //Cierre del método pedirEntrada

    public String getEntrada() {
        return entradaTeclado;
    } //Cierre del método getEntrada

    public String getPrimeraPalabra() {
        for (int i = 0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring(i, i + 1).equals(" ")) {   
                //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i + 1);
            }
        }
        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya
    } //Cierre del método getPrimeraPalabra

    public int getLongitud() {  //Método de la clase
        return entradaTeclado.length();
    } //Cierre del método getLongitud
   
    public String getLetra(int vPosicionInicial, int vPosicionFinal){
       
        String vLetra =entradaTeclado.substring(vPosicionInicial,vPosicionFinal);
       
        return vLetra;
    }
} //Cierre de la clase

segunda clase:
Código: [Seleccionar]
public class CantanteFamoso {
        private String nombre, discoxventa;
        //private ArrayList DatosCantante
       
        public CantanteFamoso (){
        }
       
        public void setAgregrarCantante (String vNombre, String vDisco){
            nombre=vNombre;
            discoxventa=vDisco;                   
        }
       
        public String getMostrarNombre (){
            return nombre;
        }
       
        public String getMostarDisco (){
            return discoxventa;
        }
}

La tercera clase es para crear el array que debe contener los objetos tipo "CantanteFamoso". Tengo dos métodos para imprimir. El primero "getImprimirLista" intento utilizar el "iterator" pero me arroja el error comentado: imprime el ultimo elemento registrado tantas veces como elementos haya registrado. El segundo método: imprime bien los resultados pero sin usar el "iterator" y con un "Do - While".
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;


public class ListaCantantesFamosos {
    ArrayList<CantanteFamoso> ListaCantante = new ArrayList<>();
    CantanteFamoso vCantante = new CantanteFamoso();
   
    public ListaCantantesFamosos(){       
    }
   
    public void setAgregarCantante (String vNombre, String vDisco){
        vCantante.setAgregrarCantante(vNombre, vDisco);       
        ListaCantante.add(vCantante);
    }
   
    public int getTamanoLista (){
        return ListaCantante.size();
    }
   
    public boolean getValidarPosicion (int vPosicion){
        if (vPosicion>= 0 || vPosicion<getTamanoLista()){
            return true;
        }
        else{
            return false;
        }
    }
   
    public void getImprimirLista(){
        //Creamos el objeto it de tipo Iterator con String
        Iterator<CantanteFamoso> it = ListaCantante.iterator();   
        String vNombre, vDisco;
        //Utilizamos el método hasNext de los objetos tipo Iterator
        while (it.hasNext()) {             
            //Utilizamos el método next de los objetos tipo Iterator
            CantanteFamoso cantante = it.next();
            System.out.println("Nombre:"+cantante.getMostrarNombre()+"   Cancion:"+cantante.getMostarDisco());           
        }
    }   
   
    public void getImprimirLista2(){
        int i = 0;
        System.out.println("Tamano de la lista:"+getTamanoLista());
        do {
            System.out.println("-->"+ListaCantante.get(i).getMostrarNombre()+ListaCantante.get(i).getMostarDisco());
            i+=1;
            if (i>3){
                break;
            }
        } while (getTamanoLista()>i);       
    }
}

La clase de prueba:

Código: [Seleccionar]
public class TestListaCantanteFamoso2 {

    public static void main (String [] Args){
        EntradaDeTeclado vNombreTeclado = new EntradaDeTeclado();
        EntradaDeTeclado vDiscoTeclado = new EntradaDeTeclado();
        ListaCantantesFamosos2 vListaCantantes = new ListaCantantesFamosos2();
        String vNombre;

        do {
            System.out.println("");System.out.println("");System.out.println("");
            System.out.println("Ingrese Nombre: ((\'N\' para salir)");
            vNombreTeclado.pedirEntrada();
//Si no desea continuar, rompemos el ciclo para evitar realizar mas procesos inncesarios
      if (vNombreTeclado.getEntrada().equalsIgnoreCase("n")){
                break;
            }else{
                System.out.println("Ingrese el Disco más vendido por favor");
                vDiscoTeclado.pedirEntrada();
                vListaCantantes.setAgregarCantante(vNombreTeclado.getEntrada(), vDiscoTeclado.getEntrada());
            }
//Para imprimir con el iterator
            vListaCantantes.getImprimirLista();
//Para imprimir con el Do-While
            //vListaCantantes.getImprimirLista2();
            System.out.println("===============Fin de la Lista ======================");
            System.out.println("");System.out.println("");System.out.println("");
           
        } while (!vNombreTeclado.getEntrada().equalsIgnoreCase("n"));
       
    }
}


2
Buenas tardes, tratando de resolver el ejercicio encuentro un problema con el iterator, al imprimir solo me imprime el ultimo registro ingresado la cantidad de registros que hay en la lista.

A continuación las 3 clases creadas.


Código: [Seleccionar]
public class CantanteFamoso {
        private String nombre, discoxventa;
        //private ArrayList DatosCantante
       
        public CantanteFamoso (){
        }
       
        public void setAgregrarCantante (String vNombre, String vDisco){
            nombre=vNombre;
            discoxventa=vDisco;                   
        }
       
        public String getMostrarNombre (){
            return nombre;
        }
       
        public String getMostarDisco (){
            return discoxventa;
        }
}


La segunda clase es para crear el array que debe contener los objetos tipo "CantanteFamoso". Tengo dos métodos para imprimir. El primero "getImprimirLista" intento utilizar el "iterator" pero me arroja el error comentado: imprime el ultimo elemento registrado tantas veces como elementos haya registrado. El segundo método: imprime bien los resultados pero sin usar el "iterator" y con un "Do - While".

Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;


public class ListaCantantesFamosos {
    ArrayList<CantanteFamoso> ListaCantante = new ArrayList<>();
    CantanteFamoso vCantante = new CantanteFamoso();
   
    public ListaCantantesFamosos(){       
    }
   
    public void setAgregarCantante (String vNombre, String vDisco){
        vCantante.setAgregrarCantante(vNombre, vDisco);       
        ListaCantante.add(vCantante);
    }
   
    public int getTamanoLista (){
        return ListaCantante.size();
    }
   
    public boolean getValidarPosicion (int vPosicion){
        if (vPosicion>= 0 || vPosicion<getTamanoLista()){
            return true;
        }
        else{
            return false;
        }
    }
   
    public void getImprimirLista(){
        //Creamos el objeto it de tipo Iterator con String
        Iterator<CantanteFamoso> it = ListaCantante.iterator();   
        String vNombre, vDisco;
        //Utilizamos el método hasNext de los objetos tipo Iterator
        while (it.hasNext()) {             
            //Utilizamos el método next de los objetos tipo Iterator
            CantanteFamoso cantante = it.next();
            System.out.println("Nombre:"+cantante.getMostrarNombre()+"   Cancion:"+cantante.getMostarDisco());           
        }
    }   
   
    public void getImprimirLista2(){
        int i = 0;
        System.out.println("Tamano de la lista:"+getTamanoLista());
        do {
            System.out.println("-->"+ListaCantante.get(i).getMostrarNombre()+ListaCantante.get(i).getMostarDisco());
            i+=1;
            if (i>3){
                break;
            }
        } while (getTamanoLista()>i);       
    }
}


A continuación la clase de prueba:

Código: [Seleccionar]
public class TestListaCantanteFamoso2 {

    public static void main (String [] Args){
        EntradaDeTeclado vNombreTeclado = new EntradaDeTeclado();
        EntradaDeTeclado vDiscoTeclado = new EntradaDeTeclado();
        ListaCantantesFamosos2 vListaCantantes = new ListaCantantesFamosos2();
        String vNombre;

        do {
            System.out.println("");System.out.println("");System.out.println("");
            System.out.println("Ingrese Nombre: ((\'N\' para salir)");
            vNombreTeclado.pedirEntrada();
//Si no desea continuar, rompemos el ciclo para evitar realizar mas procesos inncesarios
      if (vNombreTeclado.getEntrada().equalsIgnoreCase("n")){
                break;
            }else{
                System.out.println("Ingrese el Disco más vendido por favor");
                vDiscoTeclado.pedirEntrada();
                vListaCantantes.setAgregarCantante(vNombreTeclado.getEntrada(), vDiscoTeclado.getEntrada());
            }
//Para imprimir con el iterator
            vListaCantantes.getImprimirLista();
//Para imprimir con el Do-While
            //vListaCantantes.getImprimirLista2();
            System.out.println("===============Fin de la Lista ======================");
            System.out.println("");System.out.println("");System.out.println("");
           
        } while (!vNombreTeclado.getEntrada().equalsIgnoreCase("n"));
       
    }
}

3
Tengo algunas dudas en el ejercicio CU00642B, aunque yo haga creado los objetos SalonCasa y CocinaCasa luego, cuando los invoco desde el objeto Casa  (y lo inspecciono) el me trae los valores por defecto de los constructores de los objetos y nos los que cree, eso es correcto?

Clase SalonCasa

Código: [Seleccionar]
public class SalonCasa {
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "Desconocido";
    }
   
    public SalonCasa(int vNumTV, String vTipoSalon){
        numeroDeTelevisores = vNumTV;
        tipoSalon = vTipoSalon;
    }
   
    public void setNumTV (int vNumTV) {
        numeroDeTelevisores = vNumTV;
    }
   
    public void setTipoSalon(String vTipoSalon){
        tipoSalon = vTipoSalon;
    }
   
    public int getNumTv(){
        return numeroDeTelevisores;
    }
   
    public String getTipoSalon(){
        return tipoSalon;
    }
}



Clase CocinaCasa

Código: [Seleccionar]
public class CocinaCasa {
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
   
    public CocinaCasa(boolean vIndependiente, int vNumFuegos){
        esIndependiente = vIndependiente;
        numeroDeFuegos = vNumFuegos;
    }
   
    public void setEsIndependiente (boolean vEsIndependiente){
        esIndependiente = vEsIndependiente;
    }
   
    public void setNumeroDeFuegos (int vNumFuegos){
        numeroDeFuegos = vNumFuegos;
    }
   
    public boolean getEsIndependiente (){
        return esIndependiente;
    }
   
    public int getNumerodeFuengos (){
        return numeroDeFuegos;
    }
}


Clase Casa

Código: [Seleccionar]
public class Casa {
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
           
    public Casa(){
        superficie = 440.35;
        direccion = "La casa 1";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
    public Casa (double vSuperficie, String vDireccion, int vNumTV, String vTipoSalon, boolean vIndependiente, int vNumFuegos){
        superficie = vSuperficie;
        direccion = vDireccion;
        salonCasa = new SalonCasa(vNumTV, vTipoSalon);
        cocina = new CocinaCasa(vIndependiente, vNumFuegos);
    }
   
    public Casa (double vSuperficie, String vDireccion, SalonCasa objetoSalon, CocinaCasa objetoCocina) {
        superficie = vSuperficie;
        direccion = vDireccion;
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
}

4
Ejercicio Resuelto CU00637B

Código: [Seleccionar]
public class Motor {
    private int tipoBomba;
    private String tipoFluido,combustible;   
   
    public Motor (){
        tipoBomba = 1;
        tipoFluido = "Agua";
        combustible = "0";       
    }
   
    public void getCargaDatos (int valorBomba, String valorFluido, String valorCombustible){
        tipoBomba = valorBomba;
        tipoFluido = valorFluido;
        combustible = valorCombustible;
    }
   
    public void getdimeTipoMotor (){
        switch (tipoBomba) {
            case 0: System.out.println("No hay establecido un valor definido para el tipo de bomba"); break;
            case 1: System.out.println("La bomba es una bomba de agua"); break;
            case 2: System.out.println("La bomba es una bomba de gasolina"); break;
            case 3: System.out.println("La bomba es una bomba de hormigon"); break;
            case 4: System.out.println("La bomba es una bomba de pasta alimenticia");break;
            default: System.out.println("No existe un valor válido para tipo de bomba");break;
        }
    }
   
}

5
A continuación la respuesta a la tarea CU00636B.

Código: [Seleccionar]
public class Rueda {
   
    private String tipo, marca;
    private double diametro,grosor;
   
    public Rueda(){
        tipo = "Automovil";
        marca = "Brigistone";
        grosor = 0.0;
        diametro = 0.0;     
    }
   
    public void setCreaRueda (String valorTipo, String valorMarca, double valorGrosor, double valorDiametro){
        tipo = valorTipo;
        marca = valorMarca;
        grosor = valorGrosor;
        diametro = valorDiametro;
    }
   
    public void comprobarDimensiones (){
        if (diametro > 1.4) {
            System.out.println("La rueda es para un vehículo grande");
            if (grosor < 0.4){
                System.out.println("El grosor para esta rueda es inferior al recomendado");
            }
        }
        else if (diametro > 0.8 && diametro <= 1.4){
            System.out.println("La rueda es para un vehículo mediano");
            if (grosor<0.25){
                System.out.println("El grosor para esta rueda es inferior al recomendado");
            }
        }
        else {
            System.out.println("La rueda es para un vehículo pequeño");
        }           
    }
}

Páginas: [1]

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".