Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
package Registro;
//creamos una clase nodo donde vamos a tener todos los atributos que vamos a utilizar,
también //agregamos el método constructor para inicializar los atributos
int ident;
String Nombre;
String Sexo;
int Edad;
String Grado;
String Estado;
String Acudiente;
int contacto;
Nodo Sig;
Nodo Ant;
Nodo(){
ident=-1;
Nombre="";
Sexo="";
Edad=-1;
Grado="";
Acudiente="";
contacto=-1;
Sig=null;
Ant=null;
Nodo(int id,String nom,String sex,int eda,String grad,String est, String nomacu,int contac){
ident=id;
Nombre=nom;
Sexo=sex;
Edad=eda;
Grado=grad;
Estado = est;
Acudiente=nomacu;
contacto=contac;
Sig=null;
Ant=null
}
package Registro;
import javax.swing.JOptionPane;
Nodo cab;
// Los siguientes atributos son para llevas una contabilización de los estudiantes que se
registran //en los diferentes grupos
int contPrimero = 0;
int contSegundo = 0;
int contTercero = 0;
int contCuarto = 0;
int contQuinto = 0;
Lista() {
cab = null;
tam = 0;
/**
*/
return tam;
}
// creamos un método para buscar en la lista por medio de la identificación
Nodo q = null;
if (cab == null) {
return null;
} else {
q = cab;
while (q != null) {
if (q.ident == id) {
return q;
} else {
q = q.Sig;
return null;
//este es otro método que usamos para buscar pero en este seria por medio del grado
Nodo q = null;
if (cab == null) {
return null;
} else {
q = cab;
while (q != null) {
if (q.Grado.equalsIgnoreCase(grado)) {
return q;
} else {
q = q.Sig;
}
return null;
//Este método es para saber cuál es el nodo que esta en la última posición de la lista
Nodo Ultimo() {
if (cab == null) {
return null;
} else {
aux = cab;
aux = aux.Sig;
return aux;
//en este método creamos el nodo utilizando los atributos de la clase nodo que tenemos ya hecho
Nodo getCrearNodo() {
int menu1;
int menu2;
int menu3;
int id = Integer.parseInt(
Nodo p, q = Buscar(id);
if (q != null) {
JOptionPane.showMessageDialog(null,
return null;
} else {
// como tenemos varias opciones para este atributo vamos a utilizar un menú para evitar que
los // usuarios ingresen el valor como ellos quieran
menu1 = Integer.parseInt(JOptionPane.showInputDialog(
));
switch (menu1) {
case 1:
sex = "masculino";
break;
case 2:
sex = "femenino";
break;
default:
menu2 = Integer.parseInt(JOptionPane.showInputDialog(
));
switch (menu2) {
case 1:
grad = "primero";
contPrimero++;
break;
case 2:
grad = "segundo";
contSegundo++;
break;
case 3:
grad = "tercero";
contTercero++;
break;
case 4:
grad = "cuarto";
contCuarto++;
break;
case 5:
grad = "quinto";
contQuinto++;
break;
default:
JOptionPane.showMessageDialog(null, "Opción Invalida!");
menu3 = Integer.parseInt(JOptionPane.showInputDialog(
));
switch (menu3) {
case 1:
est = "Deficiente";
break;
case 2:
est = "Aprobado";
break;
default:
if (eda > 6) {
return p;
} else {
}
}
return null;
//utilizando los contadores que ya teníamos, vamos a crear un método vacio para que nos
//muestre el numero de estudiantes que llevan cada curso
String informe() {
return info;
//método mostrar
if (cab == null) {
JOptionPane.showMessageDialog(null,
"Lista vacia!");
} else {
Nodo p = cab;
while (p != null) {
info = Mostrar2(p.ident);
JOptionPane.showMessageDialog(null, info);
p = p.Sig;
}
}
Nodo p = Buscar(id);
if (p == null) {
} else {
return info;
Nodo p = Buscar2(grado);
if (p == null) {
} else {
return info;
return null;
void AgregarAlFinal() {
Nodo p, q = getCrearNodo();
if (q != null) {
if (cab == null) {
cab = q;
JOptionPane.showMessageDialog(null,
} else {
p = Ultimo();
p.Sig = q;
q.Ant = p;
JOptionPane.showMessageDialog(null,
tam++;
}
void AgregarAlInicio() {
Nodo q = getCrearNodo();
if (q != null) {
if (cab == null) {
cab = q;
JOptionPane.showMessageDialog(null,
} else {
q.Sig = cab;
cab.Ant = q;
cab = q;
JOptionPane.showMessageDialog(null,
tam++;
void AgregarEntreNodos() {
Nodo p = getCrearNodo();
Nodo cb = cab;
p.Sig = cb.Sig;
if (cb.Sig != null) {
cb.Sig.Ant = p;
cb.Sig = p;
p.Ant = cb;
tam++;
if (cab == null) {
JOptionPane.showMessageDialog(null,
} else {
Nodo p = Buscar(id);
if (p == null) {
JOptionPane.showMessageDialog(null,
} else {
cab = null;
JOptionPane.showMessageDialog(null,
cab = cab.Sig;
p.Sig = null;
cab.Ant = null;
p = null;
JOptionPane.showMessageDialog(null,
p.Ant.Sig = null;
p.Ant = null;
p = null;
JOptionPane.showMessageDialog(null,
"Elemento eliminado, al final!");
} else {
p.Ant.Sig = p.Sig;
p.Sig.Ant = p.Ant;
p = null;
JOptionPane.showMessageDialog(null,
// Este método es para calcular cuantos estudiantes en estado deficiente hay la lista
int NumeroEstudianteDeficientes(){
int contador=0;
if(cab==null)
return 0;
else{
Nodo p=cab;
while(p!=null){
if(p.Grado == grado )
contador++;
p=p.Sig;
return contador;
}
}
void EstudianteMayor() {
int n = getTamanio();
if (n != 0) {
int mayor = 0;
Nodo c = cab;
while (c != null) {
mayor = c.Edad;
temp = aux;
c = c.Sig;
JOptionPane.showMessageDialog(null, temp);
} else {
}
}
package Registro;
import javax.swing.JOptionPane;
/**
*/
do{
menu=Integer.parseInt(
JOptionPane.showInputDialog(""
));
switch(menu){
case 1:
lt.AgregarAlFinal();
lt.Mostrar();
break;
case 2:
lt.AgregarEntreNodos();
lt.Mostrar();
break;
case 3:
lt.AgregarAlInicio();
lt.Mostrar();
break;
case 4:
id=Integer.parseInt(
JOptionPane.showInputDialog(
aux=lt.Mostrar2(id);
JOptionPane.showMessageDialog(null, aux);
break;
case 5:
id=Integer.parseInt(
JOptionPane.showInputDialog(
lt.EliminarRegistro(id);
break;
case 6:
lt.informe();
break;
case 7:
lt.Mostrar();
break;
case 8:
lt.NumeroEstudianteDeficientes();
break;
case 9:
lt.EstudianteMayor();
break;
case 10:
break;
default:
JOptionPane.showMessageDialog(null,
"Opción invalida!!");
}
}while(menu!=11);