Skip to content

Commit

Permalink
Funciona de manera muy mala el ordenar por edades en el desplegar pac…
Browse files Browse the repository at this point in the history
…ientes
  • Loading branch information
quiquermn committed Oct 22, 2023
1 parent c04dc8a commit d54d57f
Showing 1 changed file with 26 additions and 16 deletions.
42 changes: 26 additions & 16 deletions src/sosvet/SosVet.java
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -21,22 +21,28 @@ public class SosVet {
public static ArrayList<String[]> citas = new ArrayList<>();
// Ejemplo de datos contenidos dentro de Array: {'id paciente' ,'dia', 'hora'}

public static String[][] slowSort(int index, ArrayList<String[]> 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<String[]> 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;
Expand All @@ -46,7 +52,6 @@ public static String[][] slowSort(int index, ArrayList<String[]> arrayList) {
return toArr;
}


public static void limpiarPantalla() {
System.out.println("\033[H\033[2J");
System.out.flush();
Expand Down Expand Up @@ -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();
Expand Down Expand Up @@ -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) {

Expand Down Expand Up @@ -597,7 +608,6 @@ public static void main(String[] args) {
}
}


}

}

0 comments on commit d54d57f

Please sign in to comment.