Está en la página 1de 4

CLASE TurnorsUniversidad

package org.example;

import java.util.Scanner;

public class TurnosUniversidad {

private static int code = 0;

private static class Nodo {

String codigo;
String operario;
boolean atendido;
Nodo siguiente;

Nodo(String codigo) {
this.codigo = codigo;
this.operario = null;
this.atendido = false;
this.siguiente = null;
}
}

private static Nodo inicio = null;

public static String generarCodigo() {


code++;
String cod = String.format("%03d", code);
return cod;
}

public static void generarTurno() {


String codigo = generarCodigo();
Nodo nuevo = new Nodo(codigo);

if (inicio == null) {
inicio = nuevo;
} else {
Nodo actual = inicio;
while (actual.siguiente != null) {
actual = actual.siguiente;
}
actual.siguiente = nuevo;
}
System.out.println("Se ha generado el turno " + codigo);
}

public static void asignarTurno() {


Scanner sc = new Scanner(System.in);
String codigo = inicio != null ? inicio.codigo : "";

Nodo actual = inicio;


while (actual != null && (!actual.codigo.equals(codigo) ||
actual.atendido)) {
actual = actual.siguiente;
codigo = actual != null ? actual.codigo : "";
}

if (actual != null) {
System.out.print("Ingrese el nombre del operario: ");
String operario = sc.nextLine();
actual.atendido = true;
actual.operario = operario;
System.out.println("\nEl turno " + actual.codigo + " ha sido
asignado a " + operario);
} else {
System.out.println("No se encontró el turno o ya fue
atendido");
}
}

public static void eliminarTurno() {


if (inicio == null) {
System.out.println("No hay turnos en espera");
} else {
Nodo anterior = null;
Nodo actual = inicio;
while (actual != null && !actual.atendido) {
anterior = actual;
actual = actual.siguiente;
}

if (actual == null) {
System.out.println("No hay turnos asignados para
eliminar");
} else {
String codigo = actual.codigo;
if (anterior == null) {
inicio = actual.siguiente;
} else {
anterior.siguiente = actual.siguiente;
}
System.out.println("El turno " + codigo + " ha sido
eliminado");
}
}
}

public static void mostrarTurnos() {


System.out.println("Turnos en espera: ");
Nodo actual = inicio;
if (actual == null) {
System.out.println("No hay turnos en espera");
} else {
while (actual != null) {
String estado = actual.atendido ? "atendido" : "en
espera";
String operario = actual.operario != null ?
actual.operario : "No Asignado";
System.out.println("Turno " + actual.codigo + " (" +
estado + ") - Operario: " + operario );
actual = actual.siguiente;
}
}
}

Clase Main

package org.example;

import java.util.Scanner;

public class Main {


public static void main(String[] args) {

Scanner sc = new Scanner(System.in);


int opcion = 0;

System.out.println("Bienvenido al Programa de Asignación de


turnos UCompensar");

while (opcion != 5) {
System.out.println("\nMenú:");
System.out.println("1. Generar turno");
System.out.println("2. Asignar turno");
System.out.println("3. Eliminar turno");
System.out.println("4. Mostrar turnos en espera");
System.out.println("5. Salir\n");
System.out.print("Ingrese la opción deseada: ");

if (sc.hasNextInt()) {
opcion = sc.nextInt();

switch (opcion) {
case 1:
TurnosUniversidad.generarTurno();
break;
case 2:
TurnosUniversidad.asignarTurno();
break;
case 3:
TurnosUniversidad.eliminarTurno();
break;
case 4:
TurnosUniversidad.mostrarTurnos();
break;
case 5:
System.out.println("hasta Pronte!");
break;
default:
System.out.println("Opción inválida");
}
} else {
// Mensaje de error al ingresar una opción inválida
System.out.println("Ingrese un número de las opciones del
menú.");
sc.next();
}
}
sc.close();

}
}

También podría gustarte