Título: REGRESAR A MENU ANTERIOR CASE EN JAVA
Publicado por: ArmandoQuintero en 6 Abril 2012, 08:59 am
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); } }
Título: Re: REGRESAR A MENU ANTERIOR CASE EN JAVA
Publicado por: $Edu$ en 6 Abril 2012, 17:48 pm
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.
Título: Re: REGRESAR A MENU ANTERIOR CASE EN JAVA
Publicado por: $krakatoa en 1 Julio 2013, 03:08 am
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!
Título: Re: REGRESAR A MENU ANTERIOR CASE EN JAVA
Publicado por: 1mpuls0 en 1 Julio 2013, 19:34 pm
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.
Título: Re: REGRESAR A MENU ANTERIOR CASE EN JAVA
Publicado por: ~ Yoya ~ en 3 Julio 2013, 16:37 pm
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.
|