Ejercicios resueltos

Ejercicios resueltos utilizando Vector y Stack

(Ver Vector y Stack)

1) Dada una lista de Personas cuyos atributos son: dni, apellidos, nombres, sexo, edad y peso. Hacer un programa que utilice Vector para registrar las personas, dado un dni reportar los datos de la persona, dado un dni eliminar la persona de la lista, ordenar a las personas por apellidos, y reportar todas las personas ingresadas.

    import java.util.Objects;

    public class Persona {
             public String dni;
             public String apellidos;
             public String nombres;
             public String sexo;
             public int edad;
             public double peso;

             public Persona(){

             }
             public Persona(String dni){
                         this.dni = dni;
             }
             public Persona(String dni, String apellidos, String nombres,
                                                String sexo, int edad, double peso){
                         this.dni = dni;
                         this.apellidos = apellidos;
                         this.nombres = nombres;
                         this.sexo = sexo;
                         this.edad = edad;
                         this.peso = peso;
             }
             public String getDni() {
                         return dni;
             }
             public void setDni(String dni) {
                         this.dni = dni;
             }
             public String getApellidos() {
                         return apellidos;
             }
             public void setApellidos(String apellidos) {
                         this.apellidos = apellidos;
             }
             public String getNombres() {
                         return nombres;
             }
             public void setNombres(String nombres) {
                         this.nombres = nombres;
             }
             public String getSexo() {
                         return sexo;
             }
             public void setSexo(String sexo) {
                         this.sexo = sexo;
             }
             public int getEdad() {
                         return edad;
             }
             public void setEdad(int edad) {
                         this.edad = edad;
             }
             public double getPeso() {
                         return peso;
             }
             public void setPeso(double peso) {
                         this.peso = peso;
             }
             @Override
             public String toString() {
                         return «Persona: » + «dni = » + dni + «, apellidos = » + apellidos + «, «
                                                                  + «nombres = » + nombres + «, sexo = » + sexo + «, edad = » + edad + «, peso = » +                                                                            peso;
             }
             @Override
             public int hashCode() {
                         int hash = 7;
                         hash = 11 * hash + Objects.hashCode(this.dni);
                         return hash;
             }
             @Override
             public boolean equals(Object obj) {
                         if (this == obj) {
                                 return true;
                         }
                         if (obj == null) {
                                 return false;
                         }
                         if (getClass() != obj.getClass()) {
                                 return false;
                         }
                         final Persona other = (Persona) obj;
                         if (!Objects.equals(this.dni, other.dni)) {
                                  return false;
                         }
                         return true;
             }
    }

    import java.util.*;

    public class AplicacionVectorPersona {

             private Vector<Persona> listaPersonas;

             public static void main(String[] args) {
                        AplicacionVectorPersona aplicacionVectorPersona = new AplicacionVectorPersona();
                        aplicacionVectorPersona.listaPersonas = new Vector();
                        aplicacionVectorPersona.leerOpcion();
             }
             public void leerOpcion(){
                        Scanner entrada = new Scanner(System.in);
                        int opcion;
                        do{
                                  System.out.println(«\nVector de Personas»);
                                  System.out.println(«[1] Registrar persona»);
                                  System.out.println(«[2] Buscar persona por dni»);
                                  System.out.println(«[3] Eliminar persona»);
                                  System.out.println(«[4] Ordenar personas por apellidos»);
                                  System.out.println(«[5] Mostrar personas»);
                                  System.out.println(«[6] Salir»);
                                  System.out.print(«Ingresar opcion(1-6): «);
                                  opcion = entrada.nextInt();
                                  switch(opcion)
                                  {
                                        case 1:
                                                        registrarPersona();
                                                        break;
                                        case 2:
                                                        buscarPersonaDNI();
                                                        break;
                                        case 3:
                                                        eliminarPersona();
                                                        break;
                                        case 4:
                                                        ordenarPersonaApellidos();
                                                        break;
                                        case 5:
                                                        mostrarPersonas();
                                                        break;
                                  }
                        }while(opcion!=6);
             }
             public void registrarPersona(){
                        String dni, apellidos, nombres, sexo, respuesta;
                        int edad;
                        double peso;
                        Scanner entrada = new Scanner(System.in);
                        int i=0;
                        do{
                                    System.out.println(«\nPersona» + i);
                                    System.out.print(«Ingresar dni: «);
                                    dni = entrada.next();
                                    System.out.print(«Ingresar apellidos: «);
                                    apellidos = entrada.next();
                                    entrada.nextLine();
                                    System.out.print(«Ingresar nombres: «);
                                    nombres = entrada.next();
                                    entrada.nextLine();
                                    System.out.print(«Ingresar sexo: «);
                                    sexo = entrada.next();
                                    entrada.nextLine();
                                    System.out.print(«Ingresar edad: «);
                                    edad = entrada.nextInt();
                                    System.out.print(«Ingresar peso(Kg): «);
                                    peso = entrada.nextDouble();
                                    Persona persona = new Persona(dni,apellidos,nombres,sexo,edad,peso);
                                    listaPersonas.addElement(persona);
                                    System.out.print(«Desea ingresar nueva persona(S/N): «);
                                    respuesta = entrada.next();
                                    i++;
                        }while(respuesta.equals(«S»));
             }
             public void buscarPersonaDNI(){
                        String dni;
                        int indice;
                        Scanner entrada = new Scanner(System.in);
                        System.out.print(«Ingresar dni a buscar: «);
                        dni = entrada.next();
                        Persona persona = new Persona(dni);
                        indice = listaPersonas.indexOf(persona);
                        if(indice!=-1){
                                 persona = listaPersonas.get(indice);
                                 System.out.println(persona);
                        }
                        else
                                 System.out.println(«La persona no se encuentra»);
             }
             public void eliminarPersona(){
                        String dni;
                        int indice;
                        Scanner entrada = new Scanner(System.in);
                        System.out.print(«Ingresar dni para eliminar: «);
                        dni = entrada.next();
                        Persona persona = new Persona(dni);
                        indice = listaPersonas.indexOf(persona);
                        if(indice!=-1){
                                 persona = listaPersonas.remove(indice);
                                 System.out.println(«Persona eliminada: » + persona);
                        }
                        else
                                 System.out.println(«La persona no se encuentra»);
             }
             public void ordenarPersonaApellidos(){
                        Collections.sort(listaPersonas, (Persona persona1, Persona persona2)
                        -> persona1.getApellidos().compareTo(persona2.getApellidos()));
                        mostrarPersonas();
             }
             public void mostrarPersonas(){
                        if(!listaPersonas.isEmpty()){
                                 System.out.println(«Vector de Personas: «);
                                 for(Persona persona : listaPersonas)
                                        System.out.println(persona);
                        }
                        else
                                        System.out.println(«No existen personas en el vector»);
             }
    }

2) Dada una lista de Trabajadores cuyos atributos son: nombre, edad, sexo, estado civil y salario base. Hacer un programa que utilice Vector para registrar los trabajadores, reportar la cantidad de trabajadores del sexo masculino y reportar la cantidad de trabajadoras casadas. Además reportar la suma de todos los salarios y reportar todos los trabajadores ingresados.

    import java.util.Objects;

    public class Trabajador {
             private String nombre;
             private int edad;
             private String sexo;
             private String estadoCivil;
             private double sueldo;

             public Trabajador(){

             }
             public Trabajador(String nombre){
                         this.nombre = nombre;
             }
             public Trabajador(String nombre, int edad, String sexo,
                                                      String estadoCivil, double sueldo){
                         this.nombre = nombre;
                         this.edad = edad;
                         this.sexo = sexo;
                         this.estadoCivil = estadoCivil;
                         this.sueldo = sueldo;
             }
             public String getNombre() {
                         return nombre;
             }
             public void setNombre(String nombre) {
                         this.nombre = nombre;
             }
             public int getEdad() {
                         return edad;
             }
             public void setEdad(int edad) {
                         this.edad = edad;
             }
             public String getSexo() {
                         return sexo;
             }
             public void setSexo(String sexo) {
                         this.sexo = sexo;
             }
             public String getEstadoCivil() {
                         return estadoCivil;
             }
             public void setEstadoCivil(String estadoCivil) {
                         this.estadoCivil = estadoCivil;
             }
             public double getSueldo() {
                         return sueldo;
             }
             public void setSueldo(double sueldo) {
                         this.sueldo = sueldo;
             }
             @Override
             public String toString() {
                         return «Trabajador: » + «nombre = » + nombre + «, edad = » + edad + «, sexo = » + sexo + «, «
                                                                         + «estado civil = » + estadoCivil + «, sueldo = » + sueldo;
             }
             @Override
             public int hashCode() {
                         int hash = 3;
                         hash = 47 * hash + Objects.hashCode(this.nombre);
                         return hash;
             }
             @Override
             public boolean equals(Object obj) {
                         if (this == obj) {
                                 return true;
                         }
                         if (obj == null) {
                                 return false;
                         }
                         if (getClass() != obj.getClass()) {
                                 return false;
                         }
                         final Trabajador other = (Trabajador) obj;
                         if (!Objects.equals(this.nombre, other.nombre)) {
                                 return false;
                         }
                         return true;
             }
    }

    import java.util.*;

    public class AplicacionVectorTrabajador {

             private Vector<Trabajador> listaTrabajadores;

             public static void main(String[] args) {
                        AplicacionVectorTrabajador aplicacionVectorTrabajador = new AplicacionVectorTrabajador();
                        aplicacionVectorTrabajador.listaTrabajadores = new Vector();
                        aplicacionVectorTrabajador.leerOpcion();
             }
             public void leerOpcion(){
                        Scanner entrada = new Scanner(System.in);
                        int opcion;
                        do{
                                  System.out.println(«\nVector de Trabajadores»);
                                  System.out.println(«[1] Registrar trabajador»);
                                  System.out.println(«[2] Calcular cantidad de trabajadores masculinos»);
                                  System.out.println(«[3] Calcular cantidad de trabajadoras casadas»);
                                  System.out.println(«[4] Calcular suma de sueldos»);
                                  System.out.println(«[5] Mostrar trabajadores»);
                                  System.out.println(«[6] Salir\n»);
                                  System.out.print(«Ingresar opcion(1-6): «);
                                  opcion = entrada.nextInt();
                                  switch(opcion)
                                  {
                                        case 1:
                                                        registrarTrabajador();
                                                        break;
                                        case 2:
                                                        calcularCantidadMasculino();
                                                        break;
                                        case 3:
                                                        calcularCantidadCasada();
                                                        break;
                                        case 4:
                                                        calcularSumaSueldo();
                                                        break;
                                        case 5:
                                                        mostrarTrabajadores();
                                                        break;
                                  }
                        }while(opcion!=6);
             }
             public void registrarTrabajador(){
                        String nombre, sexo, estadoCivil, respuesta;
                        int edad;
                        double sueldo;
                        Scanner entrada = new Scanner(System.in);
                        int i=0;
                        do{
                                   System.out.println(«\nTrabajador» + i);
                                   System.out.print(«Ingresar nombre: «);
                                   nombre = entrada.next();
                                   entrada.nextLine();
                                   System.out.print(«Ingresar edad: «);
                                   edad = entrada.nextInt();
                                   System.out.print(«Ingresar sexo: «);
                                   sexo = entrada.next();
                                   System.out.print(«Ingresar estado civil: «);
                                   estadoCivil = entrada.next();
                                   System.out.print(«Ingresar sueldo: «);
                                   sueldo = entrada.nextDouble();
                                   Trabajador trabajador = new Trabajador(nombre,edad,sexo,estadoCivil,sueldo);
                                   listaTrabajadores.addElement(trabajador);
                                   System.out.print(«Desea ingresar nuevo trabajador(S/N): «);
                                   respuesta = entrada.next();
                                   i++;
                        }while(respuesta.equals(«S»));
             }
             public void calcularCantidadMasculino(){
                        int contador=0;
                        Trabajador trabajador;
                        for(int i=0;i<listaTrabajadores.size();i++){
                               trabajador = listaTrabajadores.get(i);
                               if(trabajador.getSexo().equals(«Masculino») || trabajador.getSexo().equals(«masculino»)){
                                          contador++;
                                          System.out.println(contador);
                               }else
                                          System.out.println(«No hay trabajadores del sexo masculino»);
                        }
             }
             public void calcularCantidadCasada(){
                        int contador=0;
                        Trabajador trabajador;
                        for(int i=0;i<listaTrabajadores.size();i++){
                               trabajador = listaTrabajadores.get(i);
                               if(trabajador.getEstadoCivil().equals(«Casada») || trabajador.getSexo().equals(«casada»)){
                                          contador++;
                                          System.out.println(contador);
                               }
                               else
                                          System.out.println(«No hay trabajadoras casadas»);
                        }
             }
             public void calcularSumaSueldo(){
                        double suma=0;
                        Trabajador trabajador;
                        for(int i=0;i<listaTrabajadores.size();i++){
                               trabajador = listaTrabajadores.get(i);
                               suma = suma + trabajador.getSueldo();
                        }
                        System.out.println(«La suma total de los sueldos es: » +suma);
             }
             public void mostrarTrabajadores(){
                        if(!listaTrabajadores.isEmpty()){
                                 System.out.println(«Vector de trbajadores: «);
                                 for(Trabajador trabajador : listaTrabajadores)
                                              System.out.println(trabajador);
                        }
                        else
                                              System.out.println(«No hay trabajadores en la lista»);
             }
    }

3) Hacer un programa para ingresar un número entero y reportar si es un número capicúa. El programa deberá utilizar Pilas (Stack).

    import java.util.*;

    public class AplicacionPilaCapicua {
             public static void main(String[] args) {
                        Scanner entrada = new Scanner(System.in);
                        Stack<Integer> pila = new Stack();
                        int numero, x;
                        boolean capicua = true;
                        System.out.print(«Ingresar numero: «);
                        numero = entrada.nextInt();
                        x = numero;
                        while(x>0){
                                  pila.push(x%10);
                                  x = x/10;
                        }
                        x = numero;
                        while(x>0){
                                  if(x%10 != pila.pop())
                                              capicua = false;
                                  x = x/10;
                        }
                        if(capicua)
                                      System.out.println(«Es un numero capicua»); 
                        else
                                      System.out.println(«No es un numero capicua»);
             }  
    }