Autor Tema: Java. Tipo y método iterator mostrar datos de una lista por consola CU00667B  (Leído 3803 veces)

Pandemia

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 255
    • Ver Perfil
Hola amigos aquí dejo una posible solución al ejercicio CU00667B del tutorial básico en programación orientada a objetos con Java.

Citar
EJERCICIO

Crea una clase denominada ListaCantantesFamosos que disponga de un atributo ArrayList listaCantantesFamosos que contenga objetos de tipo CantanteFamoso. La clase debe tener un método que permita añadir objetos de tipo CantanteFamoso a la lista. Un objeto de tipo CantanteFamoso tendrá como atributos nombre (String) y discoConMasVentas (String), y los métodos para obtener y establecer los atributos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y añade manualmente dos objetos de tipo CantanteFamoso a la la lista. Usando iterator muestra los nombres de cada cantante y su disco con más ventas por pantalla. Se debe pedir al usuario un nombre y disco con más ventas de otro cantante famoso, y una vez introducidos los datos mostrar la lista actualizada usando iterator. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir los datos de otro cantante o salir del programa (se podrán introducir tantos datos de cantantes como se desee. Para ello usa un bucle while que dé opción a elegir al usuario). Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.

Código ListaCantantesFamosos

Código: [Seleccionar]
/**
 *
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 *
 */
import java.util.ArrayList;
import java.util.Iterator;

public class ListaCantantesFamosos{



    private ArrayList<CantanteFamoso> listaCantantesFamosos;     //Atributo, lista

    //constructor
    public ListaCantantesFamosos (){

        listaCantantesFamosos = new ArrayList<CantanteFamoso>();

    }//cierre del constructor

    //Métodos
    public void addCantanteFamoso(CantanteFamoso miCantante){
        listaCantantesFamosos.add(miCantante);
    }//cierre de método

    public CantanteFamoso getCantanteFamoso(int miCantante){
        return listaCantantesFamosos.get(miCantante);
    }//cierre de método

    public void mostrarLista(){
        Iterator<CantanteFamoso> it = listaCantantesFamosos.iterator();
        CantanteFamoso tmpMiCantante;
        while(it.hasNext()){
            tmpMiCantante = it.next();
            System.out.println("Cantante: " + tmpMiCantante.getNombre() + " disco con más ventas: "+
                tmpMiCantante.getDiscoConMasVentas());
        }//cierre del while
    }//cierre de método

}//Cierre de la clase


Código CantanteFamoso

Código: [Seleccionar]
/**
 * Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */
public class CantanteFamoso
{
   private String nombre;
   private String discoConMasVentas;
   
   //Constructor
   public CantanteFamoso(){
       nombre = "";
       discoConMasVentas = "";
    }//ciere del constructor ( sin parametros )
   
   //Constructor 2
   public CantanteFamoso(String nombre, String discoConMasVentas){
       this.nombre = nombre;
       this.discoConMasVentas = discoConMasVentas;
    }//Cierre del 2º constructor con parametros
   
   public void setNombre(String nombre){this.nombre = nombre;}
   
   public void setdiscoConMasVentas(String discoConMasVentas){this.discoConMasVentas = discoConMasVentas;}
     
   public String getNombre(){return nombre;}
   
   public String getDiscoConMasVentas(){return discoConMasVentas;}
   
}//Cierre de la clase

Código TestListaCantantesFamosos

Código: [Seleccionar]
/**
 *  Ejercicio CU00666B del curso de java desde cero de aprenderaprogramar.com
 * Versión 0.1
 * Realizado por Pandemia
 */

import java.util.Scanner;

public class TestListaCantantesFamosos{

    public static void main(String[] args)
   {
       Scanner sc = new Scanner(System.in);
       String nombre, disco, elegir;
       ListaCantantesFamosos laLista = new ListaCantantesFamosos();
       
         
       laLista.addCantanteFamoso(new CantanteFamoso("Madonna","Like a Virgin"));
       laLista.addCantanteFamoso(new CantanteFamoso("Adele","Lemonade"));

       
       System.out.println("La lista inicial contiene los siguientes datos:");
       laLista.mostrarLista();
       System.out.println("Por favor introduzca los datos de otro cantante.");
       System.out.print("Nombre:");
       nombre = sc.nextLine();
       System.out.print("Disco con mas ventas:");
       disco = sc.nextLine();
       laLista.addCantanteFamoso(new CantanteFamoso(nombre,disco));
       System.out.println("La lista actualizada es la siguiente:");
       laLista.mostrarLista();
       
       System.out.println("¿Desea introducir los datos de otro cantante (s/n)?");
       elegir = sc.nextLine();
       elegir.toLowerCase(); // metodo de la clase String para que convierta su valor a minuscula
       while(!"n".equals(elegir)) // Condicion: Mientras no ingresemos "n" se repetira el while
       {
           System.out.println("Por favor introduzca los datos de otro cantante.");
           System.out.print("Nombre:");
           nombre = sc.nextLine();
           System.out.print("Disco con mas ventas:");
           disco = sc.nextLine();
           laLista.addCantanteFamoso(new CantanteFamoso(nombre,disco));
           System.out.println("La lista actualizada es la siguiente:");
           laLista.mostrarLista();
           System.out.println("¿Desea introducir los datos de otro cantante (s/n)?");
           elegir = sc.nextLine();
           elegir.toLowerCase();
       }//cierre del while
       
       System.out.println("Su lista de cantantes ha quedao de la siguiente manera:");
       laLista.mostrarLista();
             
       System.out.println("El programa ha finalizado, gracias por su colaboración\n\n");   
   }//cierre del main 
}//cierre de la clase


Saludos y gracias por vuestro tiempo
« Última modificación: 13 de Septiembre 2016, 09:52 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Java. Tipo y método iterator mostrar datos de una lista por consola CU00667B
« Respuesta #1 en: 13 de Septiembre 2016, 09:52 »
Hola! Todo bien aunque me ha pasado una cosa curiosa al introducir que no quiero continuar con una N mayúscula el programa continúa

¿Desea introducir los datos de otro cantante (s/n)?
N
Por favor introduzca los datos de otro cantante.
Nombre:

Pienso que puede estar relacionado con problemas con el buffer como se comenta en https://www.aprenderaprogramar.com/foros/index.php?topic=3521.0 pero habría que revisarlo para ver por qué no se está deteniendo

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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