Foro sobre Java SE > ayuda con un trabajo
Pedir que te hagan los deberes de clase no está bien visto en los foros y grupos de noticias de programación. Es como si un estudiante de Medicina pidiera a otra gente que le hiciera un bypass en el cadáver que tiene sobre la mesa de prácticas. ¿Te fiarías de ese médico cuando estuviera ejerciendo de verdad? :-)
De todas formas, creo que te estás liando en algo bastante tonto. Si, por simplificar, tienes 6 meses de 31 días, tienes 31 * 6 = 186 días. Como ha habido 20 alumnos, en total ha habido 186 * 20 = 3720 asistencias posibles.
Si, recorriendo la estructura de datos que tengas, cuentas que ha habido en total 250 fallas o ausencias, entonces 250 * 100 / 3720 te dará un porcentaje de ausencias del 6,7 %. Si un alumno ha faltado cinco veces en el curso, habrá faltado 5 * 100 / 186 = 2,69 %. Si 3 alumnos han faltado en un mismo día, el porcentaje será 3 * 100 / 20 = 15 %.
En cuanto a la estructura de datos, quizá la forma más económica en uso de memoria sería un array de objetos de la clase Falla:
public class Falla {
private int idAlumno;
private int mes;
private int dia;
// getters y setters
}
Si lo guardas en un array en memoria, se asume que el volumen de datos no será enorme. Si lo fuera, esta clase se guardaría en una tabla de una base de datos que podría tener un índice por idAlumno y otro por mes, para acelerar las búsquedas.
rickiees

hola soy daniel reyes de bogota colombia, y necesito que me ayuden con un ejercicio que me mandaron hacer para hoy, es el siguiente:
un profesor toma la asistencia a sus cursos ya que desde la administración se le ha solicitado un reporte que contenga lo siguiente:
-porcentaje de fallas de asistencia del curso
-porcentaje de fallas de un alumno en particular
-porcentaje de fallas de un día específico
para efecto de simplificacion suponer:
-el curso tiene 20 estudiantes
-el curso tiene una duracion de 6 meses
-No se diferencia el semestre (i- ii)
-el semestre empieza el 1 de enero y termina el 31 de julio
-todos los meses se consideran de 31 dias
esto contiene algo de porcentaje, lo cual no lo se en programacion
ademas, cuando intenté hacerlo, lo hice por una matriz, pero no me hace lo correcto
por favor respondanme hoy mismo pq esa tarea la tengo para el lunes
gracias