Java - Cómo creo un porcentaje basado en datos ingresados por el usuario?

 
Vista:
Imágen de perfil de Antonio

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Antonio (15 intervenciones) el 12/02/2016 00:04:00
Hola, acabo de realizar un programa que recibe datos del usuario (Alumno X/Semestre X/Promedio X) pero quisiera saber, cómo hago un porcentaje de esos datos, por ejemplo, fueron 10 alumnos , 5 en 2to semestre, 2 en 3er semestre 1 en 7mo semestre, 2 en 1er semestre. Cuál es la manera adecuada o más sencilla para hacer un porcentaje dejándolo por decir un ejemplo así:

Semestre I: XXX(20%)

Semestre II: XXX(50%)

Semestre III: XXX(20%)

Semestre VIII: XXX (10%)

Mi programa es este:
https://mega.nz/#!Dc5mUSyS!L-CDvhK8LZB_gz8hP5m7ojsfCfOiUsRpZZFHgRLlfT0

Algún método?, gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Thanatos (97 intervenciones) el 12/02/2016 12:13:38
Me pareció algo extraña la estructura de tus paquetes. Generalmente la carpeta src se utiliza para mantener el código separado de los archivos compilados y no suele formar parte de los paquetes.

Te adjunto los archivos que modifiqué, como sugerencia para resolver tu duda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antonio

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Antonio (15 intervenciones) el 12/02/2016 19:22:50
Muchas Gracias, también por el consejo, es mi primer programa así que debo tener varios errores jeje :3

Por ejemplo, estoy intentando hacer un if para que no sobrepase el semestre 7 pero me marca este error:
A5phFwF

Seguramente es porque semestre no es entero, pero entiendo por qué me manda el error al 7..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Thanatos (97 intervenciones) el 12/02/2016 23:18:03
Tienes razón, el error que muestra el compilador se debe a que estás comparando dos datos de diferente tipo. Semestre es de tipo enum y 7 es un literal de tipo int.

Si te fijas en el código del enum Semestre que te envié, verás que tiene dos métodos públicos. Uno de ellos es el método getNumero(), que devuelve el valor de tipo int de la instancia que lo llame. El otro método funciona a la inversa, es decir, se le pasa un entero y devuelve el elemento de tipo Semestre correspondiente a ese número; si no existiera un elemento que corresponda con el entero, devuelve null.

Para escribir la condición que se ve en la imagen, necesitas utilizar el primer método que mencioné:

1
2
3
if (semestre.getNumero() > 7) {
 
}

Así estarías comparando el valor numérico entero de semestre con el 7.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Antonio

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Antonio (15 intervenciones) el 12/02/2016 23:59:34
Sí, verás, en todo este tiempo he seguido intentando hacer que funcione la condición, incluso, ya había utilizado
1
semestre.getNumero() > 7

Pero me marca el mismo error :c
wF2LOWb

byYFPxB

Ya no se ni que está mal ni que bien @.@
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 144
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Thanatos (97 intervenciones) el 13/02/2016 01:51:59
Como Semestre no es un tipo primitivo, cuando una variable de este tipo no es inicializada correctamente (como sucede cuando el usuario de tu programa ingresa un número de semestre que no existe), la variable termina apuntando a null.

Así que puedes utilizar esta condición:

1
2
3
if (semestre == null) {
    // el numero de semestre ingresado no existe
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
Imágen de perfil de Antonio

Cómo creo un porcentaje basado en datos ingresados por el usuario?

Publicado por Antonio (15 intervenciones) el 13/02/2016 11:11:00
Ya veo, tienes razón. Entonces con lo que me pasaste me pondré yo a practicar e intentar hacer el porcentaje para los promedios también ! a ver como me va :3

Muchas Gracias ! ;D
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar