Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Atlast

Páginas: [1]
1
Usando tu código me quedó así:

La clases notas:

Código: [Seleccionar]
package deber1;

import java.util.Scanner;

public class notas {

    Scanner teclado = new Scanner(System.in);

    static String[] nombres = new String[5];

    static String[] materias = new String[5];

    static double[][] notas = new double[5][3];

    public void datos() {

        for (int i = 0; i < 5; i++) {
            System.out.println("Registrando alumno #" + (i + 1));
            System.out.print("Nombre: ");
            nombres[i] = teclado.nextLine();
            System.out.print("Materia: ");
            materias[i] = teclado.nextLine();
            System.out.print("Nota 1: ");
            notas[i][0] = Double.parseDouble(teclado.nextLine());
            System.out.print("Nota 2: ");
            notas[i][1] = Double.parseDouble(teclado.nextLine());
            //La Nota 3 se autocalcula según formula.
            notas[i][2] = (((((notas[i][0] + notas[i][1]) / 2) + 0.5)) * 2) / 2;
            if(notas[i][2]>10){
                notas[i][2] =notas[i][2]- (notas[i][2] - 10);
                System.out.println("Valor autocalculado para Nota 3: " + notas[i][2]);
            }else{
                System.out.println("Valor autocalculado para Nota 3: " + notas[i][2]);
               
            }
           
            System.out.println("Alumno registrado...\n");
        }

    }

    public  void notaPromedioMasAlta() {
        /*
* Calculamos el promedio de cada Alumno
* y nos quedaremos con la más alta.
         */
        double masAlta = 0;
        int alumno = 0;

        for (int i = 0; i < notas.length; i++) {
            double sumaNotas = notas[i][0] + notas[i][1] + notas[i][2];
            double promedio = sumaNotas / 3;
            if (promedio > masAlta) {
                masAlta = promedio;
                alumno = i;
            }
        }

        System.out.printf("\nNota promedio más alta: %.2f\n", masAlta);
        System.out.println("Alumno: " + nombres[alumno]);
    }

    public  void tresNotasMasBajas() {
       

        //Construimos array con todas las notas
        double[] todasNotas = new double[15]; //5 alumnos, 3 notas: 5x3 = 15 notas
        int z = 0; //Indice para el array unidimenional
        for (int i = 0; i < notas.length; i++) {
            for (int j = 0; j < notas[0].length; j++) {
                todasNotas[z] = notas[i][j];
                z++;
            }
        }
        //Array construido, ordenamos de menor a mayor
        for (int i = 0; i < todasNotas.length - 1; i++) {
            for (int j = 0; j < todasNotas.length - i - 1; j++) {
                if (todasNotas[j + 1] < todasNotas[j]) {
                    double aux = todasNotas[j + 1];
                    todasNotas[j + 1] = todasNotas[j];
                    todasNotas[j] = aux;
                }
            }
        }
        //Array ordenado, mostramos los tres primeros

        System.out.println("\nLas tres notas más bajas son:");
        for (int i = 0; i < 3; i++) {
            System.out.println("- " + todasNotas[i]);
        }
    }

    public  void ordenaNota1() {
        /*
* Construimos array solo con notas 1
* y ordenamos de mayor a menor
         */

        double[] notas1 = new double[5];
        for (int i = 0; i < 5; i++) {
            notas1[i] = notas[i][0];
        }
        //Ordenamos
        for (int i = 0; i < notas1.length - 1; i++) {
            for (int j = 0; j < notas1.length - i - 1; j++) {
                if (notas1[j + 1] > notas1[j]) {
                    double aux = notas1[j + 1];
                    notas1[j + 1] = notas1[j];
                    notas1[j] = aux;
                }
            }
        }

        //Mostramos
        System.out.println("\nNotas 1 de MAYOR a MENOR:");
        for (int i = 0; i < 5; i++) {
            System.out.print(notas1[i] + " ");
        }
    }
}


Y la clase donde esta el menu "Deber1" :

Código: [Seleccionar]
package deber1;

import java.util.Scanner;

public class Deber1 {

    public static void main(String[] args) {
        int opcion;
        notas obj = new notas();
        Scanner teclado = new Scanner(System.in);

        do {
            System.out.println("\n\n\t\tMENU OPCIONES\n");
            System.out.println("[1] Ingresar los datos");
            System.out.println("[2] Mostrar nota promedio más alta.");
            System.out.println("[3] Mostrar las 3 notas más bajas.");
            System.out.println("[4] Ordenar de mayor a menor Nota 1.");
            System.out.println("[5] SALIR.");
            System.out.print("Elija opcion: ");
            opcion = Integer.parseInt(teclado.nextLine());
            switch (opcion) {
                case 1:
                    obj.datos();
                    break;
                case 2:
                    obj.notaPromedioMasAlta();
                    break;
                case 3:
                    obj.tresNotasMasBajas();
                    break;
                case 4:
                    obj.ordenaNota1();
                    break;
                case 5:
                    System.out.println("\n\t\tFIN DE PROGRAMA");
                    break;
                default:
                    System.out.println("\nOpcion equivocada. Escoja entre [1-4]");
            }
        } while (opcion != 5);

    }

}

2
Hola soy nuevo. Aunque la programación orientada a objetos no es parte de las asignaturas del semestre en el que me encuentro, sí hacemos uso de clases.

La próxima vez que publique en el foro trataré de hacer una mejor formulación de problema que tenga. Gracias por la ayuda, ya con eso me puedo guiar.



3
Hola, me han puesto este ejercicio para resolver en Java:

Registrar 5 alumnos con su materia y 3 calificaciones nota_1, nota_2 y nota_3; pero la nota_3 es el calculo siguiente : (((((nota_1+nota_2)/2)+0.5))*2)/2 .

Utilizar un menú con la siguientes opciones:
1. Mostrar la nota promedio mas alta.
2. Mostrar las  3 notas mas bajas.
3. Ordenar de mayor a menor la nota_1.
4. Salir


Si alguien me pudiera ayudar con este ejercicio, ya llevo cabeceando dos días con este y nada he podido avanzar.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".