Autor Tema: Código crear programa java notas estudiantes con menú y permita obtener promedio  (Leído 76685 veces)

joe

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Hola, estoy intentando resolver este problema

Crear un programa en java el cual guarde nombre , sexo , edad , y 5 notas de estudiantes . El programa debe mostrar un menú el cual le pedirá al usuario que desea realizar ( registrar estudiante , consultar estudiante , registrar notas , modificar notas . calcular promedio por cada estudiante si la nota es mayor a 12 puntos decir que esta aprobado de lo contrario esta reprobado decir cual es el estudiante con mayor promedio y con menor promedio , salir ) finalmente nos preguntara si deseamos realizar otra operación .


Código: [Seleccionar]
import java.util.*;

public class Notas_Alumnos {

public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String[] nombre = new String[10];
int[] nota1 = new int[10];
int[] nota2 = new int[10];
int[] nota3 = new int[10];
int[] nota4 = new int[10];
int[] nota5 = new int[10];
int[] edad = new int[10];
int[] cedula = new int[10];
String[] sexo = new String[10];
int x=0,y,z,resp1;
String resp2;
do{
do{
System.out.println("Registro de Alumno");
System.out.println("Seleccione una opción:");
System.out.println("1 - Registro");
System.out.println("2 - Consultar");
System.out.println("3 - Modificar");
resp1 = s.nextInt();
}while(resp1<1||resp1>3);

if(resp1==1){
if(x==10){
System.out.println("Máximo de alumnos registrados");
}
do{
System.out.print("Ingrese el nombre del alumno "+(x+1)+": ");
nombre[x] = s.next();
System.out.print("Ingrese la cedula del alumno "+(x+1)+": ");
cedula[x] = s.nextInt();
System.out.print("Ingrese la edad del alumno "+(x+1)+": ");
edad[x] = s.nextInt();
System.out.print("Ingrese sexo del alumno "+(x+1)+": ");
sexo[x] = s.next();
System.out.print("Ingrese la nota 1 del alumno "+(x+1)+": ");
nota1[x] = s.nextInt();
System.out.print("Ingrese la nota 2 del alumno "+(x+1)+": ");
nota2[x] = s.nextInt();
System.out.print("Ingrese la nota 3 del alumno "+(x+1)+": ");
nota3[x] = s.nextInt();
System.out.print("Ingrese la nota 4 del alumno "+(x+1)+": ");
nota4[x] = s.nextInt();
System.out.print("Ingrese la nota 5 del alumno "+(x+1)+": ");
nota5[x] = s.nextInt();
x++;
do{
System.out.println("¿Desea registrar otro alumno?");
System.out.println("1 - si");
System.out.println("2 - no");
}while(resp1<1||resp1>2);
resp1 = s.nextInt();
}while(resp1==1);
}

if(resp1==3){
if(x<=0){
System.out.println("No existen alumnos registrados");
}
do{
System.out.println("Ingrese nombre del alumno que desea consultar: ");
resp1 = s.nextInt();
for(int i=0;i<10;i++){
if(resp1==cedula[i]){
System.out.println("Nombre del alumno: "+nombre[(i+1)]);
System.out.println("Edad del alumno: "+edad[(i+1)]);
System.out.println("Sexo del alumno: "+sexo[(i+1)]);
System.out.println("Nota 1 del alumno: "+nota1[(i+1)]);
System.out.println("Nota 2 del alumno: "+nota2[(i+1)]);
System.out.println("Nota 3 del alumno: "+nota3[(i+1)]);
System.out.println("Nota 4 del alumno: "+nota4[(i+1)]);
System.out.println("Nota 5 del alumno: "+nota5[(i+1)]);
}
}
do{
System.out.println("¿Desea consultar otro alumno?");
System.out.println("1 - si");
System.out.println("2 - no");
resp1 = s.nextInt();
}while(resp1<1||resp1>2);
}while(resp1==1);
}


do{
System.out.println("¿Desea realizar alguna otra operación?");
System.out.println("1 - si");
System.out.println("2 - no");
resp1 = s.nextInt();
}while(resp1<1||resp1>2);
}while(resp1==1);
}
« Última modificación: 24 de Septiembre 2020, 12:04 por Alex Rodríguez »

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:quien me ayuda con esto
« Respuesta #1 en: 26 de Noviembre 2016, 13:34 »
Buenos días.
La verdad no entendí muy bien el enunciado.No se si pide la nota de 5 estudiantes o si pide 5 notas de cada estudiante.

Aquí tienes una posible solución con una sola nota por estudiante:

Código: [Seleccionar]
import java.util.*;
public class Alumno {
    private int idAlumno;
    private String nombre; 
    private String sexo;
    private int edad;
    private Double nota;
    private String calificacion;
    public Alumno(int idAlumno, String nombre,String sexo,int edad,Double nota) {
        this.idAlumno = idAlumno;   this.nombre = nombre;    this.sexo=sexo;
        this.edad=edad; this.nota=nota;}

    public void setNota(Double nota){this.nota=nota;}
    public void setCalificacion(String calificacion){this.calificacion=calificacion;}
    @Override
    public String toString() { return "ID Alumno: "+idAlumno+" Nombre: "+nombre+" Sexo: "+sexo+" Edad: "+edad+" Nota: "+nota+"  "+calificacion+"\n";  }
  }


Código: [Seleccionar]
import java.util.*;

public class Programa  {
    public static void main (String []args)      {
        List<Alumno> cjsp = new ArrayList<Alumno>();     
        Scanner entradaTeclado = new Scanner(System.in);
        String respuesta;       
        int i=1;
        do{
            String calificacion="Suspendido";
            System.out.println("Registro de Alumnos \n");
            System.out.println("Seleccione una opción:");
            System.out.println("1 - Registrar un alumno ");
            System.out.println("2 - Consultar un alumno ");
            System.out.println("3 - Modificar notas ");
            System.out.println("4 - Ver clase completa ");
            System.out.println("5 - Salir ");
            respuesta = entradaTeclado.next();           
            switch (respuesta){
                case "1":                 
                System.out.println("Nombre de alumno");
                String nombre = entradaTeclado.next();       
                System.out.println("Sexo del alumno");
                String sexo = entradaTeclado.next();
                System.out.println("Edad del alumno");
                int edad = entradaTeclado.nextInt();
                System.out.println("Nota del alumno");
                Double nota = entradaTeclado.nextDouble();               
                if (nota>=12){calificacion="Aprobado";
                }           
                Alumno p = new Alumno(i,nombre,sexo,edad,nota);
                p.setCalificacion(calificacion);
                cjsp.add(p);               
                i++;       
                respuesta="0";               
                break;
                case "2":
                System.out.println("Introduce la id del alumno a consultar :");
                int id = entradaTeclado.nextInt();
                if (cjsp.size()<id){System.out.println("Hay "+cjsp.size()+" alumnos registrados");
                }else{System.out.println(cjsp.get(id-1));}
                respuesta="0";
                break;
                case "3":
                System.out.println("Introduce la id del alumno a modificar :");
                id = entradaTeclado.nextInt();
                if (cjsp.size()<id){System.out.println("Hay "+cjsp.size()+" alumnos registrados");
                }else{
                    System.out.println(cjsp.get(id-1));
                    System.out.println("Escribe la nueva nota");
                    Double nuevaNota=entradaTeclado.nextDouble();
                    if (nuevaNota>=12){calificacion="Aprobado";
                    }                                 
                    cjsp.get(id-1).setNota(nuevaNota);
                    cjsp.get(id-1).setCalificacion(calificacion);
                    System.out.println(cjsp.get(id-1));
                }
                respuesta="0";
                break;
                case "4":
                System.out.println("Alumnos en la clase: \n"+cjsp);
                respuesta="0";
                break;
                case "5":
                System.out.println("Adios");
                respuesta="1";
                break;
                default:
                System.out.println("Opción invalida.Debes elegir 1,2,3,4 ó 5");
                respuesta="0";
            }
        }while (respuesta=="0");     
    }
}

Un saludo
« Última modificación: 03 de Diciembre 2016, 20:25 por Alex Rodríguez »

joe

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Re:quien me ayuda con esto
« Respuesta #2 en: 27 de Noviembre 2016, 17:17 »
gracias me sirvió mucho era 5 notas diferente

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil
Re:quien me ayuda con esto
« Respuesta #3 en: 28 de Noviembre 2016, 04:25 »
Buenos días.

Me alegro de haberte sido de ayuda.
Ahora prueba tu a modificar el programa para que sea para 5 notas.Si tienes alguna duda,aquí estamos para ayudarte.
Un saludo.

paSantander

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
Buenas noches @EsoJ, estuve utilizando el programa echo por ti.
Cuando registras un alumno,  La hora que pones el nombre, añadiendo espacios salta las lecturas del teclado. Eso porque seria?

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 737
    • Ver Perfil
Buenas noches @EsoJ, estuve utilizando el programa echo por ti.
Cuando registras un alumno,  La hora que pones el nombre, añadiendo espacios salta las lecturas del teclado. Eso porque seria?

Porque está usando el método next() para leer los datos, método que solo acepta una palabra.

Para leer más de una palabra hay que usar el método nextLine().

Aún así, esto supondrá otros problemas, porque si previamente se ha leido algún dato numérico con nextInt(), nextDouble() o similar....el próximo nextLine() no funcionará y el programa se lo saltará.

Mi consejo para evitar estos problemas es leer los datos por teclado siempre con el método nextLine().

Ejemplo:
Código: [Seleccionar]
System.out.println("Introduce nombre y apellidos:")
String datos = entradaTeclado.nextLine();

Y si lo que necesitamos son datos numéricos, también usamos nextLine(), pero parseando el valor leído al tipo de dato que necesitemos.

Ejemplos:
Código: [Seleccionar]
System.out.println("Introduce edad:")
int edad = Integer.parseInt(entradaTeclado.nextLine());

Código: [Seleccionar]
System.out.println("Introduce temperatura:")
double tempe= Double.parseDouble(entradaTeclado.nextLine());


De este modo, se evitan problemas inherentes al funcionamiento interno de la clase Scanner.
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

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".