- Tema Autor
- #1
la verdad es que mi profe dio una tarea y e estado tratando de hacerla pero me faltan algunos detalles ojala me puedan ayudar gracias
les explico mi tarea:
Implementar una aplicación en Java, para el control de los Contratos de los Trabajadores de una empresa, utilizando listas dobles enlazadas.
I.- Por cada trabajador se debe almacenar: codigo, rut, nombre, cargo, sueldo y fechaContrato.
II.- Crear un menú que presente las siguientes opciones:
1. Agregar un nuevo contrato, al ingresar un nuevo Contrato, el código debe generarse correlativamente, y luego ingresar rut, nombre, cargo, sueldo y fecha.
2. Visualizar los contratos de izq-der. ( muestra de los mas antiguos a los más nuevos.)
3. Visualizar los contratos de der-izq. ( muestra de los mas nuevos a los más antiguos.)
4. Búsqueda de contratos por Codigo, muestra todos datos del contrato.
5. Búsqueda de contratos por Rut, mostrando todos los Contratos de un trabajador. Para comparar cadenas utilice equals.
6. Búsqueda de contratos por Cargo, mostrando todos los Contratos por cargo. Para comparar cadenas utilice equals.
7. Eliminar contrato por código.
Nota: Al ingresar un nuevo contrato, el código debe generarse correlativamente.
y lo tengo en tres clases
clase listas_dobles
import javax.swing.JOptionPane;
public class Lista_Doble
{
private Nodo primero;
private Nodo ultimo;
public Lista_Doble()
{
primero=null;
ultimo=null;
}
/* public Lista_Doble insertarInicio(int entrada)
{
Nodo nuevo;
nuevo=new Nodo(entrada);
nuevo.establecerAdelante(primero);
if(primero!=null)//si primero==null es que lista esta vacia
primero.establecerAtras(nuevo);//une el nodo nueva con el primero original
else//(si primero==null)
ultimo=nuevo;//establece al nuevo como ultimo (y unico, por sgte. linea)
primero=nuevo;//establece al nuevo como primero
return this;
}*/
public String Visualizar_izq_der()
{
String salida="Cargo\tCodigo\tFecha\tRut\tNombre\tSueldo ";
Nodo n;
n=primero;
while(n!=null)
{
JOptionPane.showMessageDialog(null,salida+"\n"+ n.obtenercodigo()+" "+n.obtenerfecha()+" "+n.obtenerrut()+" "+n.obtenernombre()+" "+n.obtenercargo()+" "+n.obtenersueldo());
n=n.obtenerAdelante();
}
}
public void Visualizar_der_izq()
{
Nodo n;
n=ultimo;
while(n!=null)
{
JOptionPane.showMessageDialog(null,n.obtenersueldo()+" "+n.obtenercargo()+" "+n.obtenernombre()+" "+n.obtenerrut()+" "+n.obtenerfecha()+" "+n.obtenercodigo());
n=n.obtenerAtras();
}
}
public boolean listaVacia()
{
return primero==null;
}
public Lista_Doble insertarFinal()
{
// public Nodo(String f,int s,String r,String n,String c,int cod)
String fe="",ru="",nom="",ca="",sues="",cos="";
int sue,co=0;
fe=JOptionPane.showInputDialog("ingrese fecha del contrato");
ru=JOptionPane.showInputDialog("ingrese rut");
nom=JOptionPane.showInputDialog("ingrese nombre");
ca=JOptionPane.showInputDialog("ingrese cargo");
sues=JOptionPane.showInputDialog("ingrese sueldo");
sue=Integer.parseInt(sues);
Nodo nuevo;
nuevo=new Nodo(fe,ru,nom,ca,sue,co);
nuevo.establecerAtras(ultimo);
if(ultimo!=null)
{
co=ultimo.obtenercodigo()+1;
ultimo.establecerAdelante(nuevo);}
else
{
co=1;
primero=nuevo;}
ultimo=nuevo;
nuevo.setcodigo(co);
return this;
}
public Lista_Doble eliminar(int n)
{
Nodo elimina=null;
Nodo der=null;
Nodo indice;
Nodo izq;
indice=primero;
while(indice!=null)
{
if(n==indice.obtenercodigo())
elimina=indice;
indice=indice.obtenerAdelante();
}
if(elimina==null)
System.out.println("\nValor no existe en la Lista");
else
{
if(primero==ultimo)
{
primero=null;
ultimo=null;
}
else
{
izq=elimina.obtenerAtras();
der=elimina.obtenerAdelante();
if(elimina==primero)
{
der.establecerAtras(null);
primero=elimina.obtenerAdelante();
}
else
{
if(elimina.obtenerAdelante()!=null)//si fuera = quiere decirque el valor buscado esta al ultimo
{
der.establecerAtras(izq);
izq.establecerAdelante(der);
}
else//el valor buscado esta al ultimo
{
ultimo=elimina.obtenerAtras();
izq.establecerAdelante(null);
}
}
}
}
return this;
}
}
clase menu
import javax.swing.*;
public class Menu
{
public static void main(String[] args)
{
Lista_Doble lista1=new Lista_Doble();
String ops="",salida="",sal;
JTextArea asalida= new JTextArea();
int op=0;
do{
ops=JOptionPane.showInputDialog("Menú Aplicación \n1. agregar un nuevo contrato\n2. Vizualisar Contratos de Izq a Der\n3. Vizualisar Contratos Der a Izq\n4. \n6. \n7.Eliminar Contrato \n8. \n9. Salir\n\nopcion ");
op=Integer.parseInt(ops);
switch (op){
case 1:/* String es="";
int e=0;
es=JOptionPane.showInputDialog("Ingrese contrato");
e=Integer.parseInt(es);*/
sal=Visualizar_izq_der();
asalida.setText(sal);
JOptionPane.showMessageDialog(null,asalida,"detalle del contrato: ", JOptionPane.INFORMATION_MESSAGE);
lista1.insertarFinal();
break;
/*String ds="";
int d=0;
ds=JOptionPane.showInputDialog("Ingrese elemento");
d=Integer.parseInt(ds);
lista1.insertarInicio(d);
break;*/
case 2: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else
lista1.Visualizar_izq_der();
break;
case 3: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else
lista1.Visualizar_der_izq();
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else{
String ns="";
int n=0;
ns=JOptionPane.showInputDialog("inserte codigo del contrato para eliminar");
n=Integer.parseInt(ns);
lista1.eliminar(n);
}
break;
case 8:
break;
}
}while (op!=9);
}
}
clase nodo
public class Nodo {
//private int dato;
private String rut,nombre,cargo,fecha;
private int sueldo,codigo;
private Nodo adelante;
private Nodo atras;
public Nodo(String f,String r,String n,String c,int cod,int s)
{
codigo=cod;
rut=r;
nombre=n;
cargo=c;
fecha=f;
sueldo=s;
adelante=null;
atras=null;
}
public String obtenerrut()
{
return rut;
}
public void setrut(String r)
{
rut=r;
}
public int obtenercodigo()
{
return codigo;
}
public void setcodigo(int cod)
{
codigo=cod;
}
public String obtenernombre()
{
return nombre;
}
public void setnombre(String n)
{
nombre=n;
}
public String obtenercargo()
{
return cargo;
}
public void setcargo(String c)
{
cargo=c;
}
public String obtenerfecha()
{
return fecha;
}
public void setfecha(String f)
{
fecha=f;
}
public int obtenersueldo()
{
return sueldo;
}
public void setsueldo(int s)
{
sueldo=s;
}
public Nodo obtenerAdelante()
{
return adelante;
}
public Nodo obtenerAtras()
{
return atras;
}
public void establecerAdelante(Nodo adelante)
{
this.adelante=adelante;
}
public void establecerAtras(Nodo atras)
{
this.atras=atras;
}
}
porfavor tengo echa la opcion 1. 2. 3. 7
gracias de antemano
les explico mi tarea:
Implementar una aplicación en Java, para el control de los Contratos de los Trabajadores de una empresa, utilizando listas dobles enlazadas.
I.- Por cada trabajador se debe almacenar: codigo, rut, nombre, cargo, sueldo y fechaContrato.
II.- Crear un menú que presente las siguientes opciones:
1. Agregar un nuevo contrato, al ingresar un nuevo Contrato, el código debe generarse correlativamente, y luego ingresar rut, nombre, cargo, sueldo y fecha.
2. Visualizar los contratos de izq-der. ( muestra de los mas antiguos a los más nuevos.)
3. Visualizar los contratos de der-izq. ( muestra de los mas nuevos a los más antiguos.)
4. Búsqueda de contratos por Codigo, muestra todos datos del contrato.
5. Búsqueda de contratos por Rut, mostrando todos los Contratos de un trabajador. Para comparar cadenas utilice equals.
6. Búsqueda de contratos por Cargo, mostrando todos los Contratos por cargo. Para comparar cadenas utilice equals.
7. Eliminar contrato por código.
Nota: Al ingresar un nuevo contrato, el código debe generarse correlativamente.
y lo tengo en tres clases
clase listas_dobles
import javax.swing.JOptionPane;
public class Lista_Doble
{
private Nodo primero;
private Nodo ultimo;
public Lista_Doble()
{
primero=null;
ultimo=null;
}
/* public Lista_Doble insertarInicio(int entrada)
{
Nodo nuevo;
nuevo=new Nodo(entrada);
nuevo.establecerAdelante(primero);
if(primero!=null)//si primero==null es que lista esta vacia
primero.establecerAtras(nuevo);//une el nodo nueva con el primero original
else//(si primero==null)
ultimo=nuevo;//establece al nuevo como ultimo (y unico, por sgte. linea)
primero=nuevo;//establece al nuevo como primero
return this;
}*/
public String Visualizar_izq_der()
{
String salida="Cargo\tCodigo\tFecha\tRut\tNombre\tSueldo ";
Nodo n;
n=primero;
while(n!=null)
{
JOptionPane.showMessageDialog(null,salida+"\n"+ n.obtenercodigo()+" "+n.obtenerfecha()+" "+n.obtenerrut()+" "+n.obtenernombre()+" "+n.obtenercargo()+" "+n.obtenersueldo());
n=n.obtenerAdelante();
}
}
public void Visualizar_der_izq()
{
Nodo n;
n=ultimo;
while(n!=null)
{
JOptionPane.showMessageDialog(null,n.obtenersueldo()+" "+n.obtenercargo()+" "+n.obtenernombre()+" "+n.obtenerrut()+" "+n.obtenerfecha()+" "+n.obtenercodigo());
n=n.obtenerAtras();
}
}
public boolean listaVacia()
{
return primero==null;
}
public Lista_Doble insertarFinal()
{
// public Nodo(String f,int s,String r,String n,String c,int cod)
String fe="",ru="",nom="",ca="",sues="",cos="";
int sue,co=0;
fe=JOptionPane.showInputDialog("ingrese fecha del contrato");
ru=JOptionPane.showInputDialog("ingrese rut");
nom=JOptionPane.showInputDialog("ingrese nombre");
ca=JOptionPane.showInputDialog("ingrese cargo");
sues=JOptionPane.showInputDialog("ingrese sueldo");
sue=Integer.parseInt(sues);
Nodo nuevo;
nuevo=new Nodo(fe,ru,nom,ca,sue,co);
nuevo.establecerAtras(ultimo);
if(ultimo!=null)
{
co=ultimo.obtenercodigo()+1;
ultimo.establecerAdelante(nuevo);}
else
{
co=1;
primero=nuevo;}
ultimo=nuevo;
nuevo.setcodigo(co);
return this;
}
public Lista_Doble eliminar(int n)
{
Nodo elimina=null;
Nodo der=null;
Nodo indice;
Nodo izq;
indice=primero;
while(indice!=null)
{
if(n==indice.obtenercodigo())
elimina=indice;
indice=indice.obtenerAdelante();
}
if(elimina==null)
System.out.println("\nValor no existe en la Lista");
else
{
if(primero==ultimo)
{
primero=null;
ultimo=null;
}
else
{
izq=elimina.obtenerAtras();
der=elimina.obtenerAdelante();
if(elimina==primero)
{
der.establecerAtras(null);
primero=elimina.obtenerAdelante();
}
else
{
if(elimina.obtenerAdelante()!=null)//si fuera = quiere decirque el valor buscado esta al ultimo
{
der.establecerAtras(izq);
izq.establecerAdelante(der);
}
else//el valor buscado esta al ultimo
{
ultimo=elimina.obtenerAtras();
izq.establecerAdelante(null);
}
}
}
}
return this;
}
}
clase menu
import javax.swing.*;
public class Menu
{
public static void main(String[] args)
{
Lista_Doble lista1=new Lista_Doble();
String ops="",salida="",sal;
JTextArea asalida= new JTextArea();
int op=0;
do{
ops=JOptionPane.showInputDialog("Menú Aplicación \n1. agregar un nuevo contrato\n2. Vizualisar Contratos de Izq a Der\n3. Vizualisar Contratos Der a Izq\n4. \n6. \n7.Eliminar Contrato \n8. \n9. Salir\n\nopcion ");
op=Integer.parseInt(ops);
switch (op){
case 1:/* String es="";
int e=0;
es=JOptionPane.showInputDialog("Ingrese contrato");
e=Integer.parseInt(es);*/
sal=Visualizar_izq_der();
asalida.setText(sal);
JOptionPane.showMessageDialog(null,asalida,"detalle del contrato: ", JOptionPane.INFORMATION_MESSAGE);
lista1.insertarFinal();
break;
/*String ds="";
int d=0;
ds=JOptionPane.showInputDialog("Ingrese elemento");
d=Integer.parseInt(ds);
lista1.insertarInicio(d);
break;*/
case 2: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else
lista1.Visualizar_izq_der();
break;
case 3: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else
lista1.Visualizar_der_izq();
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7: if(lista1.listaVacia())
JOptionPane.showMessageDialog(null,"Lista vacia");
else{
String ns="";
int n=0;
ns=JOptionPane.showInputDialog("inserte codigo del contrato para eliminar");
n=Integer.parseInt(ns);
lista1.eliminar(n);
}
break;
case 8:
break;
}
}while (op!=9);
}
}
clase nodo
public class Nodo {
//private int dato;
private String rut,nombre,cargo,fecha;
private int sueldo,codigo;
private Nodo adelante;
private Nodo atras;
public Nodo(String f,String r,String n,String c,int cod,int s)
{
codigo=cod;
rut=r;
nombre=n;
cargo=c;
fecha=f;
sueldo=s;
adelante=null;
atras=null;
}
public String obtenerrut()
{
return rut;
}
public void setrut(String r)
{
rut=r;
}
public int obtenercodigo()
{
return codigo;
}
public void setcodigo(int cod)
{
codigo=cod;
}
public String obtenernombre()
{
return nombre;
}
public void setnombre(String n)
{
nombre=n;
}
public String obtenercargo()
{
return cargo;
}
public void setcargo(String c)
{
cargo=c;
}
public String obtenerfecha()
{
return fecha;
}
public void setfecha(String f)
{
fecha=f;
}
public int obtenersueldo()
{
return sueldo;
}
public void setsueldo(int s)
{
sueldo=s;
}
public Nodo obtenerAdelante()
{
return adelante;
}
public Nodo obtenerAtras()
{
return atras;
}
public void establecerAdelante(Nodo adelante)
{
this.adelante=adelante;
}
public void establecerAtras(Nodo atras)
{
this.atras=atras;
}
}
porfavor tengo echa la opcion 1. 2. 3. 7
gracias de antemano