diciembre 22, 2011

Calificaciones de Alumnos, usando Arreglos

¡Hola! Ya hace mucho que no se ve actividad por aquí, así que decidí postear un programa algo interesante sobre lo que se puede hacer teniendo dos arreglos -uno de números y otro de letras-; Ahora vamos a jugar con los arreglos, vamos a tratar de manejarlos con más precisión; Anteriormente creábamos nuestro arreglos y nosotros mismos como programadores especificábamos el tamaño del arreglo, sin darle oportunidad al usuario de que el diera el tamaño de este, en este programa le preguntaremos al usuario de que tamaño desea su arreglo y crearemos el arreglo del tamo indicado. El programa almacenara el nombre de n cantidad de Alumnos y sus calificaciones y posteriormente los imprimirá en pantalla; para esto usaremos 2 arreglos: uno de tipo String que almacenara los nombres y otro de tipo int o double que guardara las calificaciones, habiendo explicado esto ¡Hagamos código!.
//Archivo: ArregloNombres.java

import javax.swing.JOptionPane;

public class ArregloNombres {

   public static void main(String args[]){
        
      //Pedir tamaño del Arreglo al usuario:
      int tamaño=Integer.parseInt(JOptionPane.showInputDialog
                ("¿De que tamaño desea su Arreglo?"));
        
      //Crear y establecer tamaño de los Arreglos:
      String nombres[] = new String[tamaño];
      int calific[] = new int[tamaño];
        
      //Insertar nombres de alumnos al Arreglo String:
      for(int contador=0; contador < nombres.length; contador++)
            nombres[contador]=JOptionPane.showInputDialog
                    ("Nombre?");
        
      //Insertar calificaciones de cada alumno al Arreglo int:
      for(int contador=0; contador < calific.length; contador++)
            calific[contador]=Integer.parseInt
                    (JOptionPane.showInputDialog
                    ("Cual es la calificacione de "
                    +nombres[contador]+"?"));
        
      //Mostrar alumno y su calificacion en pantalla:
      System.out.println("Nombre\tCalificacion");
      for(int contador=0; contador < nombres.length; contador++)
            System.out.println(nombres[contador]+"\t"
                    +calific[contador]);
    }
}
Analicemos el código. Declaramos int tamaño en la linea 10 para que ahí se guarde el tamaño que especifique el usuario cuando mediante una ventana de JOptionPane le preguntemos "¿De que tamaño desea su Arreglo?", cuando el usuario introduzca un numero para indicar el tamaño del arreglo, en realidad estará especificando cuantos alumnos desea almacenar (por por consecuencia, también cuantas calificaciones). Suponga que el usuario introdujo el numero 3.


En la linea 14 se crea nuestro objeto arreglo nombres de tipo String, que es donde almacenará los nombres de los alumnos y entre los corchetes para especificar el tamaño del arreglo colocamos nuestra variable tamaño que contiene el numero 3 que introdujo el usuario anteriormente. En la linea 15 creamos otro arreglo, este de tipo int y lo llamamos calific que almacenara las calificaciones para cada alumno, como cada alumno tiene una sola calificación, hay la misma cantidad de alumnos que la misma cantidad de calificaciones, por lo tanto al momento de crear nuestro arreglo de calificaciones, entre los corchetes para especificar el tamaño del arreglo también colocamos la misma variable tamaño.

El usuario ya introdujo el tamaño del arreglo, y con eso creamos nuestros arreglos con el tamaño indicado, 2 arreglos de 3 elementos cada uno, pero en este momento sus elementos están vacíos, tienen valor de null los elementos de los 2 arreglos. Así que hay que insertar datos en los dos arreglos, por conveniencia para nuestro programa primero insertaremos los datos al arreglo nombres[], para esto usamos el ya clásico for para recorrer nuestro arreglo: for(int contador=0; contador<nombres.length; contador++); y como cuerpo del for estableceremos la asignación de datos a nuestro arreglo nombres[] (osea insertaremos los nombres de los alumnos), decimos entonces que a nombres[] en la posición contador se le asigna lo que el usuario introduzca cuando le aparezca la ventada del JOptionPane: nombres[contador]=JOptionPane.showInputDialog("Nombre?");.
contador va a variar desde 0 hasta 2, porque el usuario dio 3 como tamaño del arreglo (recuerde que el ultimo indice del arreglo es uno menos del tamaño del arreglo, en este caso 3-1 = 2). En la primera vuelta del for: contador=0, por tanto nuestro arreglo esta en la posición 0 y en esa posición se guardara el primer nombre que indiquemos en la ventana del JOptionPane. Después contador valdrá 1 y nuestro arreglo estará en la posición 1 y ahí se guardará el segundo nombre... hasta que contador valga 2 y nuestro arreglo se sitúe en la posición 2 para guardar el tercer y ultimo nombre.

Ya tenemos guardados los 3 nombres en nuestro primer arreglo y ahora hay que insertar datos en nuestro arreglo calific[] para asociarlas con las calificaciones de los alumnos. Se hace muy similar a la anterior inserción de datos de arreglos. Utilizamos la misma lógica del primer for, igual hacemos en el cuerpo del for, a calific[] en la posición contador se va a asignar lo que el usuario introduzca cuando le aparezca la ventana del JOptionPane. Y se utiliza la misma secuencia para guardar las 3 calificaciones, solo que en la linea donde le preguntamos al usuario cual es la calificación le concatenamos el nombre del alumno insertado en el arreglo anterior para saber de que alumno se esta preguntando la calificación y poder introducirla con claridad y certeza.

Una vez ya insertados los datos en los 2 arreglos, en el arreglo String los nombres de alumnos y en el arreglo int las calificaciones correspondientes de cada alumno, ahora solo hace falta mostrar de forma ordenada estos datos, cada alumno con su calificación correspondiente. Esto lo hacemos en las linea de 30 a 33 donde a la hora de imprimir nuestro mensaje de alumno y su calificación, escribimos un mensaje y le concatenamos nombres[contador] y calific[contador] que mostrara todos los nombres de los alumnos insertados y sus respectivas calificaciones.

No hay comentarios.:

Publicar un comentario