Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: HumbertoAli en 13 de Marzo 2017, 23:58
-
Quisiera saber si el ejercicio CU00667B del tutorial de programación Java con BlueJ esta bien, de antemano gracias
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 n){
this.nombre = n;
}
public void setDiscoConMasVentas(String dc){
this.discoConMasVentas = dc;
}
public String getNombre(){
return nombre;
}
public String getDiscoConMasVentas(){
return discoConMasVentas;
}
}
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Iterator;/**
*
* @author baseuser
*/
public class ListaCantantesFamosos2 {
private ArrayList<CantanteFamoso> listaCantantesFamosos = new ArrayList<CantanteFamoso>();
private String nombreLista;
public ListaCantantesFamosos2(){
nombreLista = "------- CANTANTES FAMOSOS -------";
listaCantantesFamosos = new ArrayList<CantanteFamoso>();
listaCantantesFamosos.add(new CantanteFamoso("Michael Jackson", "Thriller"));
listaCantantesFamosos.add(new CantanteFamoso("Madonna", "All I want is you"));
}
public void aggCantante(){
CantanteFamoso cf = new CantanteFamoso();
Scanner sc = new Scanner(System.in);
System.out.println("Por Favor Introduzca el nombre del Cantante: ");
String Cantante = sc.nextLine();
cf.setNombre(Cantante);
System.out.println("Por Favor Introduzca su Disco Mas Famoso: ");
String cd = sc.nextLine();
cf.setDiscoConMasVentas(cd);
listaCantantesFamosos.add(new CantanteFamoso(cf.getNombre(),cf.getDiscoConMasVentas()));
}
public void imprimirLista(){
System.out.println("La lista "+nombreLista+" contiene los siguientes datos: ");
Iterator <CantanteFamoso> it = listaCantantesFamosos.iterator();
CantanteFamoso tmpCantante;
while(it.hasNext()){
tmpCantante = it.next();
System.out.println("Cantante: "+tmpCantante.getNombre()+". Disco Mas vendido: "+tmpCantante.getDiscoConMasVentas());
}
}
public int getTamaño() {
return listaCantantesFamosos.size();
}
public String getNombreLista(){
return nombreLista;
}
}
por ultimo el main
import java.util.Scanner;/**
*
* @author baseuser
*/
public class TestEjercicioIterator {
public static void main(String[]args){
Scanner sc = new Scanner(System.in);
ListaCantantesFamosos2 lcf = new ListaCantantesFamosos2();
lcf.imprimirLista();
String op = "s" ;
String nombre, disco;
while(op.equalsIgnoreCase("s") ){
System.out.println("Por favor introduzca los datos de otro cantante.");
lcf.aggCantante();
System.out.println("Actualizando Lista.........");
lcf.imprimirLista();
System.out.println("¿Desea introducir los datos de otro cantante (s:si/n)no)?");
op = sc.nextLine();
}
System.out.println("Finalizando programa......");
}
}
-
Buenas HumbertoAli.
Sobre la clase ListaCantantesFamosos2 que creaste, decirte que lo ideal sería que fuese igual que la que creaste en el ejercicio anterior a excepción de que en el método imprimirLista() en este ejercicio se pedía hacerlo con un iterator como has hecho.
El método aggCantante() lo deberías usar nada más que para introducir elementos en la lista, y no que se tenga que encargar de pedir los datos por consola también, esta parte debería ir en la clase test o en un método aparte que se encargue de ello.
Por lo demás todo bien.
Saludos. ;D