Hola.
Estas actividades hay que afrontarlas por partes, paso a paso.
Por ejemplo, está claro que se va a tener que mostrar un menú con 5 opciones:
Para la interfaz de usuario, considera un menú con las siguientes opciones:
1. Ingresar las notas de un alumno. Permite ingresar una cantidad inicialmente desconocida de notas, imprimir el promedio por pantalla y almacenarlo en el vector o ArrayList.
2. Volver a ingresar las notas de un alumno. Permite volver a ingresar las notas de un alumno identificado por el índice de la posición el vector o ArrayList y reemplaza el promedio.
3. Eliminar las notas de un alumno. Elimina el promedio de notas del vector o ArrayList desde una posición específica.
4. Imprimir el porcentaje de aprobados. Calcula e imprime por pantalla la cantidad y porcentaje de aprobados.
5. Salir. Termina el programa.
Pues bien, hay que empezar por mostrar ese menú, aunque no tenga ninguna funcionalidad, ni haga nada.
Tan solo hay que tener en cuenta que se ha de mostrar hasta que el usuario introduzca un 5 como opción.
Así que obviamente, el menú irá dentro de un bucle.
Y como no sabemos cuántas veces se va a repetir el bucle, porque será el usuario quien decida cuando poner fin, pues el bucle que nos conviene será un
while, o un
do whileA continuación pongo un código que podría servir para mostrar dicho menú, y pedir opción por teclado mediante la clase Scanner.
Con un switch analizaríamos que opción ha escogido el usuario, para ejecutar el código correspondiente a cada opción (de momento, no los tenemos)
Además ya tiene declarado un ArrayList para almacenar los promedios de notas, aunque todavía no hacemos nada con él:
import java.util.ArrayList;
import java.util.Scanner;
public class Promedios {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
ArrayList<Float> promedios = new ArrayList<Float>();
int opcion = 0;
do {
System.out.println("\n(1) -> Ingresar notas de nuevo alumno");
System.out.println("(2) -> Modificar notas de alumno existente");
System.out.println("(3) -> Eliminar notas de alumno existente");
System.out.println("(4) -> Imprimir porcentaje de aprobados");
System.out.println("(5) -> SALIR");
opcion = teclado.nextInt();
switch(opcion) {
case 1:
System.out.println("En construccion...");
//TODO: Codigo para ingresar notas
break;
case 2:
System.out.println("En construccion...");
//TODO: Codigo para modificar notas
break;
case 3:
System.out.println("En construccion...");
//TODO: Codigo para eliminar notas
break;
case 4:
System.out.println("En construccion...");
//TODO: Codigo para calcular y mostrar porcentaje aprobados
break;
case 5:
System.out.println("\nFIN DE PROGRAMA");
break;
default:
System.out.println("Opción equivocada");
}
}while(opcion != 5);
teclado.close();
}
}
Bien, lo primero es que te leas este código y estés seguro de que entiendes qué hace cada líneas y por qué ....
Lo que no sepas, pregúntalo.
Luego, hay que pensar en el código de cada opción..
La primera opción pide:
1. Ingresar las notas de un alumno. Permite ingresar una cantidad inicialmente desconocida de notas, imprimir el promedio por pantalla y almacenarlo en el vector o ArrayList.
Bien, hay que pedir una serie
indeterminada de notas y calcular su promedio.
Cuando dice indeterminada, es que no sabemos cuántas notas va a introducir el usuario. Él decide cuando terminar.
¿Cómo gestionamos esto?
De nuevo, obviamente pediremos notas dentro de un bucle while o do while.
Para que el usuario ponga fin a ese bucle, podemos preguntarle si quiere continuar (si o no) después de que haya introducido cada nota.
O más fácil aún, en pantalla le decimos que introduzca notas, y que inserte el valor -1 para terminar.
Con esto, ya estamos pidiendo notas hasta que el usuario quiera parar.
Con estas notas, hay que
calcular un promedio.
Es decir, cada nota que pedimos la tenemos que
acumular en una variable y además
contarla en otra variable.
Así, cuando el usuario ponga fin a la inserción de las notas, tendremos la suma de ellas acumulada y habremos contado cuántas se han introducido, justo lo que necesitamos para calcular el promedio. (acumulado / contado)
Una vez calculado, lo imprimimos en pantalla y lo guardamos en el ArrayList.
Pues con esta explicación, intenta tú escribir esta parte del código. No importa si no te sale o te equivocas (mejor, es cuando más se aprende, cometiendo errores).
Inténtalo y si no lo consigues te diré como hacerlo.
Puedes escribirlo primero en pseudocódigo (que para eso lo enseñan) por si te es más fácil crear la lógica a seguir, y luego lo trasladas a Java.
Un saludo.