Autor Tema: Java pila (stack) dividida en sectores operaciones apilado escribir archivo  (Leído 2492 veces)

observador

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
El código que se muestra en los siguientes mensajes es un ejemplo de programación y gestión de una pila de datos:

Código: [Seleccionar]
package Fuentes;

public class claseEjemplo {
    private String codigo;
    private String nombre;
    private double datosDouble[];
   
    public claseEjemplo(int cantDatos){
    datosDouble = new double[cantDatos];
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

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

    public double[] getDatosDouble() {
    return datosDouble;
    }
   
    public void setDatosDouble(double[] datosDouble) {
    this.datosDouble = datosDouble;
    }
   
    public double calcularPromedio(String cod){
    double suma=0.0;
    for(int i=0; i<datosDouble.length; i++){
    suma +=datosDouble[i];
    }
    return suma/(datosDouble.length);
    }
   
}
« Última modificación: 11 de Junio 2020, 17:25 por Ogramar »

observador

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:java pilas
« Respuesta #1 en: 27 de Julio 2019, 14:01 »
Continuación:

Código: [Seleccionar]
public class arregloPila {
    int tope = -1;
    claseEjemplo claEjem[];
   
    public arregloPila(int n){
        claEjem = new claseEjemplo[n];
    }
   
    public boolean pilaLlena(){
        if(tope==claEjem.length-1) return true;
        else return false;
    }
    public void apilar(claseEjemplo cE){
        if(tope<claEjem.length){
            tope++;
            claEjem[tope]= cE;
            System.out.println("el dato con codigo "+cE.getCodigo()+" ha sido apilado");
        }
        else   
            System.out.println("Pila llena, el dato "+cE.getCodigo()+" no se pudo apilar");
    }
    public void mostrarPila(){     
        System.out.println("mostrando datos ingresados:");
        for(int i=tope; i>=0; i--){
            System.out.println("posicion["+i+"] : ");
            System.out.println("\tcodigo:"+claEjem[i].getCodigo());
            System.out.println("\tnombre:"+claEjem[i].getNombre());
            System.out.print("\tdatos:\t");
            double aux[] = claEjem[i].getDatosDouble();
            for(int c=0; c<aux.length;c++){
                System.out.print("   "+aux[c]);
            }
            System.out.println("");
        }
    }
    public void mostrarDetallesPorCodigo(String cod){
        boolean rpta = false;
        for(int i=0; i<tope; i++){
            if(cod.equalsIgnoreCase(claEjem[i].getCodigo())){
                System.out.println("\tcodigo:"+claEjem[i].getCodigo());
                System.out.println("\tnombre:"+claEjem[i].getNombre());
                System.out.println("\tdatos:\t");
                for(int c=0; c<claEjem[i].getDatosDouble().length;c++)
                    System.out.println("   "+claEjem[i].getDatosDouble()[c]);
                System.out.println("\tPROMEDIO: "+claEjem[i].calcularPromedio(cod));
                rpta = true;
            }
        }
        if(!rpta) System.out.println("Codigo no encontrado");
    }
    public void eliminarElementoPila(){
        if(tope>=0){
            tope--;
            System.out.println("el dato con codigo "+claEjem[tope+1].getCodigo()+" ha sido eliminado");
        }
        else System.out.println("la pila ya se ecnotraba vacia");
    }
}
« Última modificación: 11 de Junio 2020, 17:18 por Ogramar »

observador

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:java pilas
« Respuesta #2 en: 27 de Julio 2019, 14:02 »
Continuación:

Código: [Seleccionar]
import java.util.Scanner;

public class PrincipalRP {

    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
       
        String codigo;
        String nombre;
        double datos[];
            int cantDatos; //para luego definir: datos= new int[cantDatos];
        claseEjemplo claEjmp;
       
        arregloPila arrPila;
        int maxPila;
        System.out.println("ingrese cantidad maxima de sectores para la pila");
        maxPila = leer.nextInt();leer.nextLine();
        arrPila = new arregloPila(maxPila);
       
        String codigoBuscar;
           
        for(int i=0; i<maxPila; i++){
            System.out.println("ingrese datos de la pila de la posicion "+i+" :");
            System.out.println("codigo :");
            codigo = leer.nextLine();
            System.out.println("nombre :");
            nombre = leer.nextLine();
            System.out.println("¿cuantos datos tiene este elemnto?:");
            cantDatos = leer.nextInt(); leer.nextLine();
            datos = new double[cantDatos];
            for(int c=0; c<cantDatos; c++){
                System.out.println("ingrese dato ["+(c+1)+"] : ");
                datos[c]= leer.nextDouble();leer.nextLine();
            }
            claEjmp = new claseEjemplo(cantDatos);
            claEjmp.setCodigo(codigo);
            claEjmp.setNombre(nombre);
            claEjmp.setDatosDouble(datos);
            arrPila.apilar(claEjmp);
        }
        arrPila.mostrarPila();
        System.out.println("");
        System.out.println("ingrese codigo a buscar: ");
        codigoBuscar = leer.nextLine();
        arrPila.mostrarDetallesPorCodigo(codigoBuscar);
        arrPila.eliminarElementoPila();
        arrPila.mostrarPila();
    }
   
}
« Última modificación: 11 de Junio 2020, 17:18 por Ogramar »

observador

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re:java pilas
« Respuesta #3 en: 27 de Julio 2019, 14:03 »
Continuación:

Código: [Seleccionar]
package fuentes;

import java.util.Scanner;
import java.io.FileWriter;
import java.io.File;

public class Empleado {

    public static void main(String[] args) {
        Scanner leer = new Scanner(System.in);
        FileWriter fichero = null;
        int nroEmpleados =0;
        String codigo, nombre, apPaterno, apMaterno, sexo, datosCompletos, cod;
       
        System.out.println("ingrese la cantidad de empleados:");
        nroEmpleados = leer.nextInt(); leer.nextLine();
       
        try{
             fichero = new FileWriter("D:\\ALMACEN\\ACADEMICO\\EStructuras\\PryArchivosPropuesto\\empleados.txt");
             for(int i=0; i<nroEmpleados; i++){
                 System.out.println("codigo:");
                 codigo = leer.nextLine();
                 System.out.println("nombre:");
                 nombre = leer.nextLine();
                 System.out.println("apellido paterno:");
                 apPaterno = leer.nextLine();
                 System.out.println("apellido materno");
                 apMaterno = leer.nextLine();
                 System.out.println("sexo:");
                 sexo = leer.nextLine();
                 datosCompletos = codigo+" "+nombre+" "+apPaterno+" "+apMaterno+" "+sexo+"\r\n";
                 fichero.write(datosCompletos);
             }
             fichero.close();
             
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
       
        cantidadEmpleados();
        listaEmpleadosFemenino();
        System.out.println("ingrese el codigo a buscar: ");
        cod = leer.nextLine();
        mostrarPorCodigo(cod);     
    }
   
    public static void cantidadEmpleados(){
        Scanner s = null;
        File fichero = new File("D:\\ALMACEN\\ACADEMICO\\EStructuras\\PryArchivosPropuesto\\empleados.txt");
        String datosCompletos, codigo, nombre, apPaterno, apMaterno, sexo;
        int pos1, pos2, pos3, pos4, cantidad=0;
       
          try{
            s = new Scanner(fichero);
            while(s.hasNextLine()){             //s.hasNextLine : mientras halla lineas hacer....
                    datosCompletos = s.nextLine();              //lee la linea actual
                    cantidad++;                   
            }
            s.close();                  //cerramos el escaner s
        }
        catch (Exception e){
            System.out.println("no se encuentra el archivo"+e.getMessage());
        }
        System.out.println("cantidad de empleados: "+cantidad);
    }
   
    public static void listaEmpleadosFemenino(){
        Scanner s = null;
        File fichero = new File("D:\\empleados.txt");
        String datosCompletos, codigo, nombre, apPaterno, apMaterno, sexo;
        int pos1, pos2, pos3, pos4;
       
          try{
            s = new Scanner(fichero);
            while(s.hasNextLine()){             //s.hasNextLine : mientras halla lineas hacer....
                    datosCompletos = s.nextLine();              //lee la linea actual

                    pos1= datosCompletos.indexOf(' ');
                    pos2= datosCompletos.indexOf(' ', pos1+1);//busca el siguiente espacio en blaco a partir del siguiente caractaer despues del primer espacio en blanco
                    pos3= datosCompletos.indexOf(' ', pos2+1);
                    pos4= datosCompletos.indexOf(' ', pos3+1);
       
                    codigo = datosCompletos.substring(0, pos1+1);
                    nombre = datosCompletos.substring(pos1+1, pos2);
                    apPaterno= datosCompletos.substring(pos2+1, pos3);
                    apMaterno =datosCompletos.substring(pos3+1, pos4);         
                    sexo =datosCompletos.substring(pos4+1);         
                   
                    if(sexo.equalsIgnoreCase("femenino")){
                        System.out.println("  "+datosCompletos);
                    }

            }
            s.close();                  //cerramos el escaner s
        }
        catch (Exception e){
            System.out.println("no se encuentra el archivo"+e.getMessage());
        }
    }
   
    public static void mostrarPorCodigo(String cod){
        Scanner s = null;
        File fichero = new File("D:\\empleados.txt");
        String datosCompletos, codigo, nombre, apPaterno, apMaterno, sexo;
        int pos1, pos2, pos3, pos4, c=0;
        System.out.println(" codigo a vbucar "+cod);
          try{
            s = new Scanner(fichero);
            while(s.hasNextLine()){             //s.hasNextLine : mientras halla lineas hacer....
                    datosCompletos = s.nextLine();              //lee la linea actual

                    pos1= datosCompletos.indexOf(' ');
                    pos2= datosCompletos.indexOf(' ', pos1+1);//busca el siguiente espacio en blaco a partir del siguiente caractaer despues del primer espacio en blanco
                    pos3= datosCompletos.indexOf(' ', pos2+1);
                    pos4= datosCompletos.indexOf(' ', pos3+1);
       
                    codigo = datosCompletos.substring(0, pos1);         
                   
                    if(codigo.equalsIgnoreCase(cod)){
                        System.out.println("  "+datosCompletos);
                        c=1;
                    }

            }
            s.close();                  //cerramos el escaner s
            if(c==0) System.out.println("codigo no encontrado");

        }
        catch (Exception e){
            System.out.println("no se encuentra el archivo"+e.getMessage());
        }
    }
   
}
« Última modificación: 11 de Junio 2020, 17:19 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:java pilas
« Respuesta #4 en: 29 de Julio 2019, 21:04 »
Buenas, para publicar en los foros deben seguirse unas normas básicas que están explicadas en https://aprenderaprogramar.com/foros/index.php?topic=1460.0
Te recomiendo que vuelvas a publicar el mensaje siguiendo esas indicaciones.
Salu2

 

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