Skip to content

Commit

Permalink
Merge pull request #8 from sebaignacioo/Asistencia
Browse files Browse the repository at this point in the history
Agregada asistencia a alumnos csv y correcciones menores
  • Loading branch information
sebaignacioo committed Oct 24, 2021
2 parents 1998deb + 5bc3d11 commit 628be17
Show file tree
Hide file tree
Showing 8 changed files with 848 additions and 790 deletions.
720 changes: 360 additions & 360 deletions datafiles/alumno.csv

Large diffs are not rendered by default.

720 changes: 360 additions & 360 deletions datafiles/apoderado.csv

Large diffs are not rendered by default.

48 changes: 24 additions & 24 deletions datafiles/curso.csv
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
1,A,32290852-7
1,B,26149570-2
2,A,29064680-3
2,B,31485716-1
3,A,34668632-6
3,B,34830764-2
4,A,25523213-7
4,B,27264893-4
5,A,26787628-5
5,B,26263541-7
6,A,32124316-4
6,B,27939723-1
7,A,34158355-1
7,B,31621020-8
8,A,32250765-1
8,B,30609604-6
9,A,28975869-5
9,B,25179087-5
10,A,32690030-7
10,B,33020173-3
11,A,33777725-3
11,B,25921138-2
12,A,32661047-1
12,B,25014501-7
1,A,32434028-2
1,B,28226755-4
2,A,28248878-4
2,B,29160612-7
3,A,31333460-5
3,B,31090624-8
4,A,33909614-7
4,B,25763464-8
5,A,25774033-8
5,B,26990079-6
6,A,33897070-4
6,B,33631683-1
7,A,31020901-5
7,B,34418879-5
8,A,27310687-0
8,B,26731646-4
9,A,27490890-8
9,B,33168453-8
10,A,25653349-3
10,B,25391376-6
11,A,29973945-5
11,B,29785221-8
12,A,26831372-8
12,B,34226309-6
72 changes: 48 additions & 24 deletions datafiles/profesor.csv
Original file line number Diff line number Diff line change
@@ -1,24 +1,48 @@
32290852-7,Towanda,Howell,Brown,Bachelor of Commerce,chester.kuhic@gmail.com,958484220
26149570-2,Melvina,Stehr,Hammes,Bachelor of Business,tim.swift@gmail.com,964962075
29064680-3,Ramon,Miller,Rice,Bachelor of Forensic Science,sharice.keebler@gmail.com,979436161
31485716-1,Tommie,Pagac,Veum,Bachelor of Information Systems,farah.hahn@gmail.com,958018159
34668632-6,Irene,Kuvalis,Bernier,Associate Degree in Psychology,lionel.crooks@hotmail.com,994742247
34830764-2,Mahalia,Crona,Mertz,Bachelor of Engineering,eldridge.hermiston@gmail.com,981289518
25523213-7,Samuel,Hilll,Botsford,Bachelor of Criminology,jeremy.pfeffer@yahoo.com,952614025
27264893-4,Junita,Bashirian,Dach,Bachelor of Commerce,anderson.robel@yahoo.com,989752378
26787628-5,Normand,Auer,Hackett,Associate Degree in Biological Science,tish.kunze@hotmail.com,947027390
26263541-7,Cedric,Hansen,Mraz,Master of Law,melonie.lueilwitz@gmail.com,983636953
32124316-4,Emanuel,Wilkinson,Langworth,Associate Degree in Applied Science (Psychology),jean.hilpert@yahoo.com,952676344
27939723-1,Augustus,Orn,Schumm,Master of Biological Science,dorsey.monahan@yahoo.com,949138031
34158355-1,Clark,Turcotte,Littel,Master of Engineering,franklyn.spinka@yahoo.com,986500592
31621020-8,Shannan,Will,Schumm,Bachelor of Applied Science (Psychology),latia.luettgen@gmail.com,984963768
32250765-1,Dave,Toy,O'Hara,Master of Business,lionel.ullrich@hotmail.com,961099715
30609604-6,Chadwick,Nolan,Metz,Bachelor of Commerce,rico.halvorson@gmail.com,946541677
28975869-5,Darline,Koelpin,Wilderman,Associate Degree in Psychology,stacia.waelchi@gmail.com,949485043
25179087-5,Alaina,Lubowitz,Crooks,Master of Psychology,star.gislason@yahoo.com,972404054
32690030-7,Inocencia,Kiehn,Ferry,Master of Nursing,winston.hermiston@yahoo.com,958311343
33020173-3,Louetta,Farrell,Marks,Master of Education,laree.breitenberg@yahoo.com,964174508
33777725-3,Santana,Frami,Greenholt,Master of Business,edmond.bailey@hotmail.com,965428490
25921138-2,Delmer,Bechtelar,Robel,Bachelor of Creative Arts,delbert.zulauf@gmail.com,974092723
32661047-1,Leopoldo,Hermann,Ledner,Master of Creative Arts,stuart.shields@gmail.com,998528877
25014501-7,Larita,Donnelly,Mills,Associate Degree in Education,collene.gleichner@gmail.com,970880031
32434028-2,Elwood,Block,Kautzer,Bachelor of Medicine,cherelle.hackett@yahoo.com,969847270
32434028-2,Elwood,Block,Kautzer,Bachelor of Medicine,cherelle.hackett@yahoo.com,969847270
28226755-4,Gilberto,Prosacco,Nienow,Bachelor of Commerce,harley.parker@hotmail.com,986817918
28226755-4,Gilberto,Prosacco,Nienow,Bachelor of Commerce,harley.parker@hotmail.com,986817918
28248878-4,Diann,Jakubowski,Windler,Bachelor of Creative Arts,kathe.ziemann@yahoo.com,952535913
28248878-4,Diann,Jakubowski,Windler,Bachelor of Creative Arts,kathe.ziemann@yahoo.com,952535913
29160612-7,Lonny,Predovic,Terry,Master of Biological Science,mark.nitzsche@hotmail.com,984523866
29160612-7,Lonny,Predovic,Terry,Master of Biological Science,mark.nitzsche@hotmail.com,984523866
31333460-5,Bart,Langosh,Reichert,Bachelor of Information Systems,danette.gulgowski@hotmail.com,976359080
31333460-5,Bart,Langosh,Reichert,Bachelor of Information Systems,danette.gulgowski@hotmail.com,976359080
31090624-8,Laurence,Kozey,Ward,Associate Degree in Biological Science,malika.schmidt@hotmail.com,994891352
31090624-8,Laurence,Kozey,Ward,Associate Degree in Biological Science,malika.schmidt@hotmail.com,994891352
33909614-7,Tammi,Lebsack,Abbott,Master of Communications,kimbery.von@gmail.com,942821724
33909614-7,Tammi,Lebsack,Abbott,Master of Communications,kimbery.von@gmail.com,942821724
25763464-8,Isabelle,Kunde,Satterfield,Bachelor of Biomedical Science,tayna.williamson@gmail.com,940517408
25763464-8,Isabelle,Kunde,Satterfield,Bachelor of Biomedical Science,tayna.williamson@gmail.com,940517408
25774033-8,Lorette,Crooks,Baumbach,Bachelor of Medicine,cristobal.turner@hotmail.com,976107717
25774033-8,Lorette,Crooks,Baumbach,Bachelor of Medicine,cristobal.turner@hotmail.com,976107717
26990079-6,Roma,Moore,Heaney,Associate Degree in Information Systems,asa.beatty@yahoo.com,996163239
26990079-6,Roma,Moore,Heaney,Associate Degree in Information Systems,asa.beatty@yahoo.com,996163239
33897070-4,Stephaine,Cormier,Harvey,Associate Degree in Nursing,sheridan.boyle@hotmail.com,952786558
33897070-4,Stephaine,Cormier,Harvey,Associate Degree in Nursing,sheridan.boyle@hotmail.com,952786558
33631683-1,Donte,Schulist,Langosh,Bachelor of Information Systems,lester.homenick@hotmail.com,946898716
33631683-1,Donte,Schulist,Langosh,Bachelor of Information Systems,lester.homenick@hotmail.com,946898716
31020901-5,Pearly,Schiller,Kuvalis,Bachelor of Psychology,philip.hane@yahoo.com,993892887
31020901-5,Pearly,Schiller,Kuvalis,Bachelor of Psychology,philip.hane@yahoo.com,993892887
34418879-5,Roma,Lang,Koss,Bachelor of Communications,sang.lueilwitz@yahoo.com,959556244
34418879-5,Roma,Lang,Koss,Bachelor of Communications,sang.lueilwitz@yahoo.com,959556244
27310687-0,Virgen,Schowalter,Waters,Master of Design,wilmer.marvin@yahoo.com,944302273
27310687-0,Virgen,Schowalter,Waters,Master of Design,wilmer.marvin@yahoo.com,944302273
26731646-4,Jesse,Hilpert,Nader,Associate Degree in Teaching,ranae.wisoky@yahoo.com,942873268
26731646-4,Jesse,Hilpert,Nader,Associate Degree in Teaching,ranae.wisoky@yahoo.com,942873268
27490890-8,Isaura,Stamm,Crooks,Bachelor of Psychology,alfonzo.yundt@yahoo.com,954329576
27490890-8,Isaura,Stamm,Crooks,Bachelor of Psychology,alfonzo.yundt@yahoo.com,954329576
33168453-8,Alvaro,Shanahan,Rolfson,Bachelor of Business,markus.okuneva@hotmail.com,990582726
33168453-8,Alvaro,Shanahan,Rolfson,Bachelor of Business,markus.okuneva@hotmail.com,990582726
25653349-3,Odilia,Cummings,Hermann,Bachelor of Health Science,ray.steuber@hotmail.com,983744054
25653349-3,Odilia,Cummings,Hermann,Bachelor of Health Science,ray.steuber@hotmail.com,983744054
25391376-6,Adolfo,Mayer,Fisher,Associate Degree in Biological Science,loise.mitchell@gmail.com,974208163
25391376-6,Adolfo,Mayer,Fisher,Associate Degree in Biological Science,loise.mitchell@gmail.com,974208163
29973945-5,Kary,Schaden,Schumm,Master of Information Systems,franklyn.veum@gmail.com,947077051
29973945-5,Kary,Schaden,Schumm,Master of Information Systems,franklyn.veum@gmail.com,947077051
29785221-8,Zora,Cormier,Kovacek,Associate Degree in Law,lavette.wehner@yahoo.com,984601092
29785221-8,Zora,Cormier,Kovacek,Associate Degree in Law,lavette.wehner@yahoo.com,984601092
26831372-8,Jerrold,Welch,Kozey,Bachelor of Biomedical Science,deon.hessel@gmail.com,984419324
26831372-8,Jerrold,Welch,Kozey,Bachelor of Biomedical Science,deon.hessel@gmail.com,984419324
34226309-6,Harley,Swift,Glover,Associate Degree in Biomedical Science,dayle.toy@gmail.com,947774112
34226309-6,Harley,Swift,Glover,Associate Degree in Biomedical Science,dayle.toy@gmail.com,947774112
Original file line number Diff line number Diff line change
Expand Up @@ -144,13 +144,13 @@ private void menuAsistencia(short opt) throws IOException {
UtilsCLI.mensajeDespedida();
System.exit(0);
case 1:
// Todo: Registrar asistencia
UtilsCLI.imprimirFuncionalidadNoImplementada();
this.asistenciaController.alumnoMejorAsistencia();
UtilsCLI.imprimirEsperaEnter();
this.menuCLI.getLector().readLine();
break;
case 2:
this.asistenciaController.alumnoMejorAsistencia();
// Todo: Registrar asistencia
UtilsCLI.imprimirFuncionalidadNoImplementada();
UtilsCLI.imprimirEsperaEnter();
this.menuCLI.getLector().readLine();
break;
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/aplicacion/data/datafile/AlumnoDatafile.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@
import aplicacion.data.AlumnoData;
import aplicacion.models.Alumno;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.lang.reflect.Array;
import java.util.*;

/**
* Clase que permite la interacción con el archivo de texto plano que almancena
Expand Down Expand Up @@ -44,6 +42,9 @@ public String alumnoToCSV(Alumno alumno) {
dataList.add(alumno.getApPaterno());
dataList.add(alumno.getApMaterno());
dataList.add(alumno.getApoderado().getRut());
for (float[] diasAsistencia: alumno.getAsistencia().getAsistenciaMatriz()) {
dataList.add(Arrays.toString(diasAsistencia));
}
return Datafile.listToCSV(dataList);
}

Expand All @@ -55,6 +56,7 @@ public String alumnoToCSV(Alumno alumno) {
* @return Alumno
*/
public Alumno alumnoFromCSV(String csv) {
// Todo: Leer asistencia desde el csv
String[] parts = csv.split(",");
return new Alumno(parts[2],
parts[3],
Expand Down
27 changes: 16 additions & 11 deletions src/main/java/aplicacion/models/RegistroAsistencia.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package aplicacion.models;

import java.util.Random;

/**
* Clase que registra la asistencia de un alumno, para un año escolar completo.
*
Expand All @@ -18,8 +16,17 @@ public class RegistroAsistencia {
*/
public RegistroAsistencia() {
// Considera 31 días máximo por mes, desde Marzo (índice 0) a Diciembre (índice 9).
this.asistencia = new float[31][10];
this.asistencia = new float[10][31];
this.contadorDias = new int[10];

}

public float[][] getAsistenciaMatriz() {
return this.asistencia;
}

public void setAsistenciaMatriz(float[][] asistencia) {
this.asistencia = asistencia;
}

/**
Expand All @@ -29,9 +36,9 @@ public RegistroAsistencia() {
* @param dia El día para el que se quiere registrar la asistencia
* @param mes El mes para el que se quiere registrar la asistencia
*/
public void registrarAsistencia(float valor, int dia, int mes) {
if ((mes >= 3 && mes <= 12) && (dia >= 1 && dia <= 31))
this.asistencia[dia][mes] = valor;
public void registrarAsistencia(float valor, int mes, int dia) {
if ((mes >= 0 && mes <= 9) && (dia >= 0 && dia <= 30))
this.asistencia[mes][dia] = valor;
this.contadorDias[mes]++;
}

Expand All @@ -43,9 +50,9 @@ public void registrarAsistencia(float valor, int dia, int mes) {
public float obtenerAsistencia() {
float totalDiasAsistidos = 0;

for (int i = 0; i < 10; i++){
for (int j = 0; j < 31; j++){
if (Float.compare(this.asistencia[j][i], 1.0f) == 0 || Float.compare(this.asistencia[j][i], 0.5f) == 0){
for (int mes = 0; mes < 10; mes++){
for (int dia = 0; dia < 31; dia++){
if (Float.compare(this.asistencia[mes][dia], 1.0f) == 0 || Float.compare(this.asistencia[mes][dia], 0.5f) == 0){
totalDiasAsistidos++;
}
}
Expand Down Expand Up @@ -81,7 +88,6 @@ public float obtenerAsistencia(int dia, int mes) {
*
* @return Porcentaje de retiros (entre 0 y 1).
*/

public float obtenerRetiros() {
float totalDiasRetirado = 0;

Expand All @@ -97,5 +103,4 @@ public float obtenerRetiros() {
return 0.0f;
}


}
35 changes: 31 additions & 4 deletions src/main/java/utils/fakedata/Fakedata.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@
import aplicacion.data.datafile.ApoderadoDatafile;
import aplicacion.data.datafile.CursoDatafile;
import aplicacion.data.datafile.ProfesorDatafile;
import aplicacion.models.Alumno;
import aplicacion.models.Apoderado;
import aplicacion.models.Curso;
import aplicacion.models.Profesor;
import aplicacion.models.*;
import com.github.javafaker.Faker;
import java.util.Random;

/**
* Clase que permite generar datos falsos y almacenarlos en los archivos de
Expand Down Expand Up @@ -70,6 +68,34 @@ public Alumno generateAlumno(Apoderado ap, int nivel, char paralelo) {
return new Alumno(rut, nombres, ap.getApPaterno(), apMat, nivel, paralelo, ap);
}

/**
* Genera asistencia, ausencias y retiros aleatorios a un alumno a base de una distribución normal
*
* @return registroAsistencia Registro de asistencia con valores en dias inicializados
*/
public RegistroAsistencia generateAsistencia(){
RegistroAsistencia registroAsistencia = new RegistroAsistencia();
float randomNormal, randomDistribucionAsistir, randomDistribucionRetirarse;
Random random = new Random();
randomDistribucionAsistir = (float) (random.nextGaussian() * 15 + 75);
randomDistribucionRetirarse = (float) (random.nextGaussian() * 6 + 13);

for (int mes = 0; mes <= 9; mes++) {
for (int dia = 0; dia <= 30; dia++) {
randomNormal = random.nextFloat() * 100.0f;
if (randomNormal <= randomDistribucionAsistir) {
randomNormal = random.nextFloat() * 100.0f;
if (randomNormal <= randomDistribucionRetirarse)
registroAsistencia.registrarAsistencia(0.5f, mes, dia);
else
registroAsistencia.registrarAsistencia(1.0f, mes, dia);
}else
registroAsistencia.registrarAsistencia(0.0f, mes, dia);
}
}
return registroAsistencia;
}

/**
* Genera profesor ficticio
*
Expand Down Expand Up @@ -104,6 +130,7 @@ public void generateFakedata() {
for (int k = 0; k < 15; k++) {
apoderado = generateApoderado();
alumno = generateAlumno(apoderado, i, j);
alumno.setAsistencia(generateAsistencia());
alumnoDatafile.insertAlumno(alumno);
}
}
Expand Down

0 comments on commit 628be17

Please sign in to comment.