1
C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más / Re:Ayuda en programa en java sobre vectores
« en: 24 de Septiembre 2020, 15:07 »
dejo mi solución del ejercicio!!
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Scanner;
public class ExamenU1 {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
int opcion, contProm = 0, Eliminarprom, Modificarprom;
float contadorN = 0F;
float sumaNota = 0F, promedioN, nota, Acumprom = 0;
float promedioModi, contadorModi = 0f, acumModi = 0F, notaModi;
float contNfinal = 0, porcentajeA, contNfinal1 = 0F;
String rpta;
String rpta2;
String rpta3;
ArrayList<Float> promedio = new ArrayList<>();
/*
como se puede ver se realizo un menu de opciones segun lo pedido en la evaluacion
*/
do {
System.out.println("Eliga una opcion la cual desea realizar: ");
System.out.println("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 y alumnos aprobados");
System.out.println("5. Salir");
System.out.println("Eliga su opción: ");
opcion = scnr.nextInt();
switch (opcion) {
case 1:
System.out.println("Usted eligio la opción ingresar notas ");
/*los dos ciclos do while, me realizan la acción de no saber cuantos estudiantes son ni cuantas notas son por lo tanto me permite ir agregando hasta que el usuario ni no tenga mas notas ni estudiantes*/
do {
do {
promedioN = 0F;
sumaNota = 0F;
contadorN = 0F;
/* El if me coloca la condición de que la nota sea entre 1-7
además me acumula las notas y a la vez las cuenta para calcular el promedio
en el caso de que ingrese una nota fuera de los rangos 1-7 manda un mensaje
al usuario.*/
System.out.println("Por favor ingrese la nota entre los rangos (1-7)");
nota = scnr.nextFloat();
if ((nota >= 1) && (nota <= 7)) {
sumaNota = sumaNota + nota;
contadorN = contadorN + 1;
} else {
System.out.println("Usted ingreso un valor no valido digite (si) para continuar");
}
System.out.println("Desea ingresar otra nota? (si/no)");
rpta = scnr.next();
} while (rpta.equals("si"));
promedioN = sumaNota / contadorN;
promedio.add(promedioN);
System.out.println("Desea ingresar otro estudiante (si/no) ?");
rpta2 = scnr.next();
} while (rpta2.equals("si"));
break;
case 2:
/*En el caso 2 me muestra cuantos promedios hay y cuales son. luego elimina el promedio que seleccione el usuario, para ingresar nuevas notas a través de un do while, ya que no se conocen cuantas notas va a ingresar el usuario. Igual que en el caso anterior verifica que las notas se encuentren entre los rangos 1-7. Calcula el promedio
y lo agrega a la variable donde estaba eliminado el promedio
*/
System.out.println("n° de promedios: " + promedio.size());
System.out.println("Los promedios ingresados son");
for (int i = 0; i < promedio.size(); i++) {
System.out.println(promedio.get(i));
}
System.out.println("Indique que estudiante desea modificar entre 0 y " + (promedio.size() - 1) + " : ");
Modificarprom = scnr.nextInt();
promedio.remove(Modificarprom);
do {
System.out.println("Por favor ingrese las notas entre los rangos (1-7)");
notaModi = scnr.nextFloat();
if ((notaModi >= 1) && (notaModi <= 7)) {
acumModi = acumModi + notaModi;
contadorModi = contadorModi + 1;
} else {
System.out.println("Usted ingreso un valor no valido.");
}
System.out.println("Desea ingresar otra nota (si/no)");
rpta3 = scnr.next();
} while (rpta3.equals("si"));
promedioModi = acumModi / contadorModi;
promedio.add(Modificarprom, promedioModi);
System.out.println("Su promedio " + Modificarprom + " ah sido modificado con exito");
break;
case 3:
/*
En el caso 3 me busca el numero de promedios que hay ingresados a través de un ciclo for y luego le pide al usuario que promedio desea eliminar y de acuerdo a lo que teclee el usuario mi Arraylist procede a leer el numero del usuario ingresado y lo borra
dejando un mensaje que su promedio ah sido removido.
*/
for (int i = 0; i < promedio.size(); i++) {
System.out.println(promedio.get(i));
}
System.out.println("Indique promedio de alumno a eliminar, entre 0 y " + (promedio.size() - 1));
Eliminarprom = scnr.nextInt();
promedio.remove(Eliminarprom);
System.out.println("Su promedio ah sido removido.");
break;
case 4:
/*
En el caso 4 los ciclos for me cuentan cuantos estudiantes hay en total y cuantos son aprobados a traves de una condicion, y luego hace un claculo matematico que me arroja el porcentaje de los aprobados.
y al final muestra cuantos estudiantes fueron aprobados y que porcentaje de estudiantes aprobaron.
*/
System.out.println("Usted eligio imprimir el porcentaje y numero de aprobados ");
for (int i = 0; i < promedio.size(); i++) {
contNfinal1++;
}
for (int i = 0; i < promedio.size(); i++) {
if (promedio.get(i) >= 4) {
contNfinal++;
}
}
porcentajeA = contNfinal * 100 / contNfinal1;
System.out.println("Los alumnos aprobados fueron: " + contNfinal);
System.out.println("Con un " + porcentajeA + "% de aprobados");
break;
case 5:
/*
En este caso el usuario desea salir de el programa
*/
System.out.println("Usted eligio la opcion salir");
System.out.println("Adios!!");
break;
default:
// Este caso es cuando el usuario en el menu de opciones presiona un numero fuera de las opciones dadas.
System.out.println("Usted eligio una opcion no valida");
break;
}
} while (opcion != 5);
}
}
/* una vez presionado la opción 4 y muestre los datos debe reiniciar el programa para que este comience desde 0
y así volver a agregar estudiantes nuevos y notas nuevas. */