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: Mac en 11 de Marzo 2014, 16:17

Título: Ayuda con algoritmo java registrar, modificar, listar y eliminar
Publicado por: Mac en 11 de Marzo 2014, 16:17
Hola comunidad necesito una orientación sobre esta problemática.

Crear un algoritmo que:
 
1.   Registrar la información de pasajeros (identificación, nombres, apellidos, email, celular, edad)
2.   Modificar la información de un pasajero determinado
3.   Listar los pasajeros
4.   Eliminar a un pasajero cualquiera

Se que debo  hacer uso de listas enlazadas y un objeto de tipo pasajero se que debe estar como atributo de los nodos de la lista pero no encuentro como arrancar hacerlo.

Tengo que utilizar conceptos de  clases, constructores, atributos privados, métodos obtenedores y establecedores, listas enlazadas y manipulación de objetos.

Gracias por su orientación y ayuda. ;)
 
Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 11 de Marzo 2014, 20:03
¿En qué lenguaje tienes que hacerlo?
Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 11 de Marzo 2014, 22:46
Hola Ogramar  :)
Gracias por responderme

Si. tengo que hacerlo en el lenguaje de programación Java, entorno NetBeans.
Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 12 de Marzo 2014, 08:36
Empieza por escribir la clase Pasajero que representará a un Pasajero:

Código: [Seleccionar]
public class Pasajero
{
    private String identificacion;
    private String nombre;
    private String apellidos;
    private String email;
    private String celular;
    private int edad;

    /**
     * Constructor
     */
    public Pasajero()
    {
        // Inicialización
        identificacion = "desconocido";
        nombre = "desconocido";
        apellidos = "desconocido";
        email = "desconocido";
        celular = "desconocido";
        edad = 0;
    }

// Escribir métodos getters y setters

}

Añádele los métodos getters y setters y crea una clase de prueba con el método main para comprobar que funcione.

Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 13 de Marzo 2014, 01:35
Hola Ogramar Gracias por Seguir ayudándome y orientándome ! ;)

Mira a qui e realizado los métodos Modificadores Analizadores. lo que seria lo get y set.

Tu Medirás si lo e echo bien o no !!

Y después me dirás.

-----------------------------------------------------------------------------------------------------------
Código: [Seleccionar]
    public class Pasajero
{
    private String identificacion;
    private String nombre;
    private String apellidos;
    private String email;
    private String celular;
    private int edad;

    /**
     * Constructor
     */
    public Pasajero()
    {
        // Inicialización
        identificacion = "desconocido";
        nombre = "desconocido";
        apellidos = "desconocido";
        email = "desconocido";
        celular = "desconocido";
        edad = 0;
    }

// Escribir métodos getters y setters

   
    //Metodos Modificadores//
    public void SetIdentificacion(String identificacion) {
        this.identificacion = identificacion;
    }

    public void SetNombre(String nombre) {
        this.nombre = nombre;
    }

    public void SetApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public void SetEmail(String email) {
        this.email = email;
    }

    public void SetCelular(String celular) {
        this.celular = celular;
    }

    public void SetEdad(int edad) {
        this.edad = edad;
    }

// Metodos Analizador//
    public String getIdentificacion() {

        return identificacion;
    }

    public String getNombre() {
        return nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public String getEmail() {
        return email;
    }

    public String getCelular() {
        return celular;
    }

    public int getEdad() {
        return edad;
    }

}


Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 14 de Marzo 2014, 08:47
Hay distintas formas de crear el programa y los datos se pueden pedir por consola o con diálogos. Podemos crear una clase Dialogo cuyo cometido sea mostrar menús y peticiones de datos al usuario, e informar de cuáles son las opciones escogidas por el usuario. Luego ese objeto lo usaremos dentro del algoritmo principal del programa.

Aquí el código (falta completar las distintas opciones)

Código: [Seleccionar]
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import java.io.*;

public class Menu {
    String menu;

    public Menu () {

    }

    public int obtenerOpcionMenu() throws IOException{
        menu="MENU DE PROGRAMA PASAJEROS\n";
        menu+="1.  Insertar pasajero\n";
        menu+="2.  Modificar pasajero\n";
        menu+="3.  Listar los pasajeros\n";
        menu+="4.  Eliminar pasajero\n";
        menu+="5.  Salir\n";
        menu+="Escoja Opción:\n";
        return Integer.parseInt(JOptionPane.showInputDialog(menu));
    }

    public String obtenerIdentificacionPasajero() throws IOException{
        menu="Introduzca identificacion de pasajero\n";
        return JOptionPane.showInputDialog(menu);
    }

    //Completamos aquí la petición de datos

}
Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 14 de Marzo 2014, 14:51
Hola Ogramar.

Mira ahí complete la  petición de datos si ahí algún error me dices.
 Gracias Por seguir ayudándome !  :)
----------------------------------------------------------------------------------------


Código: [Seleccionar]
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import java.io.*;

public class Menu {

    String menu;

    public Menu() {
    }

    public int obtenerOpcionMenu() throws IOException {
        menu = "MENU DE PROGRAMA PASAJEROS\n";
        menu += "1.  Insertar pasajero\n";
        menu += "2.  Modificar pasajero\n";
        menu += "3.  Listar los pasajeros\n";
        menu += "4.  Eliminar pasajero\n";
        menu += "5.  Salir\n";
        menu += "Escoja Opción:\n";
        return Integer.parseInt(JOptionPane.showInputDialog(menu));
    }

    public String obtenerIdentificacionPasajero() throws IOException {

        menu = "Introduzca Identificacion de pasajero\n";

        return JOptionPane.showInputDialog(menu);
    }

    //Completamos aquí la petición de datos
    public String obtenerNombrePasajero() throws IOException {

        menu = "Introduzca Nombre de pasajero\n";

        return JOptionPane.showInputDialog(menu);
    }

    public String obtenerApellidoPasajero() throws IOException {

        menu = "Introduzca Apellido de pasajero\n";

        return JOptionPane.showInputDialog(menu);
    }

    public String obtenerEmailPasajero() throws IOException {

        menu = "Introduzca Apellido de pasajero\n";

        return JOptionPane.showInputDialog(menu);
    }

    public String obtenerCelularPasajero() throws IOException {

        menu = "Introduzca Celular de pasajero\n";

        return JOptionPane.showInputDialog(menu);
    }

    public int obtenerEdadPasajero() throws IOException {

        menu = "Introduzca Edad de pasajero\n";

        return Integer.parseInt(JOptionPane.showInputDialog(menu));
    }
}
Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 16 de Marzo 2014, 20:07
Ya puedes pasar a implementar las opciones de menú. Si lo hiciéramos con un ArrayList nos iría quedando esto (falta completar):

Clase Pasajero:

Código: [Seleccionar]
public class Pasajero {
    private String identificacion;
    private String nombre;
    private String apellidos;
    private String email;
    private String celular;
    private int edad;

    /**
     * Constructor
     */
    public Pasajero()    {
        // Inicialización
        identificacion = "desconocido";
        nombre = "desconocido";
        apellidos = "desconocido";
        email = "desconocido";
        celular = "desconocido";
        edad = 0;
    }

    //Metodos Modificadores//
    public void SetIdentificacion(String identificacion) {this.identificacion = identificacion;   }
    public void SetNombre(String nombre) {this.nombre = nombre; }
    public void SetApellidos(String apellidos) {this.apellidos = apellidos; }
    public void SetEmail(String email) { this.email = email; }
    public void SetCelular(String celular) {this.celular = celular; }
    public void SetEdad(int edad) {this.edad = edad; }

    // Metodos Analizador//
    public String getIdentificacion() {return identificacion; }
    public String getNombre() {return nombre; }
    public String getApellidos() { return apellidos; }
    public String getEmail() {return email; }
    public String getCelular() { return celular;}
    public int getEdad() {return edad;}
}

Clase Dialogo:

Código: [Seleccionar]
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import java.io.*;

public class Dialogo {

    String dialogo;

    public Dialogo() {     }

    public int obtenerOpcionMenu() throws IOException {
        dialogo = "MENU DE PROGRAMA PASAJEROS\n";
        dialogo += "1.  Insertar pasajero\n";
        dialogo += "2.  Modificar pasajero\n";
        dialogo += "3.  Listar los pasajeros\n";
        dialogo += "4.  Eliminar pasajero\n";
        dialogo += "5.  Salir\n";
        dialogo += "Escoja Opción:\n";
        return Integer.parseInt(JOptionPane.showInputDialog(dialogo));
    }

    public String obtenerIdentificacionPasajero() throws IOException {
        dialogo = "Introduzca Identificacion de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    //Completamos aquí la petición de datos
    public String obtenerNombrePasajero() throws IOException {
        dialogo = "Introduzca Nombre de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerApellidoPasajero() throws IOException {
        dialogo = "Introduzca Apellido de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerEmailPasajero() throws IOException {
        dialogo = "Introduzca Apellido de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerCelularPasajero() throws IOException {
        dialogo = "Introduzca Celular de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public int obtenerEdadPasajero() throws IOException {
        dialogo = "Introduzca Edad de pasajero\n";
        return Integer.parseInt(JOptionPane.showInputDialog(dialogo));
    }

    public void cerrarPrograma () {
        JFrame frame = new JFrame("Final del programa");
        JOptionPane.showMessageDialog(frame, "Gracias por usar este programa. Fin");
        System.exit(0);
    }
}

Clase algoritmoTest

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;


public class algoritmoTest {


public static void main (String[] Args) throws IOException {

int opcionEligeUsuario = 0;
List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
Dialogo opcionesUsuario = new Dialogo();

while (opcionEligeUsuario != 5 ) {

opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();
//Registrar la información de pasajero
if (opcionEligeUsuario == 1) {
    Pasajero tmpPasajero = new Pasajero();
    tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
    tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
   
    //Hay que extender ahora lo mismo que hemos hecho para identificación y nombre al resto de datos
   
    //Terminamos guardando el objeto pasajero
    listaDePasajeros.add(tmpPasajero);

}

}

opcionesUsuario.cerrarPrograma();

} //Cierra main

} //Cierra clase
Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 17 de Marzo 2014, 17:29
Hola Ogramar Muchas gracias por tu ayuda estoy contento por que e entendido lo que vamos haciendo !  :D :).

      Ya ejecutando una pequeña prueba alcanzamos hacer la inserción de pasajero

Código: [Seleccionar]
menu += "1.  Insertar pasajero\n";

----------------------------------------------------------------------------------------

solo falta 3 del menú:

Código: [Seleccionar]
menu += "2.  Modificar pasajero\n";
         menu +=  "3.  Listar los pasajeros\n";
         menu +=  "4.  Eliminar pasajero\n";

---------- Agrego el complemento de lo anterior y me dices si la lógica estuvo bien -------------

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;


public class algoritmoTest {


public static void main (String[] Args) throws IOException {

int opcionEligeUsuario = 0;

List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();

Menu opcionesUsuario = new Menu();

while (opcionEligeUsuario != 5 ) {

opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

//Registrar la información de pasajero
if (opcionEligeUsuario == 1) {
 
    Pasajero tmpPasajero = new Pasajero();
   
    tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
   
    tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
   
    tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
   
    tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());
   
    tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());
   
    tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
   
    //Hay que extender ahora lo mismo que hemos hecho para identificación y nombre al resto de datos

    //Terminamos guardando el objeto pasajero
    listaDePasajeros.add(tmpPasajero);



}

}

opcionesUsuario.cerrarPrograma();

} //Cierra main

} //Cierra c
Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 18 de Marzo 2014, 10:18
En la clase Dialogo he introducido este método auxiliar:

Código: [Seleccionar]
    public void mostrarMensaje (String mensaje) {
        JFrame frame = new JFrame("Mensaje");
        JOptionPane.showMessageDialog(frame, mensaje);
    }

La clase algoritmoTest (avanzada pero pendiente de completar) iría quedando:

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;
import java.util.Iterator;

public class algoritmoTest {

    public static void main (String[] Args) throws IOException {

        int opcionEligeUsuario = 0;
        List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
        Dialogo opcionesUsuario = new Dialogo();
        Dialogo mensajeVent = new Dialogo();

        while (opcionEligeUsuario != 5 ) {

            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

            //Registrar la información de pasajero
            if (opcionEligeUsuario == 1) {

                Pasajero tmpPasajero = new Pasajero();
                tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
                tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                //Terminamos guardando el objeto pasajero
                listaDePasajeros.add(tmpPasajero);
            }
            //Fin opción 1 registro información de pasajero

            //Modificar la información de un pasajero
            if (opcionEligeUsuario == 2) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;
                Pasajero pasajeroAModificar = new Pasajero();

                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = "Información actual de pasajero: \n";
                        mensaje = mensaje + "Identificacion: " + tmpAnalizando.getIdentificacion()+"\n";
                        mensaje = mensaje + "Nombre: " + tmpAnalizando.getNombre()+"\n";
                        //Falta completar...

                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";

                        mensajeVent.mostrarMensaje(mensaje);

                        //Falta completar... Aquí código para pedir nuevos datos para el pasajero

                    } else { }    //else vacío. No hay acciones a ejecutar.

                } //Cierre del while

                if (pasajeroEncontrado == false) {
                     mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            }

        }

        opcionesUsuario.cerrarPrograma();

    } //Cierra main

} //Cierra clase
Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 18 de Marzo 2014, 18:27
 Hola Ogramar

Ya e completado el código calificarme si lo e echo bien o hay algún erro   :D

Lo que no se es como muestro la modificación del pasajero que e actualizado. 

Ahora nos quedaría si ya me a salido bien  la opción 2 que es Modificar Pasajero nos faltaría :

3.Listar pasajero
4. Eliminar


---------------------------------------------------------------------------------------

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;
import java.util.Iterator;

public class algoritmoTest {

    public static void main(String[] Args) throws IOException {

        int opcionEligeUsuario = 0;

        List<Pasajero> listaDePasajeros = new ArrayList<Pasajero>();
     
        Menu opcionesUsuario = new Menu();
       
        Menu mensajeVent = new Menu();
     

        while (opcionEligeUsuario != 5) {

            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

//Registrar la información de pasajero
            if (opcionEligeUsuario == 1) {

                Pasajero tmpPasajero = new Pasajero();

                tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());

                tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());

                tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());

                tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());

                tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());

                tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                //Terminamos guardando el objeto pasajero

                listaDePasajeros.add(tmpPasajero);

            } //Fin opción 1 registro información de pasajero


            //Modificar la información de un pasajero
            if (opcionEligeUsuario == 2) {
               
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
               
                boolean pasajeroEncontrado = false;
               
                Pasajero pasajeroAModificar = new Pasajero();

                Iterator<Pasajero> it = listaDePasajeros.iterator();
               
                Pasajero tmpAnalizando;

                while (it.hasNext()) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();   //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado)) {
                     
                        pasajeroEncontrado = true;
                       
                        String mensaje = "Información actual de pasajero: \n";
                       
                        mensaje = mensaje + "Identificacion: " + tmpAnalizando.getIdentificacion() + "\n";
                        mensaje = mensaje + "Nombre: " + tmpAnalizando.getNombre() + "\n";
                        mensaje = mensaje + "Apellido: " + tmpAnalizando.getApellidos() + "\n";
                        mensaje = mensaje + "Email: " + tmpAnalizando.getEmail() + "\n";
                        mensaje = mensaje + "Celular: " + tmpAnalizando.getCelular() + "\n";
                        mensaje = mensaje + "Edad: " + tmpAnalizando.getEdad() + "\n";
                       
                        //Falta completar...

                       mensaje = mensaje + "\n\n\n";
                       
                      mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";
                   
                      mensajeVent.mostrarMensaje(mensaje);

                      pasajeroAModificar.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
                       
                      pasajeroAModificar.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                     
                      pasajeroAModificar.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                     
                      pasajeroAModificar.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                     
                      pasajeroAModificar.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                     
                      pasajeroAModificar.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                   
                      //Falta completar... Aquí código para pedir nuevos datos para el pasajero
             
                    }
                    else {
                   
                   
                    }    //else vacío. No hay acciones a ejecutar.

               
                } //Cierre del while

                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            }

        }

        opcionesUsuario.cerrarPrograma();

    } //Cierra main
} //Cierra clase
Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 20 de Marzo 2014, 08:30
Añadimos el método getStringPasajero a la clase Pasajero para evitar repetir código en el método main:

Código: [Seleccionar]
    public String getStringPasajero () {
        String mensaje = "Información actual de pasajero: \n";
        mensaje = mensaje + "Identificacion: " + this.getIdentificacion()+"\n";
        mensaje = mensaje + "Nombre: " + this.getNombre()+"\n";
        mensaje = mensaje + "Apellidos: " + this.getApellidos() + "\n";
        mensaje = mensaje + "Email: " + this.getEmail() + "\n";
        mensaje = mensaje + "Celular: " + this.getCelular() + "\n";
        mensaje = mensaje + "Edad: " + this.getEdad() + "\n";
        mensaje = mensaje + "\n\n\n";
        return mensaje;
    }

Y modificamos el algoritmo principal para que se muestre la información del pasajero una vez se ha modificado:

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;
import java.util.Iterator;

public class algoritmoTest {

    public static void main (String[] Args) throws IOException {

        int opcionEligeUsuario = 0;
        List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
        Dialogo opcionesUsuario = new Dialogo();
        Dialogo mensajeVent = new Dialogo();

        while (opcionEligeUsuario != 5 ) {

            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

            //Registrar la información de pasajero
            if (opcionEligeUsuario == 1) {

                Pasajero tmpPasajero = new Pasajero();
                tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
                tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                //Terminamos guardando el objeto pasajero
                listaDePasajeros.add(tmpPasajero);
            }
            //Fin opción 1 registro información de pasajero

            //Modificar la información de un pasajero
            if (opcionEligeUsuario == 2) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;
               
                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";

                        mensajeVent.mostrarMensaje(mensaje);

                        // Aquí código para pedir nuevos datos para el pasajero

                        mensajeVent.mostrarMensaje("La identificación no puede ser modificada, indique resto de datos");
                        tmpAnalizando.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                        tmpAnalizando.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                        tmpAnalizando.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                        tmpAnalizando.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                        tmpAnalizando.SetEdad(opcionesUsuario.obtenerEdadPasajero());

                        mensaje = tmpAnalizando.getStringPasajero();
                        mensajeVent.mostrarMensaje(mensaje);
                       
                    } else { }    //else vacío. No hay acciones a ejecutar.

                } //Cierre del while

                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            }

        }

        opcionesUsuario.cerrarPrograma();

    } //Cierra main

} //Cierra clase

Ahora tienes que permitir que se listen los pasajeros, esto puedes hacerlo con un recorrido basado en iterator, de la misma forma que se ha hecho para encontrar a un pasajero a modificar. En vez de buscar un pasajero a modificar, simplemente lista la información de los pasajeros.



Título: Re:Ayuda con este algoritmo.
Publicado por: Mac en 23 de Marzo 2014, 05:35
 :-\ Me siento perdido en hacer  que liste  los pasajeros.
--------------------------------------------------------------------------

Código: [Seleccionar]
if (opcionEligeUsuario == 3) {
     
               
                     
                      }
---------------------------------------------------

Título: Re:Ayuda con este algoritmo.
Publicado por: Ogramar en 25 de Marzo 2014, 10:15
Aquí va incluido el listado de pasajeros, la lógica es la misma que para buscar un pasajero y modificarla, es decir, usar un iterator:

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;
import java.util.Iterator;

public class algoritmoTest {

    public static void main (String[] Args) throws IOException {

        int opcionEligeUsuario = 0;
        List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
        Dialogo opcionesUsuario = new Dialogo();
        Dialogo mensajeVent = new Dialogo();

        while (opcionEligeUsuario != 5 ) {

            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

            //Registrar la información de pasajero opción 1
            if (opcionEligeUsuario == 1) {

                Pasajero tmpPasajero = new Pasajero();
                tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
                tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                //Terminamos guardando el objeto pasajero
                listaDePasajeros.add(tmpPasajero);
            }
            //Fin opción 1 registro información de pasajero

            //Modificar la información de un pasajero opción 2
            if (opcionEligeUsuario == 2) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;

                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";

                        mensajeVent.mostrarMensaje(mensaje);

                        // Aquí código para pedir nuevos datos para el pasajero

                        mensajeVent.mostrarMensaje("La identificación no puede ser modificada, indique resto de datos");
                        tmpAnalizando.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                        tmpAnalizando.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                        tmpAnalizando.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                        tmpAnalizando.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                        tmpAnalizando.SetEdad(opcionesUsuario.obtenerEdadPasajero());

                        mensaje = tmpAnalizando.getStringPasajero();
                        mensajeVent.mostrarMensaje(mensaje);

                    } else { }    //else vacío. No hay acciones a ejecutar.

                } //Cierre del while

                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            } //Fin opción 2 registro información de pasajero

            //Opción 3 listar pasajeros
            if (opcionEligeUsuario == 3) {

                String listado = "";

                Iterator<Pasajero> it2 = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it2.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator
                    tmpAnalizando = it2.next();                //Utilizamos el método next de los objetos tipo Iterator
                    listado = listado + tmpAnalizando.getStringPasajero();
                    listado = listado + "\n\n\n";
                } //Cierre del while

                mensajeVent.mostrarMensaje(listado);

            } //Fin opción 3 listar pasajeros
        }

        opcionesUsuario.cerrarPrograma();

    } //Cierra main

} //Cierra clase

Título: Re:Ayuda con este algoritmo java.
Publicado por: Mac en 26 de Marzo 2014, 04:49
Gracias Ogramar  :D :D

Para poder crear la opción de eliminar ahí que importa alguna librería ..? o ahí que crear

alguna función ? que método se utilizaría  ?  ... ???
Título: Re:Ayuda con este algoritmo java.
Publicado por: Ogramar en 30 de Marzo 2014, 11:48
Podría hacerse de dos maneras, una recorrer con un for los elementos del arrayList buscando aquel elemento que se quiere borrar y una vez detectado guardar el índice de ese elemento y hacer un break para salir del recorrido. A continuación aplicar el método remove sobre el arrayList para eliminar ese elemento. Por ejemplo listaDePasajeros.remove(7) eliminaría el pasajero con índice 7, o listaDePasajeros.remove(indiceABorrar) eliminaría el pasajero con el indiceABorrar.

También creo se puede hacer siguiendo lo mismo que se hace en la opción 3: buscas el pasajero deseado con un iterator y una vez encontrado aplicas listaDePasajeros.remove(tmpAnalizando) para borrar el objeto que es el pasajero de la lista.

Título: Re:Ayuda con este algoritmo java.
Publicado por: Mac en 04 de Abril 2014, 05:33
Hola Orgramar
No me resulta con los pasos que me has dicho no se si es que lo aplico incorrectamente ...
Título: Re:Ayuda con este algoritmo java.
Publicado por: Ogramar en 04 de Abril 2014, 10:53
Pégame el código que has probado para revisarlo...

Título: Re:Ayuda con este algoritmo java.
Publicado por: Mac en 20 de Abril 2014, 07:04
Hola

Ogramar


Un poco confundido  :-\
-----------------------------------------------------------------------------
Código: [Seleccionar]
if (opcionEligeUsuario == 4) {
           
           
             String listado = "";

                Iterator<Pasajero> it4;
                it4 = listaDePasajeros.remove(tmpAnalizando);

                Pasajero tmpAnalizando;

                while (it4.hasNext()) {        //Utilizamos el método hasNext de los objetos tipo Iterator
                    tmpAnalizando = it4.next();    //Utilizamos el método next de los objetos tipo Iterator

                   
                   if (tmpAnalizando==IdentificacionPasajero() )
                   {
                   it4.remove();
               } else {
                 }
                   
                   
                   
                    listado = listado + tmpAnalizando.getStringPasajero();
                    listado = listado + "\n\n\n";

                } //Cierre del while

                mensajeVent.mostrarMensaje(listado);
           
           
            }
Título: Re:Ayuda con este algoritmo java.
Publicado por: Ogramar en 20 de Abril 2014, 20:39
Código completo incluido eliminación de pasajero  ;)

Clase Pasajero:

Código: [Seleccionar]
public class Pasajero {
    private String identificacion;
    private String nombre;
    private String apellidos;
    private String email;
    private String celular;
    private int edad;

    /**
     * Constructor
     */
    public Pasajero()    {
        // Inicialización
        identificacion = "desconocido";
        nombre = "desconocido";
        apellidos = "desconocido";
        email = "desconocido";
        celular = "desconocido";
        edad = 0;
    }

    //Metodos Modificadores//
    public void SetIdentificacion(String identificacion) {this.identificacion = identificacion;   }
    public void SetNombre(String nombre) {this.nombre = nombre; }
    public void SetApellidos(String apellidos) {this.apellidos = apellidos; }
    public void SetEmail(String email) { this.email = email; }
    public void SetCelular(String celular) {this.celular = celular; }
    public void SetEdad(int edad) {this.edad = edad; }

    // Metodos Analizador//
    public String getIdentificacion() {return identificacion; }
    public String getNombre() {return nombre; }
    public String getApellidos() { return apellidos; }
    public String getEmail() {return email; }
    public String getCelular() { return celular;}
    public int getEdad() {return edad;}
    public String getStringPasajero () {
        String mensaje = "Información actual de pasajero: \n";
        mensaje = mensaje + "Identificacion: " + this.getIdentificacion()+"\n";
        mensaje = mensaje + "Nombre: " + this.getNombre()+"\n";
        mensaje = mensaje + "Apellidos: " + this.getApellidos() + "\n";
        mensaje = mensaje + "Email: " + this.getEmail() + "\n";
        mensaje = mensaje + "Celular: " + this.getCelular() + "\n";
        mensaje = mensaje + "Edad: " + this.getEdad() + "\n";
        mensaje = mensaje + "\n\n\n";
        return mensaje;
    }
}

Clase Dialogo:

Código: [Seleccionar]
import javax.swing.*;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import java.io.*;

public class Dialogo {

    String dialogo;

    public Dialogo() {     }

    public int obtenerOpcionMenu() throws IOException {
        dialogo = "MENU DE PROGRAMA PASAJEROS\n";
        dialogo += "1.  Insertar pasajero\n";
        dialogo += "2.  Modificar pasajero\n";
        dialogo += "3.  Listar los pasajeros\n";
        dialogo += "4.  Eliminar pasajero\n";
        dialogo += "5.  Salir\n";
        dialogo += "Escoja Opción:\n";
        return Integer.parseInt(JOptionPane.showInputDialog(dialogo));
    }

    public String obtenerIdentificacionPasajero() throws IOException {
        dialogo = "Introduzca Identificacion de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    //Completamos aquí la petición de datos
    public String obtenerNombrePasajero() throws IOException {
        dialogo = "Introduzca Nombre de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerApellidosPasajero() throws IOException {
        dialogo = "Introduzca Apellidos de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerEmailPasajero() throws IOException {
        dialogo = "Introduzca email de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public String obtenerCelularPasajero() throws IOException {
        dialogo = "Introduzca Celular de pasajero\n";
        return JOptionPane.showInputDialog(dialogo);
    }

    public int obtenerEdadPasajero() throws IOException {
        dialogo = "Introduzca Edad de pasajero\n";
        return Integer.parseInt(JOptionPane.showInputDialog(dialogo));
    }
   
    public void mostrarMensaje (String mensaje) {
        JFrame frame = new JFrame("Mensaje");
        JOptionPane.showMessageDialog(frame, mensaje);
    }
   
    public void cerrarPrograma () {
        JFrame frame = new JFrame("Final del programa");
        JOptionPane.showMessageDialog(frame, "Gracias por usar este programa. Fin");
        System.exit(0);
    }
}

Clase con el main:

Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.io.*;
import java.util.Iterator;

public class algoritmoTest {

    public static void main (String[] Args) throws IOException {

        int opcionEligeUsuario = 0;
        List <Pasajero> listaDePasajeros = new ArrayList<Pasajero> ();
        Dialogo opcionesUsuario = new Dialogo();
        Dialogo mensajeVent = new Dialogo();

        while (opcionEligeUsuario != 5 ) {

            opcionEligeUsuario = opcionesUsuario.obtenerOpcionMenu();

            //Registrar la información de pasajero opción 1
            if (opcionEligeUsuario == 1) {

                Pasajero tmpPasajero = new Pasajero();
                tmpPasajero.SetIdentificacion(opcionesUsuario.obtenerIdentificacionPasajero());
                tmpPasajero.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                tmpPasajero.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                tmpPasajero.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                tmpPasajero.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                tmpPasajero.SetEdad(opcionesUsuario.obtenerEdadPasajero());
                //Terminamos guardando el objeto pasajero
                listaDePasajeros.add(tmpPasajero);
            }
            //Fin opción 1 registro información de pasajero

            //Modificar la información de un pasajero opción 2
            if (opcionEligeUsuario == 2) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;

                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "A continuación introduzca nuevos datos para este pasajero";

                        mensajeVent.mostrarMensaje(mensaje);

                        // Aquí código para pedir nuevos datos para el pasajero

                        mensajeVent.mostrarMensaje("La identificación no puede ser modificada, indique resto de datos");
                        tmpAnalizando.SetNombre(opcionesUsuario.obtenerNombrePasajero());
                        tmpAnalizando.SetApellidos(opcionesUsuario.obtenerApellidosPasajero());
                        tmpAnalizando.SetEmail(opcionesUsuario.obtenerEmailPasajero());
                        tmpAnalizando.SetCelular(opcionesUsuario.obtenerCelularPasajero());
                        tmpAnalizando.SetEdad(opcionesUsuario.obtenerEdadPasajero());

                        mensaje = tmpAnalizando.getStringPasajero();
                        mensajeVent.mostrarMensaje(mensaje);

                    } else { }    //else vacío. No hay acciones a ejecutar.

                } //Cierre del while

                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            } //Fin opción 2 registro información de pasajero

            //Opción 3 listar pasajeros
            if (opcionEligeUsuario == 3) {

                String listado = "";

                Iterator<Pasajero> it2 = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it2.hasNext() ) {           //Utilizamos el método hasNext de los objetos tipo Iterator
                    tmpAnalizando = it2.next();                //Utilizamos el método next de los objetos tipo Iterator
                    listado = listado + tmpAnalizando.getStringPasajero();
                    listado = listado + "\n\n\n";
                } //Cierre del while

                mensajeVent.mostrarMensaje(listado);

            } //Fin opción 3 listar pasajeros

            //Eliminar un pasajero opción 4
            if (opcionEligeUsuario == 4) {
                String identPasajeroBuscado = opcionesUsuario.obtenerIdentificacionPasajero();
                boolean pasajeroEncontrado = false;

                Iterator<Pasajero> it = listaDePasajeros.iterator();
                Pasajero tmpAnalizando;

                while ( it.hasNext() && pasajeroEncontrado==false ) {           //Utilizamos el método hasNext de los objetos tipo Iterator

                    tmpAnalizando = it.next();                //Utilizamos el método next de los objetos tipo Iterator

                    if (tmpAnalizando.getIdentificacion().equals(identPasajeroBuscado) ) {
                        pasajeroEncontrado = true;
                        String mensaje = tmpAnalizando.getStringPasajero();
                        mensaje = mensaje + "\n\n\n";
                        mensaje = mensaje + "Se procede al borrado de datos de este pasajero\n\n";

                        mensajeVent.mostrarMensaje(mensaje);

                        // Aquí código para pedir nuevos datos para el pasajero
                        listaDePasajeros.remove(tmpAnalizando);
                        pasajeroEncontrado=true;

                    } else { }    //else vacío. No hay acciones a ejecutar.

                } //Cierre del while

                if (pasajeroEncontrado == false) {
                    mensajeVent.mostrarMensaje("No se encontró el pasajero con esa identificación");
                }
            } //Fin opción 2 registro información de pasajero

        }

        opcionesUsuario.cerrarPrograma();

    } //Cierra main

} //Cierra clase