Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: HumbertoAli en 25 de Marzo 2017, 17:30
-
Buenas, acá les dejo mis códigos del ejercicio planteado. Cualquier observación sera bien recibida.
EJERCICIO
Crea un programa en el que se pida por consola el nombre de 2 alumnos y la nota de cada uno de ellos como valor numérico. El resultado que debe mostrarse es el nombre de cada alumno, su nota y su calificación como texto (Sobresaliente, Notable, Bien o Suspenso).
Para ello crea un array numérico y otro de String (ambos unidimensionales). En el array numérico se insertarán las calificaciones facilitadas por el usuario entre 0 y 10 (debemos controlar que inserte una nota valida), pudiendo ser decimal. En el array de Strings se insertarán los nombres de los alumnos.
Crea también un array de String donde insertaremos el resultado de la nota con palabras admitiéndose estos valores: Sobresaliente, Notable, Bien o Suspenso.
El programa debe comprobar la nota de cada alumno teniendo en cuenta esta equivalencia:
Si la nota está entre 0 y 4,99 será un Suspenso.
Si la nota está entre 5 y 6,99 será un Bien.
Si la nota está entre 7 y 8,99 será un Notable.
Si la nota está entre 9 y 10 será un Sobresaliente.
Muestra por pantalla, el alumno su nota y su resultado en palabras utilizando bucles. Crea los métodos que creas convenientes.
Clase Calificacionesimport java.util.*;/**
*
* @author baseuser
*/
public class Calificaciones {
private double [] calificaciones;
private String [] nombres;
private String [] equivalencia;
public Calificaciones(){
calificaciones = new double[2];
nombres = new String [2];
equivalencia = new String [2];
}
public void insertarCalificaciones(){
Scanner sc = new Scanner(System.in);
String n;
double cali;
for(int i = 0; i < 2; i++){
System.out.print("Introduzca un nombre: ");
n = sc.next();
nombres[i] = n;
System.out.print("Calificacion: ");
cali = sc.nextDouble();
calificaciones[i] = cali;
if(cali >= 0 && cali <= 4.99){
equivalencia[i] = "Suspenso";
}
else if(cali >= 5 && cali <= 6.99){
equivalencia[i] = "Bien";
}else if(cali >= 7 && cali <= 8.99){
equivalencia[i] = "Notable";
}else if(cali >= 9 && cali <= 10){
equivalencia [i] = "Sobresaliente";
}
}
}
public void mostrarDatos(){
System.out.println("CALIFICACIONES");
for(int i = 0; i < 2; i++){
System.out.println(("Nombre: ")+nombres[i]+" nota: "+calificaciones[i]+" "+equivalencia[i]);
}
}
}
la clase TestPrograma
import java.util.*;/**
*
* @author baseuser
*/
public class TestArrayNumerico {
public static void main(String[]args){
Calificaciones notas = new Calificaciones();
System.out.println("Por favor, inserte el nombre y la nota de 2 alumnos...");
notas.insertarCalificaciones();
notas.mostrarDatos();
}
}
-
disculpa, le hice algunas modificaciones a el método insertarCalificaciones...
public void insertarCalificaciones(){
Scanner sc = new Scanner(System.in);
for(int i = 0; i < nombres.length; i++){
System.out.print("Introduzca un nombre: ");
nombres[i] = sc.nextLine();
System.out.print("Calificacion: ");
calificaciones[i] = sc.nextDouble();
sc.nextLine();//limpiar el buffer
if(calificaciones[i] >= 0 && calificaciones[i] <= 4.99){
equivalencia[i] = "Suspenso";
}
else if(calificaciones[i] >= 5 && calificaciones[i] <= 6.99){
equivalencia[i] = "Bien";
}else if(calificaciones[i] >= 7 && calificaciones[i] <= 8.99){
equivalencia[i] = "Notable";
}else if(calificaciones[i] >= 9 && calificaciones[i] <= 10){
equivalencia [i] = "Sobresaliente";
}
}
}
-
Buenas HumbertoAli, en la entrega CUU00903C hay dos ejercicios y falta el primero, es conveniente poner siempre todos los ejercicios de una entrega juntos en el mismo hilo del foro.
El programa funciona correctamente y cumple con lo que se pedía
Te indico como mejorable que cuando trabajas con programación orientada a objetos tienes que poner nombres adecuados a las clases, pensando en qué representa o qué función tiene una clase. Un nombre de clase como Calificaciones no lo veo del todo adecuado, pues la clase no representa simplemente calificaciones, sino que hace algo más amplio. Un nombre como GestorCalificaciones creo que sería más adecuado.
Salu2