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


0