Buen dia... amigos
Tengo una duda, y creo q alguno si no es que muchos tendran una idea sobre como resolver mi duda... y de antemano gracias.
Estoy haciendo un proyecto de vacaciones que me han dejado en el Tecnologico, el problema que se me ha presentado en mi programa, es que al entrar a una opcion me manda al submenu y al regresar, regresa bien, pero al momento de entrar a el submenu de el menu 2, lo hace bien, al momento de regresar al menu 2 regresa bien, pero al querer regresar de el menu 2 al menu 1, ya no puedo y solo me quedo estancado en el menu 2....
No se si hayan entendido mi problema.
de igual forma aqui les dejo el codigo
import java.io.*;
import java.util.*;
public class proba
{
public static void main (String[]args)throws IOException
{
BufferedReader leer=new BufferedReader (new InputStreamReader (System.in));
Scanner input=new Scanner(System.in);
int menu0001=0,menu0002=0;
int menuprincipal=0;
int regresamenuprincipal=0;
int regresamenu0001=0;
int control [];
control = new int [5];
String []alumno=new String [5];
String []carrera=new String [5];
int x;
do{
if (regresamenuprincipal==0);
System.out.println ("[1] ALTAS");
System.out.println ("[2] BAJAS");
System.out.println ("[3] CAMBIOS");
System.out.println ("[4] SALIR");
do{
System.out.print ("INTRODUZCA EL N° DE LA OPCION: ");
menuprincipal = Integer.parseInt(leer.readLine());
if ((menuprincipal>4)||(menuprincipal<1))
{
System.out.println ("NO EXISTE LA OPCION SELECCIONADA");
}
}while ((menuprincipal>4)||(menuprincipal<1));
System.out.println ("");
//INICIA MENU PRINCIPAL
switch (menuprincipal)
{
case 1:
//INICIA MENU DE ALTAS
do{
if(regresamenu0001==1)
System.out.println ("°°°°°°°°°°°°°°°°°");
System.out.println ("ENTRO A ALTAS");
System.out.println ("");
System.out.println ("------------------");
System.out.println ("[1] ALUMNOS");
System.out.println ("[2] CALIFICACIONES");
System.out.println ("[3] ACTIVIDAD");
System.out.println ("[4] REGRESAR");
System.out.println ("°°°°°°°°°°°°°°°°°");
System.out.print ("INTRODUZCA EL N° DE LA OPCION: ");
menu0001 = Integer.parseInt(leer.readLine());
switch (menu0001)
{
case 1:
int seleccion=0;
System.out.println("[1] AGREGAR ALUMNOS");
System.out.println("[0] REGRESAR");
System.out.println("");
System.out.print ("INTRODUZCA EL N° DE LA OPCION: ");
seleccion = Integer.parseInt(leer.readLine());
//INICIA SWITCH CREADO PARA AGREGAR ALUMNOS O REGRESAR
switch (seleccion)
{
//INICIA CASE PARA EL PRIMER ALUMNO
case 1:
if ((control[0]>0)&&(control[1]>0)&&(control[2]>0)&&(control[3]>0)&&(control[4]>0))
{
int sitodolleno=0;
System.out.println("///////////////////////////////////////////");
System.out.println("LO SENTIMOS PERO TODOS LOS CAMPOS ESTAN OCUPADOS");
System.out.println("///////////////////////////////////////////");
System.out.print ("Introduce [0] para regresar: ");
sitodolleno = Integer.parseInt(leer.readLine());
switch (sitodolleno)
{
case 0:
regresamenu0001=1;
break;
}
break;
}
if (control[0]>0)
{
System.out.println("//////////////////////////////////");
System.out.println("La PRIMER casilla esta llena.");
System.out.println("¿desea mirar mas adelante?");
System.out.println("//////////////////////////////////");
}else
{
for (x=0; x<1; x++)
{
System.out.print ("Ingrese el alumno "+(x+1)+": ");
alumno[x]= leer.readLine();
System.out.print ("Ingrese la carrera que cursa: ");
carrera [x] = leer.readLine();
System.out.print ("Ingrese su N° de Control: ");
control [x] = Integer.parseInt(leer.readLine());
}
}
//FINALIZA CASE DE EL PRIMER ALUMNO
//INICIA SEGUNDO ALUMNO
int segundoalumno=0;
System.out.println("[1] SI");
System.out.println("[0] NO");
System.out.println("Desea introducir otro alumno?: ");
segundoalumno=Integer.parseInt(leer.readLine());
switch (segundoalumno)
{
case 1:
if (control[1]>0)
{
System.out.println("//////////////////////////////////");
System.out.println("La SEGUNDA casilla esta llena.");
System.out.println("¿desea mirar mas adelante?");
System.out.println("//////////////////////////////////");
}else
{
for (x=1; x<2; x++)
{
System.out.print ("Ingrese el alumno "+(x+1)+": ");
alumno[x]= leer.readLine();
System.out.print ("Ingrese la carrera que cursa: ");
carrera [x] = leer.readLine();
System.out.print ("Ingrese su N° de Control: ");
control [x] = Integer.parseInt(leer.readLine());
}
}
//FINALIZA SEGUNDO ALUMNO
//INICIA TERCER ALUMNO
int terceralumno=0;
System.out.println("[1] SI");
System.out.println("[0] NO");
System.out.println("Desea introducir otro alumno?: ");
terceralumno=Integer.parseInt(leer.readLine());
switch (terceralumno)
{
case 1:
if (control[2]>0)
{
System.out.println("//////////////////////////////////");
System.out.println("La TERCERA casilla esta llena.");
System.out.println("¿desea mirar mas adelante?");
System.out.println("//////////////////////////////////");
}else
{
for (x=2; x<3; x++)
{
System.out.print ("Ingrese el alumno "+(x+1)+": ");
alumno[x]= leer.readLine();
System.out.print ("Ingrese la carrera que cursa: ");
carrera [x] = leer.readLine();
System.out.print ("Ingrese su N° de Control: ");
control [x] = Integer.parseInt(leer.readLine());
}
}
//FINALIZA TERCER ALUMNO
//INICIA CUARTO ALUMNO
int cuartoalumno=0;
System.out.println("[1] SI");
System.out.println("[0] NO");
System.out.println("Desea introducir otro alumno?: ");
cuartoalumno=Integer.parseInt(leer.readLine());
switch (cuartoalumno)
{
case 1:
if (control[3]>0)
{
System.out.println("//////////////////////////////////");
System.out.println("La CUARTA casilla esta llena.");
System.out.println("¿desea mirar mas adelante?");
System.out.println("//////////////////////////////////");
}else
{
for (x=3; x<4; x++)
{
System.out.print ("Ingrese el alumno "+(x+1)+": ");
alumno[x]= leer.readLine();
System.out.print ("Ingrese la carrera que cursa: ");
carrera [x] = leer.readLine();
System.out.print ("Ingrese su N° de Control: ");
control [x] = Integer.parseInt(leer.readLine());
}
}
//FINALIZA CUARTO ALUMNO
//INICIA QUINTO ALUMNO
int quintoalumno=0;
System.out.println("[1] SI");
System.out.println("[0] NO");
System.out.println("Desea introducir otro alumno?: ");
quintoalumno=Integer.parseInt(leer.readLine());
switch (quintoalumno)
{
case 1:
if (control[4]>0)
{
System.out.println("//////////////////////////////////");
System.out.println("La QUINTA casilla esta llena.");
System.out.println("¿desea mirar mas adelante?");
System.out.println("//////////////////////////////////");
}else
{
for (x=4; x<5; x++)
{
System.out.print ("Ingrese el alumno "+(x+1)+": ");
alumno[x]= leer.readLine();
System.out.print ("Ingrese la carrera que cursa: ");
carrera [x] = leer.readLine();
System.out.print ("Ingrese su N° de Control: ");
control [x] = Integer.parseInt(leer.readLine());
}
}
//FINALIZA EL QUINTO ALUMNO
//INICIALIZA CUANDO TODO ESTA LLENO
int termino=0;
System.out.println("///////////////////////////////////////////");
System.out.println("¡TODO HA SIDO REGISTRADO EXITOSAMENTE!");
System.out.println("///////////////////////////////////////////");
System.out.println("[0] REGRESAR");
System.out.println("INTRODUZCA LA OPCION CORRECTA: ");
termino=Integer.parseInt(leer.readLine());
switch (termino)
{
case 0:
regresamenu0001=1;
break;
}
//TERMINA CUANDO TODO ESTA LLENO
case 0:
regresamenu0001=1;
break;
}
case 0:
regresamenu0001=1;
break;
}
case 0:
regresamenu0001=1;
break;
}
case 0:
regresamenu0001=1;
break;
}
break;
//INICIA CASE PARA REGRESAR
case 0:
regresamenu0001=1;
break;
//FINALIZA CASE PARA REGRESAR
}
//FINALIZA SWITCH CREADO PARA AGREGAR ALUMNOS O REGRESAR
break;
case 2:
System.out.println("/////////////////////////");
System.out.println("ENTRO A OPCION CALIFICACIONES");
System.out.println("/////////////////////////");
String st04=input.next();
break;
case 3:
System.out.println("/////////////////////////");
System.out.println("ENTRO A OPCION ACTIVIDAD");
System.out.println("/////////////////////////");
String st03=input.next();
break;
case 4:
regresamenuprincipal=0;
break;
}
}while (regresamenu0001==1);
//TERMINA MENU DE ALTAS
break;
case 2:
System.out.println("/////////////////////////");
System.out.println("ENTRO A OPCION BAJAS");
System.out.println("/////////////////////////");
String st02=input.next();
break;
case 3:
System.out.println("/////////////////////////");
System.out.println("ENTRO A OPCION CAMBIOS");
System.out.println("/////////////////////////");
String st01=input.next();
break;
case 4:
System.out.println("FIN DE EL PROGRAMA...");
String st00=input.next();
break;
}
//TERMINA MENU PRINCIPAL
}while (regresamenuprincipal==0);
}
}
Ordena mejor tus codigos, asi entenderas mejor que has escrito, tambien cuando pongas un codigo aca, ponele code=java a las etiquetas para que se vea coloreado el codigo y se entienda mejor..
Yo haria todo desde 0, planteandote todo en un papel con lapicera porque haces verificaciones de mas y tus do-while estan mal.
Tienes que hacer algo asi:
Do {
BorrarPantalla;
opc = 0;
--- Poner el Menu -- Con opcion 3- Salir
opc = Leer.readline()
switch (opc)
{
case 1:
Do {
BorrarPantalla;
opc2 = 0;
--- Mostrar SubMenu1 --- con opcion 2- Salir
} while(opc2 != 2)
break;
case 2:
Do {
BorrarPantalla;
opc3 = 0;
--- Mostrar SubMenu1 --- con opcion 2- Salir
} while(opc3 != 2)
break;
}
} while (opc != 3) // si no ingreso para salir pero no elijio ninguna opcion que vuelva a preguntar
Y asi vas metiendo do-while adentro segun quieras hacer mas SubMenus o algunos SubSubMenu xD
Fijate que Con lo que puse.. si no ingresa ninguna opcion, pregunta de nuevo pero no sale con un error, eso se lo pones vs si queres, aunque pienso yo que es mejor si no pones nada, ya que si no ingresa nada o ingresa algo mal, lo hace por error y la segunda vez lo hara bien.
saludos edu
espero que alguien puede ayudarme, hago un menu similar a este, me estoy basando en lo comenta edu pero no entiendo la parte donde dice borrarpantalla; como la pongo en codigo que esta haciendo soy novato saludos y gracias!
En realidad no se puede borrar la pantalla xD
A menos que tu aplicación la ejecutes en consola del sistema operativo (tendrias que llamar a los comandos nativos del sistema para limpiar pantalla) o usando JNI pero no es lo que necesitas, en lugar de eso deja que se vaya mostrando todo el procedimiento anterior.
Y como va a regresar del menu 2 al 1 sino hiciste alguna forma para que regrese. Y me huele que el código que tienes esta basado en otro, POR ESA RAZON ESTAS ENTANCADO.