Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

NetBeans: Buscar posible parentesco de dos personas por los apellidos con Java y NetBeans
Java


Tutorial donde mostramos paso a paso cómo desarrollar una aplicación Java usando el IDE NetBeans que, leyendo los nombres completos de dos personas (nombre, apellido primero y apellido segundo), devuelve el posible grado de parentesco (comparando los apellidos). Esta aplicación sirve como ejemplo para crear clases en Java con sus correspondientes métodos constructores y accesores (setters y getters). También sirve como ejemplo Java para referenciar e instanciar clases.



Crear nueva aplicación o proyecto Java en el IDE NetBeans

En primer lugar necesitaremos disponer del IDE de desarrollo NetBeans, a continuación mostramos un tutorial donde explicamos paso a paso cómo descargarlo e instalarlo:

Una vez instalado, para crear una nueva aplicación Java abriremos NetBeans y pulsaremos en el menú "Archivo" - "Proyecto Nuevo":

Crear nueva aplicación o proyecto Java en el IDE NetBeans

Seleccionaremos en Categorías la categoría "Java" y en Proyectos el proyecto "Java Application":

Crear nueva aplicación o proyecto Java en el IDE NetBeans

Introduciremos el nombre del proyecto (por ejemplo AjpdSoftBuscarParentesco) y la carpeta donde se guardará:

Crear nueva aplicación o proyecto Java en el IDE NetBeans

De esta forma NetBeans creará los ficheros iniciales necesarios para nuestro proyecto:

Crear nueva aplicación o proyecto Java en el IDE NetBeans

 

Crear clase Persona en Java con NetBeans

En primer lugar, tras crear el proyecto Java, crearemos una clase para gestionar las personas. Para ello, desde el IDE de NetBeans, sobre el paquete creado pulsaremos con el botón derecho y en el menú emergente seleccionaremos "Nuevo" - "Java Class":

Crear clase Persona en Java con NetBeans

Especificaremos el nombre para la clase, por ejemplo "Persona" y pulsaremos "Terminar":

Crear clase Persona en Java con NetBeans

Añadiremos el siguiente código Java para la clase Persona:

Crear clase Persona en Java con NetBeans

El código de la clase Persona.java:

/*
 * Persona
 */
package ajpdsoftbuscarparentesco;

/**
 *
 * @author www.ajpdsoft.com
 */
public class Persona 
{
    private String nombre;
    private String apellido1;
    private String apellido2;
    private String nombreCompleto;
    
    // Constructor vacío
    public Persona()
    {
    }
        
    // Constructor, si se le pasa el nombre completo
    public Persona (String nombreCompleto)
    {
        this.nombreCompleto = nombreCompleto;
    }
   
    // Constructor si se pasa el nombre separado, solo setters
    public Persona(String nombre, String apellido1, String apellido2)
    {
        this.nombre = nombre;
        this.apellido1 = apellido1;
        this.apellido2 = apellido2;
    }
    
    // Setters
    
    public void setNombre(String nombre)
    {
        this.nombre = nombre;
    }
        
    public void setApellido1(String Apellido1)
    {
        this.apellido1 = Apellido1;
    }

    public void setApellido2(String Apellido2)
    {
        this.apellido2 = Apellido2;
    }
    
    public void setNombreCompleto(String nombreCompleto)
    {
        this.nombreCompleto = nombreCompleto;
    }
    
    //getters

    public String getNombre()
    {
        return nombre;
    }

    public String getApellido1()
    {
        return apellido1;
    }

    public String getApellido2()
    {
        return apellido2;
    }

    public String getNombreCompleto()
    {
        return nombreCompleto;
    }
    
    
    // Separar nombre y apellidos
    public void separarNombre ()
    {
        int posPrimerEspacio;
        int postUltimoEspacio;
        //obtenemos el primer apellido (entre el primer y último espacio)
        posPrimerEspacio = nombreCompleto.indexOf(" ");
        postUltimoEspacio = nombreCompleto.lastIndexOf(" ");
        if (posPrimerEspacio > 0 & postUltimoEspacio > 0)
        {
            // Obtenemos el segundo apellido (entre el ultimo espacio 
            // y el tamaño del nombre)
            this.apellido1 = nombreCompleto.substring(posPrimerEspacio, 
                postUltimoEspacio).trim();
            // Obtenemos el segundo apellido (entre el ultimo espacio 
            //y el tamaño del nombre completo)
            this.apellido2 = nombreCompleto.substring(postUltimoEspacio, 
                nombreCompleto.length()).trim();
            // Obtenemos el nombre, entre el principio de la 
            // cadena y el primer espacio
            this.nombre = nombreCompleto.substring(0, posPrimerEspacio).trim();
        }
        else
        {
            this.nombre = "";
            this.apellido1 = "";
            this.apellido2 = "";
        }
    }    
}

En dicha clase definimos los atributos para una persona, que son:

  • private String nombre;
  • private String apellido1;
  • private String apellido2;
  • private String nombreCompleto;

Establecemos los métodos accesores setters y getters para establecer el nombre completo de la persona y devolver el nombre, apellido primero y apellido segundo.

En esta clase también definimos un método que nos permitirá separar de un nombre completo especificado el nombre, el apellido primero y el apellido segundo:

  • public void separarNombre ()

 

Crear clase BuscarParentesco en Java con NetBeans

Tras crear la clase Persona, ahora crearemos la clase BuscarParentesto. En esta clase definiremos el método que calculará el posible parentesco de una Persona. Para ello, desde el IDE de NetBeans, sobre el paquete creado pulsaremos con el botón derecho y en el menú emergente seleccionaremos "Nuevo" - "Java Class":

Crear clase BuscarParentesco en Java con NetBeans

Especificaremos el nombre para la clase, por ejemplo BuscarParentesco y pulsaremos "Terminar":

Crear clase BuscarParentesco en Java con NetBeans

Añadiremos el siguiente código Java para la clase BuscarParentesco:

Crear clase BuscarParentesco en Java con NetBeans

El código de la clase BuscarParentesco.java:

/*
 * BuscarParentesco
 */

package ajpdsoftbuscarparentesco;

/**
 *
 * @author www.ajpdsoft.com
 */
public class BuscarParentesco 
{
    private String nombreCompleto1;
    private String nombreCompleto2;
    
    //Constructor vacío
    public BuscarParentesco ()
    {        
    }
    
    public BuscarParentesco (String nombre1, String nombre2)
    {
        this.nombreCompleto1 = nombre1;
        this.nombreCompleto2 = nombre2;
    }
    
    //Setters
    
    public void setNombreCompleto1 (String nombreCompleto)
    {
        this.nombreCompleto1 = nombreCompleto;
    }

    public void setNombreCompleto2 (String nombreCompleto)
    {
        this.nombreCompleto2 = nombreCompleto;
    }
    
    //Getters
    public String getNombreCompleto1()
    {
        return nombreCompleto1;
    }

    public String getNombreCompleto2()
    {
        return nombreCompleto2;
    }
    
    public String getGradoParentesco ()
    {
        Persona persona1 = new Persona(nombreCompleto1);    
        Persona persona2 = new Persona(nombreCompleto2);    
        
        persona1.separarNombre();
        persona2.separarNombre();
        
        // Comprobamos grado de parentesco        
        // Si los dos apellidos son iguales y el nombre es diferente podrían 
        // ser hermanos o primos
        if (!persona1.getNombre().equalsIgnoreCase(persona2.getNombre()) &
                persona1.getApellido1().equalsIgnoreCase(persona2.getApellido1()) &
                persona1.getApellido2().equalsIgnoreCase(persona2.getApellido2()))
        {
            return "Hermanos o primos hermanos";
        }
        else
        {       
            //Si los nombres son iguales incluidos los apellidos podrían ser primos
            if (persona1.getNombre().equalsIgnoreCase(persona2.getNombre()) &
                persona1.getApellido1().equalsIgnoreCase(persona2.getApellido1()) &
                persona1.getApellido2().equalsIgnoreCase(persona2.getApellido2()))
            {
                return "Primos";
            }
            else
            {
                //si el primer apellido es igual podrían ser primos hermanos
                if (persona1.getApellido1().equalsIgnoreCase(persona2.getApellido1()))
                {
                    return "Primos hermanos";
                }                
                else
                {
                    // Si el primer apellido es igual al segundo del otro
                    // podrían ser primos segundos
                    if (persona1.getApellido1().equalsIgnoreCase(persona2.getApellido2()) 
                            || persona1.getApellido2().equalsIgnoreCase(persona2.getApellido1())
                            || persona1.getApellido2().equalsIgnoreCase(persona2.getApellido2()))
                    {
                         return "Primos segundos";
                    }                                    
                }
            }
        }
        
        return "Desconocidos";
    }    
}

En esta clase, en el método constructor pasamos como parámetro los valores de los atributos del nombre completo de dos personas:

  • public BuscarParentesco (String nombre1, String nombre2)

Establecemos los métodos accesores (setters y getters) correspondientes para modificar o bien obtener el valor de los dos nombres completos.

Y por último definimos un método para buscar el parentesco de dos personas, donde referenciamos e instanciamos la clase Persona y la usamos para separar el nombre completo en nombre, apellido primero y apellido segundo:

  • public String getGradoParentesco ()

 

 

Instanciar y referenciar las clases y probar la aplicación Java para el cálculo de parentesco

Para probar las clases persona y BuscarParentesco, desde la clase main principal de la aplicación, añadiremos el siguiente código al fichero AjpdSoftBuscarParentesco.java:

Instanciar y referenciar las clases y probar la aplicación Java para el cálculo de parentesco

El código fuente completo del fichero AjpdSoftBuscarParentesco.java:

/*
 * AjpdSoftBuscarParentescoJava
 * Calcula el posible parentesco entre dos personas
 * Versión 1.0
  * www.ajpdsoft.com
 */

package ajpdsoftbuscarparentesco;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 *
 * @author www.ajpdsoft.com
 */

public class AjpdSoftBuscarParentesco 
{
    /**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) 
    {    
        String nombreCompleto1;
        String nombreCompleto2;
        
        try
        {
            BufferedReader entradaTeclado = new BufferedReader(
                new InputStreamReader(System.in)); 
            System.out.print("Nombre de la 1ª persona (nombre y apellidos): ");
            nombreCompleto1 = entradaTeclado.readLine();        
            System.out.print("Nombre de la 2ª persona (nombre y apellidos): ");
            nombreCompleto2 = entradaTeclado.readLine();
            
            //comprobamos que se hayan introducido los dos nombres
            if (nombreCompleto1.trim().equalsIgnoreCase("") || 
                    nombreCompleto2.trim().equalsIgnoreCase(""))
                System.out.println("Falta algún nombre por introducir");
            else
            {
                //comprobamos que haya al menos un espacio en el nombre
                if (nombreCompleto1.trim().indexOf(" ") <= 0
                     || nombreCompleto2.trim().indexOf(" ") <= 0)
                {                           
                    System.out.println("No ha introducido el nombre completo");
                }
                else
                {
                    //instanciamos la clase para obtener el posible parestesco
                    BuscarParentesco buscarParentesco = 
                        new BuscarParentesco(nombreCompleto1, nombreCompleto2);
                    System.out.println("Posible parentesco: " + 
                        buscarParentesco.getGradoParentesco());
                }
            }                
        }
        catch (IOException e)
        {
            System.out.println("Error al introducir datos: " + e.getMessage());            
        }                
    }        
}    

En el código anterior, básicamente, solicitamos al usuario la introducción de dos nombres completos, hacemos algunas comprobaciones (que lleven algún espacio y que tenga valor) y por último instanciamos la clase BuscarParentesco para usarla y mostrar el posible parentesco de dos personas según su nombre, apellido primero y apellido segundo.

Para probar la aplicación la compilaremos pulsando el el botón de "Ejecutar Project" o pulsando F6, la aplicación nos solicitará la introducción de dos nombres completos y devolverá su posible parentesco por pantalla:

Instanciar y referenciar las clases y probar la aplicación Java para el cálculo de parentesco

 

Código fuente gratuito de aplicación de ejemplo AjpdSoft Buscar Parentesco en Java

A continuación indicamos la descarga gratuita del código fuente completo en Java de la aplicación AjpdSoft Buscar Parentesco con Java, aplicación de ejemplo de este tutorial:

 

Artículos relacionados

Créditos

Artículo realizado íntegramente por Alonsojpd miembro fundador del Proyecto AjpdSoft.

Artículo en inglés.


Anuncios


Enviado el Miércoles, 28 enero a las 22:22:09 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A