Java - actualización y la consulta de los registros correspondientes a los empleados de una empresa, utiliz

 
Vista:

actualización y la consulta de los registros correspondientes a los empleados de una empresa, utiliz

Publicado por mafe (3 intervenciones) el 21/11/2011 00:09:41
hola

me pueden ayudar a corregir el codigo implementado estructura dinamica para ejecutarlo en jcreator


gracias....

(EMPLEADO)

import java.io.*;

public class Empleado implements Serializable

{

private short codigo;

private short edad;

private String nombre,domicilio,telefono;


public Empleado(short cod, String nom, short annos, String dcm,String Tfno)

{

codigo = cod;

nombre = nom;

edad = annos;

domicilio = dcm;

telefono = Tfno;

}

public void establecerCodigo(short cod)

{

codigo = cod;

}

public short devolverCodigo()

{

return codigo;

}

public void establecerNombre(String nom)

{

nombre=nom;

}

public String devolverNombre()

{

return nombre;

}

public void establecerEdad (short annos)

{

edad = annos;

}

public short devolverEdad()

{

return edad;

}

public void establecerDomicilio (String dom)

{

domicilio= dom;

}

public String devolverDomicilio ()

{

return domicilio;

}

public void establecerTelefono (String Tfno)

{

telefono = Tfno;

}

public String devolverTelefono()

{

return telefono;

}

public void mostrar()

{

System.out.println(devolverCodigo());

System.out.println(devolverNombre());

System.out.println(devolverEdad());

System.out.println(devolverDomicilio());

System.out.println(devolverTelefono());

}

}// Cierre clase Empleado

(PERSONAL)

/* clase personal de la empresa. Objeto que representa un aray de Empleado*/

import java.io.*;

public class Personal implements Serializable


{

private Empleado [] arrEmpleados;

private int nElementos;



public Personal()

{

//crea el array


nElementos = 0;

arrEmpleados= inicializar (nElementos);

}

private Empleado [] inicializar(int nElementos)

{


try

{

return new Empleado [nElementos];

}

catch(OutOfMemoryError e)

{


System.out.println(e.toString());

return arrEmpleados;
}

}

public Empleado elemento(int i)

{


if(i>=0 == i < nElementos)

return arrEmpleados[i];

else
{



System.out.println("no hay elementos en esa posicion");

return null;

}//cierre public Empleado

}//cierre public Personal


public int longitud()

{
return arrEmpleados.length;

}


public void añadir(Empleado unEmpleado)

{

Empleado [] copiaDeLista;

// el array crece conforme se le va añadiendo nnuevos elementos

copiaDeLista = arrEmpleados;

nElementos = copiaDeLista.length;

arrEmpleados = inicializar(nElementos + 1);

for (int i = 0; i< nElementos; i++)

arrEmpleados[i] = copiaDeLista[i];

arrEmpleados[nElementos] = unEmpleado;

nElementos ++;

}

public boolean eliminar (short cod)

{

Empleado [] copiaDeLista;

int posi = buscar(cod);

if (posi== -1)

{

//el array disminuye cuando se eliminan elementos


arrEmpleados[posi] = null;

copiaDeLista = arrEmpleados;

if (copiaDeLista.length ==0)

{

int k=0;

nElementos = copiaDeLista.length;

arrEmpleados=inicializar(nElementos - 1);

for (int i= 0; i<nElementos; i++)

if (copiaDeLista[i] ==null)

arrEmpleados[k++] = copiaDeLista[i];

nElementos--;

return true;

}

}

return false;

}

public int buscar (short cod)


{

int posi = 0;

if (posi < nElementos)

for (int i = posi; i < nElementos; i++)

if (arrEmpleados [i].devolverCodigo () == cod)

return i;

return -1;

}

}// cierre clase personal


(EJEMPLO)
import java.io.*;

public class Ejemplo

{

static Personal lista=null;

//si la lista sufre cambios se escribe en el disco

static boolean cambios;

public static void main (String [] args)

{

leer();

operaciones();

escribir();

}

public static void leer()

{

ObjectInputStream ois = null;

try

{//creacion considera dos casos si el archivo existe previamente o no

File fichero=new File ("empresa.dat");

if (!fichero.exists())

{

lista = new Personal();

System.out.println ("Nuevo archivo");

}//cierre if

else

ois = new ObjectInputStream(new FileInputStream("empresa.dat"));

lista =(Personal)ois.readObject();

System.out.println("Archivo existente");

}//cierre try

catch (ClassNotFoundException e)

{

System.out.print("Error:" + e.toString());

}

catch (IOException e)
{

System.out.println("Error: " + e.toString());

}

finally

{

try

{

if (ois !=null)

ois.close();

}//cierrre try

catch(IOException e)

{}

}//cierrefinally

}//cierre static void leer

public static void operaciones()

{

short opcion = 0;

InputStreamReader isr=new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

int posi=-1;

short codigo=3;

short edad=0;

String nombre,domicilio,telefono;

boolean eliminado=false;

boolean error;

//mantenimiento

try

{

do

{

System.out.println("MENU");
System.out.println("1.ALTAS");
System.out.println("2.BAJAS");
System.out.println("3.COLSULTAS");
System.out.println("4.FIN");
System.out.println();
System.out.print("Elija opcion: ");

do

{

opcion = Short.parseShort(new BufferedReader (new InputStreamReader(System.in)).readLine());

}//cierre do

while (opcion <1 | opcion >4);

switch (opcion)

{/*con el fin de simplificar el ejemplo, se supone que no se introducen codigos repetidos */

case 1://altas

/* se trata la excepcion para que vuelva a pedir el dato en el caso de que se

*introduzca un valor no numerico */

do

{

error = false;

try

{

System.out.print("codigo: ");

codigo = Short.parseShort(br.readLine());

}//cierre try

catch (NumberFormatException ne)

{

System.out.println("Valor no valido"+ "(ha de ser un numero)");

error = true;

}/*cierre catch*/

}//cierre do

while (error);

System.out.print("nombre: ");

nombre = br.readLine();

do

{

error=false;

try

{

System.out.print("edad: ");

edad = Short.parseShort(br.readLine());

}//cierre try

catch (NumberFormatException ne)

{

System.out.println("Valor no valido"+ "(ha de ser un numero)");

error = true;

}//cierre catch

}//cierre do

while (error);

System.out.print("domicilio: ");

domicilio = br.readLine();

System.out.print("telefono: ");

telefono= br.readLine();

lista.añadir(new Empleado (codigo,nombre,edad,domicilio,telefono));

cambios =true;

break;

else //bajas

do

{

error=false;

try

{

System.out.print("codigo a borrar: ");

codigo = Short.parseShort (br.readLine());

}//cierre try


catch (NumberFormatException ne)

{

System.out.println("valor no valido" + "(ha de ser un numero)");

error = true;

}//cierre catch

}//cierre do

while (error);

eliminado= lista.eliminar(codigo);

if (eliminado)

{

System.out.println("Registro eliminado");

cambios=true;

}//cierre if

else

if (lista.longitud()!=0)

System.out.println("no esta");

else

System.out.println("Lista vacia");

break;

case 3: //consultas

do

{

error = false;

try

{

System.out.print("Codigo a buscar: ");

codigo = Short.parseShort(br.readLine());

}//cierre try

catch(NumberFormatException re)

{

System.out.println("Valor no valido"+ "(ha de ser un numero)");

error= true;

}//cierre catch

}//cierre do

while (error);

posi=lista.buscar(codigo);

if (posi==-1)

if(lista.longitud()!=0)

System.out.println("Registro no encontrado");

else

System.out.println("Lista Vacia");

else

lista.elemento(posi).mostrar();

break;

case 4:

}//cierre switch

}//cierre do

hile (opcion !=4);

}//cierre try

catch (IOException e)

{}

}//cierre void operaciones

public static void escribir()

{

ObjectOutputStream ous = null;

//si hubo cambios los escribe en el archivo

try

{

if(cambios)

{

ous =new ObjectOutputStream(new FileOutputStream("empresa.dat"));

ous.writeObject(lista);

}

lista =null;

}//cierre try

catch (IOException e)

{

System.out.println("Error: "+ e.toString());

}//cierre catch

finally

{

try

{

if(ous !=null)

ous.close();

}//cierre try

catch (IOException e)
{}

}//cierre finally


}//cierre void escribir

}//CIERRE CLASE EJEMPLO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder