Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: observador en 27 de Julio 2019, 13:59
-
El código que se muestra en los siguientes mensajes es un ejemplo de programación y gestión de una pila de datos:
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);
}
}
-
Continuación:
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");
}
}
-
Continuación:
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();
}
}
-
Continuación:
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());
}
}
}
-
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