Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: arcanFAC en 01 de Abril 2015, 01:04
-
Hola, aquí les presento el ejercicio con su solución para recibir sugerencias:
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).
Aquí mi clase CantanteFamoso
public class CantanteFamoso{
private String nombre;
private String discoConMasVentas;
public CantanteFamoso(){
nombre = "";
discoConMasVentas = "";
}
public CantanteFamoso(String nombre, String discoConMasVentas){
this.nombre = nombre;
this.discoConMasVentas = discoConMasVentas;
}
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;}
}
Aquí mi clase ListaCantantesFamosos
import java.util.ArrayList;
import java.util.Iterator;
public class ListaCantantesFamosos{
private ArrayList<CantanteFamoso> listaCantantes;
public ListaCantantesFamosos(){
listaCantantes = new ArrayList<CantanteFamoso>();
}
public void addListaCantantesFamosos(CantanteFamoso cantante){
listaCantantes.add(cantante);
}
public void getListaCantantesFamosos(){
CantanteFamoso cantante;
Iterator<CantanteFamoso> it = listaCantantes.iterator();
while(it.hasNext()){
cantante = it.next();
System.out.print("Cantante: " + cantante.getNombre());
System.out.println(" Disco mas vendido: " + cantante.getDiscoConMasVentas());
}
}
}
Y finalmente aquí el main
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String condicion = "", cantante = "", disco = "";
ListaCantantesFamosos listaPersonalizada = new ListaCantantesFamosos();
listaPersonalizada.addListaCantantesFamosos(new CantanteFamoso("Juanes", "Mi sangre"));
listaPersonalizada.addListaCantantesFamosos(new CantanteFamoso("Eminem", "The Marshall Mathers LP"));
System.out.println("La lista inicial contiene los siguientes datos:");
listaPersonalizada.getListaCantantesFamosos();
do{
System.out.println("Por favor ingrese los datos de otro cantante");
System.out.print("Cantante : ");
cantante = sc.nextLine();
System.out.print("Disco mas vendido: ");
disco = sc.nextLine();
listaPersonalizada.addListaCantantesFamosos(new CantanteFamoso(cantante, disco));
System.out.println("La lista actualizada contiene los siguientes datos:");
listaPersonalizada.getListaCantantesFamosos();
System.out.println("Desea ingresar mas datos(si/no)");
condicion = sc.nextLine();
}while(!condicion.equals("no"));
System.out.println("\nHA FINALIZADO EL PROGRAMA");
}
}
Muchas gracias.
-
Hola arcanFAC
Tu ejercicio está perfecto.
Como no tengo ninguna puntualización sobre tu código, añado un comentario para mejorar si cabe:
Este mensaje en el main:
System.out.println("Desea ingresar mas datos(si/no)");
parece indicar que se puede escoger si, o no. Cuando tu código reacciona al no de una forma y de otra ante cualquier otro texto.
Es decir que responde igual a "si" y a por ejemplo "hola que tal"
Una variación de este mensaje sería:
System.out.println("Use cualquier texto para ingresar más datos, o (no) para terminar.");
Saludos