My Java program does not allow me to enter a menu

2

The program makes the capture of qualifications and names Get the averages

In option 1 when he told me that I do not want another process he does not send me the main menu

In option 2 I can not enter a sorting method

In option 3, which is the exit, it does not take me out of the program.

import java.io.*;
public class examen
{
   public static void main (String[]args)throws IOException
   {

  BufferedReader br = new BufferedReader (new InputStreamReader(System.in));

  int numero;
  String [] nombre = new String [10];

  float calificacion1=0;
  float calificacion2=0;
  float calificacion3=0;
  float promedio=0;
  int totalaprobados = 0;
  int totalreprobados = 0;
  int i = 0;
  int otro=0;
  int opcion=0;
  int x=0;
  int cuenta;
  int  y=0;      
  int aux=0;
  String auxnombre;
  int opciones=0;
  int salir=0;

  int contador=0;
  int regresar=0;

  do
  { 
     do
     {
        contador= 1;
        System.out.println("MENU PRINCIPAL \n 1. Captura \n 2. Consulta \n 3. Salida");
        opcion=Integer.parseInt(br.readLine());

        if(opcion==1)
        {
           i=i+1;
           System.out.println("¿Cuall es tu nombre?");         
           nombre[i]=br.readLine();
           nombre[i]=nombre[i].toUpperCase();
           do{
              System.out.println("Dame tu primer calificación");
              calificacion1=Float.parseFloat(br.readLine());
              if(calificacion1>10)
              {
                 System.out.println("Valor incorrecto");
              }
           }while(calificacion1>10);
           do{
              System.out.println("Dame tu segunda calificación");
              calificacion2=Float.parseFloat(br.readLine());
              if(calificacion2>10)
              {
                 System.out.println("Valor incorrecto");
              }
           }while(calificacion2>10);
           do{
              System.out.println("Dame tu tercera calificación");
              calificacion3=Float.parseFloat(br.readLine());
              if(calificacion3>10)
              {
                 System.out.println("Valor incorrecto, intentarlo de nuevo");
              }

           }while (calificacion3>10);
           System.out.println("Desea otro proces0? 1.Si 2.No");
           otro= Integer.parseInt(br.readLine());


        }   
     }while (otro==1);

     if(opcion==2)
     {
        if(contador==1)
        {  

           promedio=(calificacion1+calificacion2+calificacion3)/3;
           if (promedio<7)
           {
              System.out.println("Promedio"+promedio+"Reprobado");
              totalreprobados++;
           }
           else
           {
              System.out.println("Promedio"+promedio+"Aprobado");
              totalaprobados++;
           }




        }

        if(opcion==3)
        {   
           System.out.println(" OPCION NUMERO TRES \n 1. Totales \n 2. Salida "); 
           opciones=Integer.parseInt(br.readLine());
           if(opciones==2)
           {
              do{     

                 System.out.println("¿Desea salir del programa? 1.SI  2.NO");    
                 salir=Integer.parseInt(br.readLine());              


                 if (salir==1 && salir>2)
                 {
                    System.out.println(" Disculpe opcion no valida ");
                 }
              }while(salir==0 && salir>2);
              if (salir==1)
              {

                 System.out.println("Hasta pronto");
                 System.exit(0);

              }
           }
           if(opciones==1)
           {
              System.out.println("Nombre "+nombre);
              System.out.println("El total de alumnos aprobados es de"+totalaprobados);
              System.out.println("El total de alumnos reprobados es de"+totalreprobados);        
           }           

        }

     }
     while(opcion!=3);
  }while(opcion!=4);  

}
}
    
asked by Cristina Gutierrez 09.02.2017 в 17:22
source

1 answer

0

You just have not ordered your sentences ..... You must show the user how many times the menu is necessary so you must put it in the first do-while.

     do{
         //Aqui lo que quieres que se repita en este caso el menú
         System.out.println("MENU PRINCIPAL \n 1. Captura \n 2. Consulta \n 3. Salida");
         opcion=Integer.parseInt(br.readLine());

         if(opción < 1 || opcion >3)
             System.out.println("Solo ingrese las opciones indicadas");
        do{ 
            if(opción == 1){
               i=i+1;
               System.out.println("¿Cuall es tu nombre?");         
               nombre[i]=br.readLine();
               nombre[i]=nombre[i].toUpperCase();
               do{
                  System.out.println("Dame tu primer calificación");
                  calificacion1=Float.parseFloat(br.readLine());
                  if(calificacion1>10 || calificación1 < 0)
                     System.out.println("Valor incorrecto");
              }while(calificacion1>10 || calificación1 < 0);
              do{
                 System.out.println("Dame tu segunda calificación");
                 calificacion2=Float.parseFloat(br.readLine());
                 if(calificacion2>10 || calificación2 < 0)
                    System.out.println("Valor incorrecto");
              }while(calificacion2>10 || calificación2 < 0);
              do{
                 System.out.println("Dame tu tercera calificación");
                 calificacion3=Float.parseFloat(br.readLine());
                 if(calificacion3>10)
                    System.out.println("Valor incorrecto, intentarlo de nuevo");
             }while (calificacion3>10);
             System.out.println("Desea otro proces0? 1.Si 2.No");
             otro= Integer.parseInt(br.readLine());
           }while(otro == 1)
           if(opcion == 2){
                //aqui no se porque no puede usar un metodo de ordenamiento
                //suponiendo que tienes un metodo que recibe un arreglo y lo ordena yregresa otro arreglo solo haces lo siguiente...
                string[] arregloOrdenado = metodoOrdenaArreglo(arregloDesordenado);
           }
           if(opcion == 3){
             //Aqui va algo...
             if (salir==1) {
                   System.out.println("Hasta pronto");
                   System.exit(0); // o breack
                   opción = 4
             }
           }
     }while( opción != 4)
    
answered by 09.02.2017 в 19:43