Anda di halaman 1dari 8

Listas Encadenadas

Objetivos
1 Crear una Lista Encadenada
2.- Recordar Herencia (Clases Abstractas)
3.- Composicin
Maritzol Tenemaza (derechos reservados)
1.- Estructura a crear:

Persona: clase Abstracta

2,. Crear la Estructura:

Clase Fecha:

package epn;
import java.util.StringTokenizer;
import javax.swing.JOptionPane;
public class Fecha {
private int dia, mes, ao;
public Fecha(String tipo) {
super();

String linea= JOptionPane.showInputDialog("Ingrese La fecha de "+


tipo + " da/mes/ao");
StringTokenizer tokens= new StringTokenizer(linea, "/");
dia=Integer.parseInt(tokens.nextToken()) ;
mes= Integer.parseInt(tokens.nextToken()) ;
ao= Integer.parseInt(tokens.nextToken()) ;
}
public Fecha(int dia, int mes, int ao) {
super();
this.dia = dia;
this.mes = mes;
this.ao = ao;
}
@Override
public String toString() {
return "Fecha [dia=" + dia + ", mes=" + mes + ", ao=" + ao +
"]";

Clase Persona (Abstracta)


package epn;
import javax.swing.JOptionPane;
public abstract class Persona {
private String nombre;
Fecha fechanacimiento;
public Persona() {
super();
this.nombre= JOptionPane.showInputDialog("Ingrese el nombre de la
persona");
fechanacimiento= new Fecha("Nacimiento");
}
public Persona(String nombre, Fecha fechanacimiento) {
super();
this.nombre = nombre;
this.fechanacimiento = fechanacimiento;
}
@Override
public String toString() {
return "Persona [nombre=" + nombre + ", fechanacimiento=" +
fechanacimiento + "]";
}

Clase Empleado Hereda de Persona


package epn;
public class Empleado extends Persona {
Fecha fechaingreso;
public Empleado() {
super();
fechaingreso= new Fecha("Ingreso");
}
public Empleado(Fecha fechaingreso) {
super();
this.fechaingreso = fechaingreso;
}
public float calculoSalario(){
return 0;
}
@Override
public String toString() {
return super.toString()+ "Empleado [fechaingreso=" + fechaingreso + "]";
}

Clase Asalariado Hereda de Empleado

package epn;
import javax.swing.JOptionPane;
public class EmpleadoAsalariado extends Empleado {
private float salario;
public EmpleadoAsalariado() {
super();
salario=
Float.parseFloat(JOptionPane.showInputDialog("EmpleadoAsalariado, Ingrese el
salario"));
}
public EmpleadoAsalariado(float salario) {
super();
this.salario = salario;
}
public float calculoSalario(){

return salario;
}
@Override
public String toString() {
return super.toString()+"EmpleadoAsalariado [salario=" + salario +
"]";

Clase Empleado por Horas Hereda de Empleado


package epn;
import javax.swing.JOptionPane;
public class EmpleadoAsalariado extends Empleado {
private float salario;
public EmpleadoAsalariado() {
super();
salario=
Float.parseFloat(JOptionPane.showInputDialog("EmpleadoAsalariado, Ingrese el
salario"));
}
public EmpleadoAsalariado(float salario) {
super();
this.salario = salario;
}
public float calculoSalario(){
return salario;
}

"]";

@Override
public String toString() {
return super.toString()+"EmpleadoAsalariado [salario=" + salario +
}

Clase Nodo

package listaEncadenada;

import epn.Empleado;
public class Nodo {
Empleado empleado;
Nodo enl;
public Nodo(Empleado empleado ) {
super();
this.empleado= empleado;
this.enl=null;
}
public Nodo(Empleado empleado, Nodo enl) {
super();
this.empleado = empleado;
this.enl = enl;
}
@Override
public String toString() {
return "Nodo [empleado=" + empleado + "]";
}
}
Clase Lista Encadenada

package listaEncadenada;

import epn.Empleado;
public class ListaEncadenada {
Nodo primerNodo;

public ListaEncadenada() { // Crear la lista vaca


super();
}

primerNodo=null;

public void insertarAlFrente( Empleado empleado)


{
if
(estVaca())

primerNodo= new Nodo(empleado);


else
primerNodo= new Nodo(empleado, primerNodo);
}
public void insertarAlFinal( Empleado empleado)
{
}

public String Listar()


{
String salida="";;
if(estVaca())
{
return "Lista Vaca";
}
else
{
salida = "\n\nLa lista de libros es:";
Nodo p=primerNodo;
while(p!=null)
{
salida+= "\n"+ p.empleado.toString();
p=p.enl;
}
}
return salida;
}
public boolean estVaca()
{
return (primerNodo==null);
}

public void insertarAlFInal() {


// TODO Auto-generated method stub
}

Clase Aplicacin

package Uso;
import javax.swing.JOptionPane;
import epn.Empleado;
import epn.EmpleadoAsalariado;

import epn.EmpleadoHoras;
import listaEncadenada.ListaEncadenada;
public class Aplicacin {
public static void main(String[] args) {
ListaEncadenada listaEncadenada= new ListaEncadenada();
int opcion;
Empleado empleado;
int tipoAccin;
do
{
empleado= solicitaEmpleado();
String[] buttons = { "AgregarAlFrente", "AgregarALFinal", "Listar"};
tipoAccin = JOptionPane.showOptionDialog(null, "Qu desea hacer sobre
su lista encadenada", "Lista
Encadenada",JOptionPane.INFORMATION_MESSAGE,1, null, buttons, buttons[2]);
switch(tipoAccin){
case 0:
listaEncadenada.insertarAlFrente(empleado);
break;
case 1:
listaEncadenada.insertarAlFinal(empleado);
break;
case 2:
JOptionPane.showMessageDialog(null, listaEncadenada.Listar());
break;
}

opcion= JOptionPane.showConfirmDialog(null, "Continua?", "Ingreso NOdos",


JOptionPane.YES_NO_OPTION);
}while (opcion== JOptionPane.YES_OPTION);
}

public static Empleado solicitaEmpleado()


{
Empleado empleadoAux=null;

int tipoEmpleado;
String[] buttons = {"Asalariado", "Por Horas"};
tipoEmpleado = JOptionPane.showOptionDialog(null, "Seleccione el tipo de
empleado", "Tipo de empleado",JOptionPane.INFORMATION_MESSAGE,1, null,
buttons, buttons[1]);
switch(tipoEmpleado){
case 0:
empleadoAux=new EmpleadoAsalariado();
break;
case 1:
empleadoAux=new EmpleadoHoras();
break;
}
return empleadoAux;
}

Anda mungkin juga menyukai