I am doing a program in which I need to show a data of each one. I know I've made a lot of design errors, but right now there's no time to modify everything, and the java utilities that we can use are limited, in fact I can not use arrays, there are those that have so many problems.
I have 4 menus with different submenus, the problem is that when I run a menu by console, and return to the main menu, it saves me the previous menu, so if I go first to the teachers menu and then to the balance menu, I shows the teacher menu instead of the balance menu, with what my question is, How can I solve this? below I leave the code.
Show me this:
1 - Introducir datos
2 - Consultar datos
3 - Salir al Menu Principal
When I would have to show this
Menu de opciones
---------------------
1 - Consultar Gastos
2 - consultar Ingresos
3 - Consultar Resultado de Explotación
0 - Volver al menu principal
This is the one that contains the menu balance method.
package proyecto;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class menu_pro {
static BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));
static profesor a =new profesor();
static int menu () throws IOException{
int opcion= 9;
while(opcion!=0){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Introducir datos");
System.out.println("2 - Consultar datos ");
System.out.println("3 - Salir al Menu Principal ");
opcion = Integer.parseInt(dato.readLine());
if (opcion==1) introDatos();
if (opcion==2) consultaDatos();
if (opcion==3) principal.menu();
}
return opcion;
}
static void introDatos() throws IOException{
System.out.println("Introduzca el DNI a incluir");
String dni = dato.readLine();
a.intro_dni(dni);
System.out.println("Introduzca el nombre a incluir");
String nombre=dato.readLine();
a.intro_nombre(nombre);
System.out.println("Introduzca los apellidos a incluir");
String apellidos=dato.readLine();
a.intro_apellidos(apellidos);
System.out.println("Introduzca el sueldo");
int sueldo=Integer.parseInt(dato.readLine());
a.intro_sueldo(sueldo);
System.out.println("Introduzca el nº de alumnos ");
int n_alumnos=Integer.parseInt(dato.readLine());
a.intro_alumno(n_alumnos);
}
static void consultaDatos() throws IOException{
int opcion2=9;
while(opcion2<0 || opcion2>7){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Consultar DNI");
System.out.println("2 - Consultar Nombre ");
System.out.println("3 - Consultar Apellidos");
System.out.println("5 - Consultar Sueldo");
System.out.println("6 - Consultar Todos los Datos");
System.out.println("0 - Salir");
System.out.println("---------------------");
System.out.println(" Qué desea hacer? ");
opcion2=Integer.parseInt(dato.readLine());
}
switch (opcion2){
case 1:
System.out.printf("El DNI es %s\n",a.consulta_dni());
break;
case 2:
System.out.printf("El nombre es %s\n",a.consulta_nombre());
break;
case 3:
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
break;
case 4:
System.out.printf("El número de alumnos es %d\n",a.consulta_n_alumnos());
break;
case 5:
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 6:
System.out.printf("El DNI es %s\n",a.consulta_dni());
System.out.printf("El nombre es %s\n",a.consulta_nombre());
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
System.out.printf("El número de alumnos es %d\n",a.consulta_n_alumnos());
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 0:
menu();
default:
break;
}
menu();
}
}
This is what the teachers menu contains
package proyecto;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class menu_pro {
static BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));
static profesor a =new profesor();
static int menu () throws IOException{
int opcion= 9;
while(opcion!=0){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Introducir datos");
System.out.println("2 - Consultar datos ");
System.out.println("3 - Salir al Menu Principal ");
opcion = Integer.parseInt(dato.readLine());
if (opcion==1) introDatos();
if (opcion==2) consultaDatos();
if (opcion==3) principal.menu();
}
return opcion;
}
static void introDatos() throws IOException{
System.out.println("Introduzca el DNI a incluir");
String dni = dato.readLine();
a.intro_dni(dni);
System.out.println("Introduzca el nombre a incluir");
String nombre=dato.readLine();
a.intro_nombre(nombre);
System.out.println("Introduzca los apellidos a incluir");
String apellidos=dato.readLine();
a.intro_apellidos(apellidos);
System.out.println("Introduzca el sueldo");
int sueldo=Integer.parseInt(dato.readLine());
a.intro_sueldo(sueldo);
System.out.println("Introduzca el nº de alumnos ");
int n_alumnos=Integer.parseInt(dato.readLine());
a.intro_alumno(n_alumnos);
}
static void consultaDatos() throws IOException{
int opcion2=9;
while(opcion2<0 || opcion2>7){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Consultar DNI");
System.out.println("2 - Consultar Nombre ");
System.out.println("3 - Consultar Apellidos");
System.out.println("5 - Consultar Sueldo");
System.out.println("6 - Consultar Todos los Datos");
System.out.println("0 - Salir");
System.out.println("---------------------");
System.out.println(" Qué desea hacer? ");
opcion2=Integer.parseInt(dato.readLine());
}
switch (opcion2){
case 1:
System.out.printf("El DNI es %s\n",a.consulta_dni());
break;
case 2:
System.out.printf("El nombre es %s\n",a.consulta_nombre());
break;
case 3:
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
break;
case 4:
System.out.printf("El número de alumnos es %d\n",a.consulta_n_alumnos());
break;
case 5:
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 6:
System.out.printf("El DNI es %s\n",a.consulta_dni());
System.out.printf("El nombre es %s\n",a.consulta_nombre());
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
System.out.printf("El número de alumnos es %d\n",a.consulta_n_alumnos());
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 0:
menu();
default:
break;
}
menu();
}
}
This one that contains the dependent menu
package proyecto;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class menu_dep {
static BufferedReader dato = new BufferedReader(new InputStreamReader(System.in));
static dependiente a =new dependiente();
static int menu () throws IOException{
int opcion= 9;
while(opcion!=0){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Introducir datos");
System.out.println("2 - Consultar datos ");
System.out.println("3 - Salir al Menu Principal ");
opcion = Integer.parseInt(dato.readLine());
if (opcion==1) introDatos();
if (opcion==2) consultaDatos();
if (opcion==3) principal.menu();
}
return opcion;
}
static void introDatos() throws IOException{
System.out.println("Introduzca el DNI a incluir");
String dni = dato.readLine();
a.intro_dni(dni);
System.out.println("Introduzca el nombre a incluir");
String nombre=dato.readLine();
a.intro_nombre(nombre);
System.out.println("Introduzca los apellidos a incluir");
String apellidos=dato.readLine();
a.intro_apellidos(apellidos);
System.out.println("Introduzca el sueldo");
int sueldo=Integer.parseInt(dato.readLine());
a.intro_sueldo(sueldo);
menu();
}
static void consultaDatos() throws IOException{
int opcion2=9;
while(opcion2<0 || opcion2>7){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Consultar DNI");
System.out.println("2 - Consultar Nombre ");
System.out.println("3 - Consultar Apellidos");
System.out.println("4 - Consultar Numero horas");
System.out.println("5 - Consultar Todos los Datos");
System.out.println("0 - Voler al menu anterior");
System.out.println("---------------------");
System.out.println(" Qué desea hacer? ");
opcion2=Integer.parseInt(dato.readLine());
}
switch (opcion2){
case 1:
System.out.printf("El DNI es %s\n",a.consulta_dni());
break;
case 2:
System.out.printf("El nombre es %s\n",a.consulta_nombre());
break;
case 3:
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
break;
case 4:
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 5:
System.out.printf("El DNI es %s\n",a.consulta_dni());
System.out.printf("El nombre es %s\n",a.consulta_nombre());
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
System.out.printf("El sueldo es %d\n",a.consulta_sueldo());
break;
case 0:
menu();
break;
default:
break;
}
menu();
}
}
And the latter one that contains the students menu
static alumnos a =new alumnos();
static int menu () throws IOException{
int opcion= 9;
while(opcion!=0){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Introducir datos");
System.out.println("2 - Consultar datos ");
System.out.println("3 - Salir al Menu Principal ");
opcion = Integer.parseInt(dato.readLine());
if (opcion==1) introDatos();
if (opcion==2) consultaDatos();
if (opcion==3) principal.menu();
}
return opcion;
}
static void introDatos() throws IOException{
System.out.println("Introduzca el DNI a incluir");
String dni = dato.readLine();
a.intro_dni(dni);
System.out.println("Introduzca el nombre a incluir");
String nombre=dato.readLine();
a.intro_nombre(nombre);
System.out.println("Introduzca los apellidos a incluir");
String apellidos=dato.readLine();
a.intro_apellidos(apellidos);
System.out.println("Introduzca la cuota");
int cuota=Integer.parseInt(dato.readLine());
a.intro_cuota(cuota);
System.out.println("Introduzca el nivel del alumno");
String nivel =dato.readLine();
a.intro_nivel(nivel);
menu();
}
static void consultaDatos() throws IOException{
int opcion2=9;
while(opcion2<0 || opcion2>7){
System.out.println(" Menu de opciones ");
System.out.println("---------------------");
System.out.println("1 - Consultar DNI");
System.out.println("2 - Consultar Nombre ");
System.out.println("3 - Consultar Apellidos");
System.out.println("4 - Consultar Cuota");
System.out.println("5 - Consultar Nivel");
System.out.println("6 - Consultar Todos los Datos");
System.out.println("0 - Salir");
System.out.println("---------------------");
System.out.println(" Qué desea hacer? ");
opcion2=Integer.parseInt(dato.readLine());
}
switch (opcion2){
case 1:
System.out.printf("El DNI es %s\n",a.consulta_dni());
break;
case 2:
System.out.printf("El nombre es %s\n",a.consulta_nombre());
break;
case 3:
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
break;
case 4:
System.out.printf("El sueldo es %d\n",a.consulta_cuota());
break;
case 5:
System.out.printf("El sueldo es %s\n",a.consulta_nivel());
break;
case 6:
System.out.printf("El DNI es %s\n",a.consulta_dni());
System.out.printf("El nombre es %s\n",a.consulta_nombre());
System.out.printf("Los apellidos son %s\n",a.consulta_apellidos());
System.out.printf("La cuota es %s\n",a.consulta_cuota());
System.out.printf("El Nivel es %s\n",a.consulta_nivel());
break;
case 0:
menu();
break;
default:
break;
}
menu();
}
}