package programacionlistas;
import [Link].*;
public class Main {
public static void Llenar(Nodo nod) {
int cod = [Link]([Link]("Digite CODIGO del
Estudiante: "));
[Link](cod);
String nom = [Link]("Digite NOMBRE del Estudiante: ");
[Link](nom);
float n1 = [Link]([Link]("Digite La NOTA
1:"));
nod.setNota1(n1);
float n2 = [Link]([Link]("Digite La NOTA
2:"));
nod.setNota2(n2);
float n3 = [Link]([Link]("Digite La NOTA
3:"));
nod.setNota3(n3);
}
public static void Mostrar(Nodo nod) {
String datosNodo = "";
datosNodo = datosNodo + [Link]("" + "CODIGO: " + [Link]() +
"\n" + "NOMBRE: " + [Link]() + "\n"
+ "NOTA 1: " + nod.getNota1() + "\n" + "NOTA 2: " + nod.getNota2()
+ "\n" + "NOTA 3: " + nod.getNota3() + "\n"
+ "Definitiva: " + [Link]() + "\n \n");
[Link](null, " INFORMACION DE TODOS LOS
NODOS \n " + datosNodo);
}
public static void Listar(Nodo nod) {
Nodo temp = nod;
while (temp != null) {
Mostrar(temp);
temp = [Link]();
}
}
public static int Menu() {
String opcion = "0";
int op = 0;
boolean bandera = false;
do {
opcion = [Link]("""
SELECCIONE UNA OPCION
1. Agregar un Nodo a la Lista
2. Mostrar Nodos de la Lista
3. Cantidad de Nodos de la Lista
4. Buscar la Informacion de un
estudiante
5. Eliminar Nodo de la Lista
6. Informe: Promedio General y
Maxima Nota
7. Borrar toda la Lista
8. Salir
9. Añadir al inicio de la lista
10. Añadir entre dos nodos de la
lista
11. Invertir lista por completo
12. Ordenar la lista por nota
definitiva (Mayor a Menor)
13. Eliminar numeros pares de la
lista
14. Eliminar numeros impares de la
lista
Seleccione una opcion del 1 al
14: """);
try {
op = [Link](opcion);
if (op <= 0 || op > 15) {
bandera = true;
}
} catch (NumberFormatException e) {
[Link](e);
bandera = false;
}
} while (bandera);
return op;
}
public static void main(String[] args) {
ListaEnlazada lis = new ListaEnlazada(); //Se crea el objeto lis de la
clase ListaEnlazada.
int cod;
int opcion;
Nodo aux;
do {
opcion = Menu();
switch (opcion) {
case 1 -> {
aux = new Nodo(); //Cuando se agrega un nodo se crea un nuevo
objeto de la clase nodo.
Llenar(aux);
[Link](aux);
}
case 2 -> {
if ([Link]() != null) {
Listar([Link]());
} else {
[Link](null, "La Lista Está
Vacía....");
}
}
case 3 ->
[Link](null, "
NÚMERO DE NODOS DE LA LISTA \n " + [Link]()
+ " Nodos");
case 4 -> {
cod = [Link]([Link]("Digite
CODIGO del Estudiante a Buscar:"));
aux = [Link](cod);
if (aux != null) {
Mostrar(aux);
} else {
[Link](null, "La información del
estudiante No se encuentra en la lista");
}
}
case 5 -> {
cod = [Link]([Link]("Digite
CODIGO del Estudiante a Eliminar: "));
aux = [Link](cod);
if (aux != null) {
[Link](aux);
[Link](null, "La información fue
eliminada correctamente....");
} else {
[Link](null, "El código del
estudiante NO EXISTE en la Lista");
}
}
case 6 ->
[Link](null, """
INFORME PROMEDIO GENERAL Y MAXIMA NOTA
Promedio
General: """ + [Link]() + "\n y Máxima Nota: " +
[Link]());
case 7 -> {
[Link]();
[Link](null, "La Lista Está Vacía....");
}
case 8 -> {
}
case 9 -> {
aux = new Nodo();
Llenar(aux);
[Link](aux);
[Link](null, "Nodo agregado
exitosamente!");
}
case 10 -> {
aux = new Nodo();
Llenar(aux);
String nombre = [Link]("Ingrese el nombre
del estudiante");
[Link](aux, nombre);
[Link](null, "Nuevo estudiante
agregado!");
}
case 11 -> {
[Link]();
[Link](null, "La lista ha sido
invertida");
}
case 12 -> {
[Link]();
[Link](null, "Se ha ordenado la
lista.");
}
case 13 -> {
[Link]();
[Link](null, "Se eliminaron los numeros
Pares");
}
case 14 -> {
[Link]();
[Link](null, "Se eliminaron los numeros
Impares");
}
}
} while (opcion != 8);
}
}