Autor Tema: Ejercicio CU00666B for extendido o for each en java  (Leído 2807 veces)

momo

  • Principiante
  • **
  • Mensajes: 64
    • Ver Perfil
Ejercicio CU00666B for extendido o for each en java
« en: 12 de Septiembre 2014, 23:32 »
Citar
   Aqui les Dejo Esta Entrega


En Realidad Me Costo Un poco en elaborar el ejercicio, pero hay vamos a la final lo pude Lograr.... algún detalle que tenga el ejercicio por favor decírmelo




Citar
/*
 * Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList
 * con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main
 * que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la
 * lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido
 * mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe
 * dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir
 * tantos 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.
 */

Citar
Entrada Teclado
Código: [Seleccionar]
import java.util.Scanner;
public class EntradaTeclado
{
    private String entradaTeclado;

    public EntradaTeclado()
    {
        entradaTeclado="";
        solicitarEntrada();
    }

    public void  solicitarEntrada()
    {
        Scanner escanearEntrada=new Scanner(System.in);
        entradaTeclado=escanearEntrada.nextLine();
    }

    public String getEntrada(){return entradaTeclado;}
}


Citar
Lista Cantante Famoso
Código: [Seleccionar]
import java.util.ArrayList;
public class ListaCantanteFamoso
{
    private String nombreCantante;// Declaramos Atributo
    private ArrayList<String>listaDeCantantes;//Declaramos la Array que va a contener los objetos
   
    public ListaCantanteFamoso(String valorNombre)
    {
        nombreCantante=valorNombre;
        listaDeCantantes=new ArrayList<String>(); 
        listaDeCantantes.add("Bob Marley"); //Tres Cantantes
        listaDeCantantes.add("Rio Roma");
        listaDeCantantes.add("Avici");
    }
    public void agregarNombre(String nombre)
    {
        listaDeCantantes.add(nombre);//Agregamos Los Cantantes
    }
    public String getNombre(int posicion)//Metodo para extraer un objeto de sierta posicion
    {
        if(posicion>=0&&posicion<listaDeCantantes.size())
        {
            return listaDeCantantes.get(posicion);
        }else
        {
            return " No Existe Nombre Para la Posicion Solicitada";
        }
    }
   
   
    public void mostrarLista()
    {
        int i=0;
    for(String nombres:listaDeCantantes)//Utilizamos For each para recorrer la lista de los cantantes
        {
            System.out.println((i+1) +":  "+nombres);
            i++;
         
           
       
        }     
    }
         public int getTamanho()
    {
        return listaDeCantantes.size();//Tamaño de la lista;
    }   
   

}

Citar
Test Lista Cantante Famoso
Código: [Seleccionar]
import java.util.Scanner;

public class TestListaCantanteFamoso
{
    public static void main(String[] args)
    {

        ListaCantanteFamoso lista =new ListaCantanteFamoso("");//Se crea el Objeto Lista
        boolean otroCantante=true;//Se inicializa en True para que entre al bucle
        while(otroCantante==true)// comparamos la variable con true para que entre al bucle de lo contrario no entrara si colocamos false
        {

            System.out.println ("Por Favor Agregar Un Cantante");
            EntradaTeclado primeraEntrada =new EntradaTeclado();
            System.out.println("Gracias Por Agregar al Cantante");           
            lista.agregarNombre(primeraEntrada.getEntrada());
            System.out.println("Deceas Agregar  otro Cantante");
            Scanner tecladoEscaner=new Scanner(System.in);
            String  resp=tecladoEscaner.nextLine();
            //Se Hace la condicion para saber si queremos agregar otro cantante si la letra es "s" o "S" lo agrega si la letra es "n" o "N" no lo agrega,
            //y pasa a mostrar el tamaño de la lista y lista con el nombre de todos los cantantes
            if(resp.equals("s")==true || resp.equals("S")==true)
            {
                otroCantante=true;//se iguala a True para que inicie de nuevo a agregar al cantante             

            }else if(resp.equals("n")==false || resp.equals("N")==false)
            {break;//Rompe la condicion del IF
            }//Fin If Anidado

        }
        System.out.println("Cantidad de Cantantes en la lista : "+lista.getTamanho());//Muestra el tamaño de la lista
        lista.mostrarLista();//Muestra la lista
        System.out.println("Gracias ");

    }
}


« Última modificación: 14 de Septiembre 2014, 20:45 por Alex Rodríguez »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Ejercicio CU00666B
« Respuesta #1 en: 13 de Septiembre 2014, 11:33 »
Hola momo
Tu ejercicio es funcional al 100%
Y cumple lo solicitado en el enunciado

Las clases EntradaTeclado y ListaCantanteFamoso, correctas, sin comentarios

La clase TestListaCantanteFamoso, también funciona bien, pero te quiero comentar lo siguiente:

En estas líneas
Citar
Scanner tecladoEscaner=new Scanner(System.in);
String  resp=tecladoEscaner.nextLine();

Has copiado el código de la clase EntradaTeclado. Estas repitiendo código que ya tienes escrito.
He aquí dos formas de conseguir lo que tu quieres: Una respuesta por teclado

primeraEntrada = new EntradaTeclado();
String resp = primeraEntrada.getEntrada();

Vuelves a utilizar el mismo objeto primeraEntrada
o

EntradaTeclado segundaEntrada = new EntradaTeclado();
String resp = segundaEntrada .getEntrada();

Creas un nuevo objeto 'segundaEntrada'

A continuación tienes un else if
Citar
else if(resp.equals("n")==false || resp.equals("N")==false)

Cuya condición se ejecutará siempre
Pongas lo que pongas en las comillas de equals, comparado con false siempre dará false.
Es decir, es cierto que es false, pues se cumple la condición, al cumplirse la condición se ejecutará el break; que por cierto rompe el bucle del while no la condición del if

Así pues, esta condición del if te la puedes ahorrar y poner un simple else con el break dentro.

A, se me olvidaba
Cuando quieras que el usuario del programa de una entrada por teclado, preséntale un mensaje indicando que se espera recibir, si un nombre, un número, o un si o un no
Por ejemplo

System.out.println("Deceas Agregar  otro Cantante. Pulsa S para Si, cualquier otra tecla para No");

Eso es todo. Saludos

 

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