Buenas tardes,
en principio el código siguiente realiza lo que en el Ejercicio se pide.
Me gustaría saber si cometo fallos metódicos en la programación. Qué cosas cambiaríais y como las pondríais.
Seguramente esté programando como el principiante que soy.
Ante todo, muchas gracias.
public class CantanteFamoso
{
private String nombre;
private String discoConMasVentas;
public CantanteFamoso(String valorNombre, String valorDisco){
nombre = valorNombre;
discoConMasVentas = valorDisco;
}
public CantanteFamoso()
{
nombre = "";
discoConMasVentas = "";
}
public void setNombre(String valorNombre){
nombre = valorNombre;
}
public void setDisco(String valorDisco){
discoConMasVentas = valorDisco;
}
public String getNombre(){ return nombre;}
public String getDisco(){ return discoConMasVentas;}
}
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Scanner;
public class ListaCantantesFamosos2
{
private ArrayList<CantanteFamoso> listaCantantesFamosos;
private String nombre;
public ListaCantantesFamosos2(String valorNombre){
nombre = valorNombre;
listaCantantesFamosos = new ArrayList<CantanteFamoso>();
}
public void addCantante(CantanteFamoso valorCantante){
listaCantantesFamosos.add(valorCantante);
}
public void iteracion(){
Iterator<CantanteFamoso> it = listaCantantesFamosos.iterator();
CantanteFamoso cmpIterador = new CantanteFamoso();
while(it.hasNext())
{
cmpIterador = it.next();
System.out.println("Cantante: " + cmpIterador.getNombre() + " Disco con más ventas:" + cmpIterador.getDisco());
}
}
public CantanteFamoso añadirCantantes(){
CantanteFamoso nuevoCantante = new CantanteFamoso();
System.out.println("Por favor introduzca los datos de otro cantante.");
System.out.print("Nombre: ");
Scanner entradaTeclado1 = new Scanner(System.in);
String cantante = entradaTeclado1.nextLine();
System.out.print("Disco con más ventas: ");
Scanner entradaTeclado2 = new Scanner(System.in);
String disco = entradaTeclado2.nextLine();
nuevoCantante.setNombre(cantante);
nuevoCantante.setDisco(disco);
return nuevoCantante;
}
}
import java.util.Scanner;
public class TestCantanteFamoso
{
public static void main(String [] args){
ListaCantantesFamosos2 lista = new ListaCantantesFamosos2("Lista de Cantantes Famosos 2.");
CantanteFamoso famoso1 = new CantanteFamoso("Madonna","All I want is you.");
CantanteFamoso famoso2 = new CantanteFamoso("Jorge Negrete","Jalisco.");
lista.addCantante(famoso1);
lista.addCantante(famoso2);
System.out.println("La lista iniciar contiene los siguientes datos:");
lista.iteracion();
lista.addCantante(lista.añadirCantantes());
int i = 0;
while( i == 0){
System.out.println("La lista actualizada contiene los siguientes datos:");
lista.iteracion();
System.out.println("¿Desea introducir los datos de otro cantante?");
Scanner entradaTeclado = new Scanner(System.in);
String decision = entradaTeclado.nextLine();
switch(decision){
case "s": lista.addCantante(lista.añadirCantantes());
break;
case "n": i = 1;
break;
default: System.out.println("Ha escogido una opción no válida");
break;
}
}
}
}
Muchas gracias, atentamente.