Autor Tema: Ayuda con algoritmo java registrar, modificar, listar y eliminar  (Leído 77901 veces)

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
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. ;)
 
« Última modificación: 14 de Septiembre 2014, 18:15 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #1 en: 11 de Marzo 2014, 20:03 »
¿En qué lenguaje tienes que hacerlo?

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #2 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.

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #3 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.


Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #4 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;
    }

}



Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #5 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

}

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #6 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));
    }
}

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #7 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

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #8 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

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #9 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

Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #10 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

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #11 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.




Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #12 en: 23 de Marzo 2014, 05:35 »
 :-\ Me siento perdido en hacer  que liste  los pasajeros.
--------------------------------------------------------------------------

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


Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo.
« Respuesta #13 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


Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #14 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  ?  ... ???

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #15 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.


Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #16 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 ...

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #17 en: 04 de Abril 2014, 10:53 »
Pégame el código que has probado para revisarlo...


Mac

  • Intermedio
  • ***
  • Mensajes: 174
  • Java-Php
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #18 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);
           
           
            }

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2659
    • Ver Perfil
Re:Ayuda con este algoritmo java.
« Respuesta #19 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


 

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