UNIDAD 3
Actividad práctica aplicada
Camilo Andres Cantor Martinez
LUISA FERNANDA CAJAMARCA RODRIGUEZ
U. Compensar
Ingeniería De Sistemas
ESTRUCTURA DE DATOS
2025
Etapa De Transferencia
En esta etapa se abordarán los conceptos primordiales las estructuras de datos, como
Listas circulares simplemente enlazadas y doblemente enlazadas, aplicación de pilas y
colas, del cual se requiere que el estudiante tenga dominio en el momento de aplicar estos
fundamentos, para que así los pueda poner en práctica, cuando necesite realizar un
programa al manejar grandes cantidades de datos utilizando las estructuras mencionadas.
Actividad
1. En esa actividad el estudiante debe crear un programa utilizando listas enlazadas,
concepto de pila o cola utilizando listas dinámicas:
a. En la universidad compensar, se requiere un desarrollo a la medida para el control de turnos al solicitar
asesoría en la universidad. Los requerimientos para el software es que se pueda realizar las siguientes
operaciones:
i. Cuando se pida un nuevo turno se debe generar un código y
asignarlo a la lista.
ii. Poder asignarle el turno a un operario de asesoría
iii. Eliminar el turno cuando ya se encuentre atendido.
b. Para esta actividad se deben utilizar estructuras de datos de listas, pilas y
colas.
c. Se debe crear un menú utilizando la sentencia switch.
Actividad 01
A continuación, voy a colocar los pantallazos del código según lo especificado para la actividad
TX
import [Link];
import [Link];
import [Link];
public class ControlTurnos {
static Queue<String> colaTurnos = new LinkedList<>();
static int contadorTurnos = 1;
public static void main(String[] args) {
Scanner scanner = new Scanner([Link]);
int opcion;
do {
[Link]("\n=== MENÚ CONTROL DE TURNOS ===");
[Link]("1. Generar nuevo turno");
[Link]("2. Asignar turno a operario");
[Link]("3. Eliminar turno atendido");
[Link]("4. Mostrar turnos en espera");
[Link]("5. Salir");
[Link]("Seleccione una opción: ");
opcion = [Link]();
[Link](); // Limpiar buffer
switch (opcion) {
case 1:
generarTurno();
break;
case 2:
asignarTurno();
break;
case 3:
eliminarTurno();
break;
case 4:
mostrarTurnos();
break;
case 5:
[Link]("Saliendo del sistema...");
break;
default:
[Link]("Opción inválida. Intente de nuevo.");
}
} while (opcion != 5);
[Link]();
}
// Generar nuevo turno
public static void generarTurno() {
String turno = "T" + contadorTurnos++;
[Link](turno);
[Link]("Turno generado: " + turno);
}
// Asignar turno (mostrar el primero en cola)
public static void asignarTurno() {
if ([Link]()) {
[Link]("No hay turnos en espera.");
} else {
[Link]("Turno asignado al operario: " + [Link]());
}
}
// Eliminar turno (quitar el primero en cola)
public static void eliminarTurno() {
if ([Link]()) {
[Link]("No hay turnos por eliminar.");
} else {
[Link]("Turno atendido y eliminado: " + [Link]());
}
}
// Mostrar todos los turnos en espera
public static void mostrarTurnos() {
if ([Link]()) {
[Link]("No hay turnos en espera.");
} else {
[Link]("Turnos en espera: " + colaTurnos);
}
}
}
C:\Program Files\Eclipse Adoptium\jdk-[Link]-hotspot\bin\[Link]" "-javaagent:C:\Program
Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.1\lib\idea_rt.jar=5[Link]\Program
Files\JetBrains\IntelliJ IDEA Community Edition 2024.1.1\bin" -[Link]=UTF-8 -
[Link]=UTF-8 -[Link]=UTF-8 -classpath "C:\Users\CAMILO
CANTOR\IdeaProjects\Controlturnos\out\production\Controlturnos" ControlTurnos
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 1
Turno generado: T1
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 2
Turno asignado al operario: T1
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 4
Turnos en espera: [T1]
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 1
Turno generado: T2
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 2
Turno asignado al operario: T1
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 4
Turnos en espera: [T1, T2]
=== MENÚ CONTROL DE TURNOS ===
1. Generar nuevo turno
2. Asignar turno a operario
3. Eliminar turno atendido
4. Mostrar turnos en espera
5. Salir
Seleccione una opción: 5
Saliendo del sistema...
Process finished with exit code 0