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: Pandemia en 03 de Septiembre 2016, 13:15

Título: Java ejercicio resuelto For extendido o for each ejemplo de código CU00666B
Publicado por: Pandemia en 03 de Septiembre 2016, 13:15
Buenas amigos, aquí dejo una posible solución el ejercicio CU00666B del curso de programación orientada a objetos con Java desde cero.

Citar
EJERCICIO

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

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;

public class ListaCantantesFamosos
{
    private String cantantes_Famosos;
    private ArrayList<String> listaCantantesFamosos;

    public ListaCantantesFamosos(String cantantesFamosos){

        cantantes_Famosos = cantantesFamosos;
        listaCantantesFamosos = new ArrayList<String>();
        listaCantantesFamosos.add("Alaska");
        listaCantantesFamosos.add("Katy Perry");
        listaCantantesFamosos.add("Taylor Swift");
        listaCantantes();
    }//cierre del método

    public String getcantante(int elemento){
        if (elemento >= 0 && elemento < listaCantantesFamosos.size()){
            return listaCantantesFamosos.get(elemento);}
        else
        {return "no existe la posición";}
    }//cierre del método

    public void setCantante(String losCantantes){ listaCantantesFamosos.add(losCantantes); }

    public void listaCantantes(){
        int i = 1;
        System.out.println("Nombre de la lista: " + cantantes_Famosos);
        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
            i++;
        }
    }//cierre del método

}//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){
        ListaCantantesFamosos lista = new  ListaCantantesFamosos("Cantantes de moda");
        Scanner sc = new Scanner(System.in);
        String pedirCantante = "";
        System.out.println("Ingrese un nuevo nombre de cantante a la lista de famosos");
        lista.setCantante((pedirCantante = sc.nextLine()));
        lista.listaCantantes();

        do{
            System.out.println("¿Desea ingresar un nuevo cantante? \"SI\" o \"NO\"");
            pedirCantante = sc.nextLine();
            pedirCantante = pedirCantante.toLowerCase(); //Convertir la variable "PedirCantante" en miúsculas

            if (pedirCantante.equals("si")){
                lista.setCantante((pedirCantante = sc.nextLine()));
            }
            else{
                pedirCantante = "no";
                lista.listaCantantes();
            }
        }while (! "no".equals(pedirCantante));

        System.out.println("Fin del Programa, gracias por su participación");
    }//Cierre del main
}//Cierre de la clase


Saludos y gracias por vuestro tiempo....  :D
Título: Re:Java ejercicio resuelto For extendido o for each ejemplo de código CU00666B
Publicado por: César Krall en 09 de Septiembre 2016, 09:07
Hola!

No se entiende bien en la clase ListaCantantesFamosos el atributo private String cantantes_Famosos; Al poner un nombre siempre debes pensar en si está describiendo bien lo que representa. En este caso, si lo que quieres es ponerle un nombre a la lista el atributo debería llamarse nombre_Lista ó algo similar. Es importante cuidar los nombres!

En el for extendido normalmente no se hace uso de contadores:

        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
            i++;
        }

mira la explicación en https://www.aprenderaprogramar.com/foros/index.php?topic=3210.0

Lo demás bien!

Saludos!
Título: Re:Java ejercicio resuelto For extendido o for each ejemplo de código CU00666B
Publicado por: Pandemia en 15 de Septiembre 2016, 22:53
Tienes razón Cesar, ya he mejorado el ejercicio.

 
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;

public class ListaCantantesFamosos
{
    private String cantantes_Famosos;
    private ArrayList<String> listaCantantesFamosos;

    public ListaCantantesFamosos(String cantantesFamosos){

        cantantes_Famosos = cantantesFamosos;
        listaCantantesFamosos = new ArrayList<String>();
        listaCantantesFamosos.add("Alaska");
        listaCantantesFamosos.add("Katy Perry");
        listaCantantesFamosos.add("Taylor Swift");
        listaCantantes();
    }//cierre del método

    public String getcantante(int elemento){
        if (elemento >= 0 && elemento < listaCantantesFamosos.size()){
            return listaCantantesFamosos.get(elemento);}
        else
        {return "no existe la posición";}
    }//cierre del método

    public void setCantante(String losCantantes){ listaCantantesFamosos.add(losCantantes); }

    public void listaCantantes(){
        int i = 1;
        System.out.println("Nombre de la lista: " + cantantes_Famosos);
        for(String cantante : listaCantantesFamosos)
        {
            System.out.println(i + " .- " + cantante);
        }
    }//cierre del método

}//Cierre de la clase


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){
        ListaCantantesFamosos lista = new  ListaCantantesFamosos("Cantantes de moda");
        Scanner sc = new Scanner(System.in);
        String pedirCantante = "";
        System.out.println("Ingrese un nuevo nombre de cantante a la lista de famosos");
        lista.setCantante((pedirCantante = sc.nextLine()));
        lista.listaCantantes();

        do{
            System.out.println("¿Desea ingresar un nuevo cantante? \"SI\" o \"NO\"");
            pedirCantante = sc.nextLine();
            pedirCantante = pedirCantante.toLowerCase(); //Convertir la variable "PedirCantante" en miúsculas

            if (pedirCantante.equals("si")){
                lista.setCantante((pedirCantante = sc.nextLine()));
            }
            else{
                pedirCantante = "no";
                lista.listaCantantes();
            }
        }while (! "no".equals(pedirCantante));

        System.out.println("Fin del Programa, gracias por su participación");
    }//Cierre del main
}//Cierre de la clase


Saludos y gracias por tu tiempo....