import java.util.Scanner;
/**
* Programa que simula una fila de supermercado utilizando vectores (arreglos).
* Emplea únicamente instrucciones básicas de un curso introductorio de Java.
*/
public class Main {
public static void main(String[] args) {
// Objeto Scanner para leer los datos ingresados en consola
Scanner scanner = new Scanner(System.in);
// Capacidad máxima de la fila (tamaño fijo de los vectores)
final int CAPACIDAD_MAXIMA = 10;
// Vectores paralelos: el índice 'i' relaciona el nombre con su tiempo
String[] nombresClientes = new String[CAPACIDAD_MAXIMA];
int[] tiemposAtencion = new int[CAPACIDAD_MAXIMA];
// Controla cuántos clientes están registrados actualmente en la fila
int cantidadClientes = 0;
int opcion = 0;
System.out.println("=== SIMULADOR DE FILA DE SUPERMERCADO (CON VECTORES) ===");
// Ciclo principal del menú; se repite hasta elegir la opción 4
while (opcion != 4) {
System.out.println("\n--- MENÚ DE OPCIONES ---");
System.out.println("1. Registrar nuevo cliente en la fila");
System.out.println("2. Ver clientes en la fila");
System.out.println("3. Atender fila y calcular tiempos");
System.out.println("4. Salir");
System.out.print("Seleccione una opción: ");
// Verificamos si existe una línea de entrada disponible antes de leer
if (!scanner.hasNextLine()) {
break;
}
// Leemos la opción como texto y la convertimos a número entero
opcion = Integer.parseInt(scanner.nextLine());
switch (opcion) {
case 1:
// Validamos si todavía hay espacio disponible en los vectores
if (cantidadClientes < CAPACIDAD_MAXIMA) {
System.out.print("Ingrese el nombre del cliente: ");
nombresClientes[cantidadClientes] = scanner.nextLine();
System.out.print("Ingrese el tiempo estimado en caja (minutos): ");
tiemposAtencion[cantidadClientes] = Integer.parseInt(scanner.nextLine());
// Aumentamos el contador de clientes registrados
cantidadClientes++;
System.out.println("-> Cliente registrado exitosamente en la posición " + cantidadClientes + ".");
} else {
System.out.println("¡Alerta! La fila está llena (máximo " + CAPACIDAD_MAXIMA + " clientes).");
}
break;
case 2:
// Validamos si hay al menos un cliente guardado
if (cantidadClientes == 0) {
System.out.println("La fila se encuentra vacía.");
} else {
System.out.println("\n--- CLIENTES EN ESPERA (" + cantidadClientes + "/" + CAPACIDAD_MAXIMA + ") ---");
// Recorremos los vectores únicamente hasta 'cantidadClientes'
for (int i = 0; i < cantidadClientes; i++) {
System.out.println((i + 1) + ". " + nombresClientes[i] + " - Tiempo estimado: " + tiemposAtencion[i] + " min");
}
}
break;
case 3:
if (cantidadClientes == 0) {
System.out.println("No hay clientes para atender.");
} else {
System.out.println("\n=== INICIANDO ATENCIÓN EN CAJA ===");
int tiempoAcumulado = 0; // Acumula los minutos totales transcurridos
// Recorremos la fila en orden de llegada (desde el índice 0)
for (int i = 0; i < cantidadClientes; i++) {
System.out.println("\nAtendiendo a: " + nombresClientes[i]);
System.out.println("Tiempo que esperó en fila: " + tiempoAcumulado + " minutos.");
System.out.println("Tiempo de atención en caja: " + tiemposAtencion[i] + " minutos.");
// Sumamos el tiempo del cliente actual para calcular la espera del siguiente
tiempoAcumulado += tiemposAtencion[i];
}
// Calculamos el promedio convirtiendo 'tiempoAcumulado' a double para obtener decimales
double promedio = (double) tiempoAcumulado / cantidadClientes;
System.out.println("\n=== RESUMEN FINAL ===");
System.out.println("Total de clientes atendidos: " + cantidadClientes);
System.out.println("Tiempo total de operación: " + tiempoAcumulado + " minutos.");
System.out.printf("Tiempo promedio de atención: %.2f minutos.\n", promedio);
// Reiniciamos el contador a 0 para vaciar lógicamente la fila
cantidadClientes = 0;
System.out.println("(La fila ha quedado vacía nuevamente)");
}
break;
case 4:
System.out.println("Cerrando el sistema. ¡Hasta pronto!");
break;
default:
System.out.println("Opción incorrecta. Por favor ingrese un número del 1 al 4.");
}
}
// Cerramos el Scanner para liberar el recurso
scanner.close();
}
}
To embed this project on your website, copy the following code and paste it into your website's HTML: