diff --git a/src/sosvet/SosVet.java b/src/sosvet/SosVet.java index 990d9c4..d47db34 100644 --- a/src/sosvet/SosVet.java +++ b/src/sosvet/SosVet.java @@ -8,7 +8,7 @@ * @author García Velasco Rodrigo * @author Enríquez Pascual Ángel Gabriel * @author Gastélum Sánchez Ricardo - * @version 0.0.1b + * @version 0.0.2b */ // grupo 3IM7 @@ -21,22 +21,28 @@ public class SosVet { public static ArrayList citas = new ArrayList<>(); // Ejemplo de datos contenidos dentro de Array: {'id paciente' ,'dia', 'hora'} - public static String[][] slowSort(int index, ArrayList arrayList) { + /** + * @param index El indice del elemento a comparar dentro del ArrayList, + * debe de ser uno que se pueda convertir a Entero. + * @param arrayList El ArrayList a usar para la comparación. + * @return El arreglo ordenado con la misma estructura que el ArrayList original + * @author García Espino Enrique Román + */ + public static String[][] ordenamientoLento(int index, ArrayList arrayList) { /* TODO: Documentar absolutamente todo lo que hace esto porque me lo generó ChatGPT. Checar si se puede convertir a entero antes de hacerlo y si no mandarlo al último. */ String[][] toArr = arrayList.toArray(new String[arrayList.size()][]); - for (int i = 0; i < toArr.length; i++) { - for (int j = i + 1; j < toArr.length; j++) { + for (int i = 0; i < toArr.length; i++) { // Por cada elemento dentro del arreglo de dos dimensiones que se forma por el Arraylist + for (int j = i + 1; j < toArr.length; j++) { // Por cada elemento dentro del arreglo empezando en i + 1 + // Convierte las cadenas a números antes de comparar int num1 = Integer.parseInt(toArr[i][index]); int num2 = Integer.parseInt(toArr[j][index]); - // Compara los números para determinar el orden - if (num1 > num2) { - // Intercambia las filas + if (num1 > num2) { //Si el el indice del elemento i es mayor al del elemento j, intercambiar String[] temp = toArr[i]; toArr[i] = toArr[j]; toArr[j] = temp; @@ -46,7 +52,6 @@ public static String[][] slowSort(int index, ArrayList arrayList) { return toArr; } - public static void limpiarPantalla() { System.out.println("\033[H\033[2J"); System.out.flush(); @@ -490,16 +495,23 @@ public static void desplegarPacientes() { return; } limpiarPantalla(); + + String[][] ordenados = pacientes.toArray(new String[pacientes.size()][]); + + if (inputStringValidado("¿Ordenar por edad? S/N").toLowerCase().charAt(0) == 's') { + ordenados = ordenamientoLento(4, pacientes); + } + System.out.printf("%15s %15s %15s %10s %6s \n", "Cliente", "Paciente", "Celular", "Raza", "Edad"); - for (int i = 0; i < pacientes.size(); i++) { + for (int i = 0; i < ordenados.length; i++) { System.out.printf("%15s %15s %15s %10s %6s \n", - pacientes.get(i)[0], - pacientes.get(i)[1], - pacientes.get(i)[2], - pacientes.get(i)[3], - pacientes.get(i)[4]); + ordenados[i][0], + ordenados[i][1], + ordenados[i][2], + ordenados[i][3], + ordenados[i][4]); } presionaContinuar(); @@ -566,7 +578,6 @@ public static void main(String[] args) { pacientes.add(new String[]{"Cliente18", "Paciente18", "999000111", "Raza18", "9"}); pacientes.add(new String[]{"Cliente19", "Paciente19", "444555666", "Raza19", "5"}); pacientes.add(new String[]{"Cliente20", "Paciente20", "888999000", "Raza20", "3"}); - boolean activo = true; while (activo) { @@ -597,7 +608,6 @@ public static void main(String[] args) { } } - } }