Sei sulla pagina 1di 19

CODIGO COMENTADO Y DIAGRAMA DE UML

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

public class Nodo {

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="";

Estado = " ";

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;

public class Lista {

// Puntero que indica el inicio de la lista o conocida también

// como cabeza de la lista.

Nodo cab;

int tam; // Variable para registrar el tamaño de la lista.

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

//Metodo constructor para inicializar las variables que tenemos al principio

Lista() {

cab = null;

tam = 0;

/**

* Consulta cuantos elementos (nodos) tiene la lista.

* @return numero entero entre [0,n] donde n es el numero de elementos

* que contenga la lista.

*/

public int getTamanio() {

return tam;

}
// creamos un método para buscar en la lista por medio de la identificación

Nodo Buscar(int id) {

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 Buscar2(String 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() {

Nodo aux = null;

if (cab == null) {

return null;

} else {

aux = cab;

while (aux.Sig != null) {

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;

String sex = null;

String grad = null;

String est =null;

int id = Integer.parseInt(

JOptionPane.showInputDialog("Entre Idetificacion Del Estudiante: "));

Nodo p, q = Buscar(id);
if (q != null) {

JOptionPane.showMessageDialog(null,

"Esta Idetificacion se encuentra registrada!");

return null;

} else {

String nom = JOptionPane.showInputDialog(

"Entre Nombre Del Estudiante: ");

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

"Ingrese El Sexo del Estudiante:\n"

+ "1. Masculino \n"

+ "2. Femenino \n"

+ "Entre su opción: ?"

));

switch (menu1) {

case 1:

sex = "masculino";

break;

case 2:

sex = "femenino";

break;

default:

JOptionPane.showMessageDialog(null, "Opción Invalida!");

int eda = Integer.parseInt(JOptionPane.showInputDialog(

"Ingrese La Edad Del Estudiante: "));

menu2 = Integer.parseInt(JOptionPane.showInputDialog(

"Ingrese El Grado Del Estudiante:\n"


+ "1. primero \n"

+ "2. segundo \n"

+ "3. trecero \n"

+ "4. cuarto \n"

+ "5. quinto \n"

+ "Entre su opción: ?"

));

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(

"Ingrese El Sexo del Estudiante:\n"

+ "1. Masculino \n"

+ "2. Femenino \n"

+ "Entre su opción: ?"

));

switch (menu3) {

case 1:

est = "Deficiente";

break;

case 2:

est = "Aprobado";

break;

default:

JOptionPane.showMessageDialog(null, "Opción Invalida!");

String nomacu = JOptionPane.showInputDialog(

"Entre Nombre Del Acudiente Del Estudiante: ");

int contac = Integer.parseInt(JOptionPane.showInputDialog(

"Ingrese El Contacto Del Acudiente: "));

if (eda > 6) {

p = new Nodo(id, nom, sex, eda, grad,est, nomacu, contac);

return p;

} else {

JOptionPane.showMessageDialog(null, "La Edad Del Estudiante No Cumple Con Las


Políticas Del Estado");

}
}

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() {

String info = "[Información Del Estudiante ";

info += "Primero: " + contPrimero + "\n";

info += "Segundo: " + contSegundo + "\n";

info += "Tercero: " + contTercero + "\n";

info += "Cuarto: " + contCuarto + "\n";

info += "Quinto: " + contQuinto + "\n";

return info;

//método mostrar

public void Mostrar() {

if (cab == null) {

JOptionPane.showMessageDialog(null,

"Lista vacia!");

} else {

Nodo p = cab;

String info = "";

while (p != null) {

info = Mostrar2(p.ident);

JOptionPane.showMessageDialog(null, info);

p = p.Sig;

}
}

String Mostrar2(int id) {

Nodo p = Buscar(id);

if (p == null) {

return "La Identificacion no esta registrado!";

} else {

String info = "[Información Del Estudiante "

+ "Con Identificacion: " + id + "]\n";

info += "Identificacion: " + p.ident + "\n";

info += "Nombre: " + p.Nombre + "\n";

info += "Sexo: " + p.Sexo + "\n";

info += "Edad: " + p.Edad + "\n";

info += "Grado: " + p.Grado + "\n";

info += "Estado: " + p.Estado + "\n";

info += "Acudiente: " + p.Acudiente + "\n";

info += "Contacto: " + p.contacto + "\n";

return info;

String Mostrar3(String grado) {

Nodo p = Buscar2(grado);

if (p == null) {

return "No hay estudiantes registrados!";

} else {

for (int i = 0; i < getTamanio(); i++) {

String info = "[Información Del Estudiante "

+ "Del grado: " + grado + "]\n";


info += "Nombre: " + p.Nombre + "\n";

info += "Acudiente: " + p.Acudiente + "\n";

info += "Contacto: " + p.contacto + "\n";

return info;

return null;

// con este método lo usamos para agregar un nodo al final de la lista

void AgregarAlFinal() {

Nodo p, q = getCrearNodo();

if (q != null) {

if (cab == null) {

cab = q;

JOptionPane.showMessageDialog(null,

"La lista estaba vacía, Nuevo elemento"

+ " agregado al final!");

} else {

p = Ultimo();

p.Sig = q;

q.Ant = p;

JOptionPane.showMessageDialog(null,

"Elemento agregado al final de la lista!");

tam++;

}
void AgregarAlInicio() {

Nodo q = getCrearNodo();

if (q != null) {

if (cab == null) {

cab = q;

JOptionPane.showMessageDialog(null,

"La lista estaba vacía, Nuevo elemento"

+ " agregado por el inicio!");

} else {

q.Sig = cab;

cab.Ant = q;

cab = q;

JOptionPane.showMessageDialog(null,

"Nuevo elemento agregado al inicio!");

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

//este método no sirve para eliminar un elemento de la lista discriminado por el id

void EliminarRegistro(int id) {

if (cab == null) {

JOptionPane.showMessageDialog(null,

"Imposible eliminar! LISTA VACIA!");

} else {

Nodo p = Buscar(id);

if (p == null) {

JOptionPane.showMessageDialog(null,

"La Identificacion no existe!");

} else {

if ((p == cab) && (cab.Sig == null)) {

cab = null;

JOptionPane.showMessageDialog(null,

"Elemento eliminado, LISTA VACIA!");

} else if ((p == cab) && (cab.Sig != null)) {

cab = cab.Sig;

p.Sig = null;

cab.Ant = null;

p = null;

JOptionPane.showMessageDialog(null,

"Elemento eliminado, al inicio!");

} else if (p.Sig == 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.Sig = p.Ant = null;

p = null;

JOptionPane.showMessageDialog(null,

"Elemento eliminado, entre nodos!");

// Este método es para calcular cuantos estudiantes en estado deficiente hay la lista

int NumeroEstudianteDeficientes(){

int contador=0;

String grado=JOptionPane.showInputDialog("Ingrese el grado que desea buscar");

if(cab==null)

return 0;

else{

Nodo p=cab;

while(p!=null){

if(p.Grado == grado )

contador++;

p=p.Sig;

JOptionPane.showMessageDialog(null,"El numero de estudiantes deficientes es:


"+contador);

return contador;

}
}

void EstudianteMayor() {

int n = getTamanio();

if (n != 0) {

int mayor = 0;

String grad = "primero";

String aux = "";

String temp = "";

Nodo c = cab;

while (c != null) {

aux = "Informacion: \n"

+ "Identificacion: " + c.ident + "\n"

+ "Nombre: " + c.Nombre + "\n"

+ "Sexo: " + c.Sexo + "\n"

+ "Edad: " + c.Edad + "\n"

+ "Grado: " + c.Grado + "\n";

if (c.Edad > mayor ) {

mayor = c.Edad;

temp = aux;

c = c.Sig;

JOptionPane.showMessageDialog(null, "El Estudiante De Mayor Edad es: ");

JOptionPane.showMessageDialog(null, temp);

} else {

JOptionPane.showMessageDialog(null, "No Hay Estudiante Regristado en el Grado


Primero");

}
}

package Registro;

import javax.swing.JOptionPane;

public class Registro {

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

Lista lt =new Lista();

int menu=-1, id=-1;

String aux=" ";

do{

menu=Integer.parseInt(

JOptionPane.showInputDialog(""

+ "\t MENU PRINCIPAL \n"

+ "\t 1. Agregar Al Final \n"

+ "\t 2. Agregar Entre Dos Nodos \n"

+ "\t 3. Agregar Al Inicio \n"


+ "\t 4. Buscar Estudiante \n"

+ "\t 5. Eliminar Estudiante \n"

+ "\t 6. Informe Numero de estudianes por cursos \n"

+ "\t 7. Mostrar Lista por curso \n"

+ "\t 8. informe de estudiantes deficientes por cursos \n"

+ "\t 9. estudiante de mayor edad \n"

+ "\t 10. Salir \n"

+ "\t Entre su opción: ?"

));

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(

"Ingrese La Identificacion: "));

aux=lt.Mostrar2(id);
JOptionPane.showMessageDialog(null, aux);

break;

case 5:

id=Integer.parseInt(

JOptionPane.showInputDialog(

"Ingrese La Identificacion: "));

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:

JOptionPane.showMessageDialog(null, "Finalizó el programa!");

break;

default:

JOptionPane.showMessageDialog(null,

"Opción invalida!!");

}
}while(menu!=11);

Potrebbero piacerti anche