Hola copañeros:
Os escribo porqe tengo un problema con un ejercicio de un curso de java el cual consiste en crear una clase Alumno y utilizarla con el resto de ejercicios anteriores. El problema es que si ejecuto el programa tal cual cuando llega a una sentencia case 5: de un bucle switch se salta las sentencias dentro de ese bloque hasta el break; que cierra ese bloque, pero el break; lo ejecuta porque sale del bucle, pero si lo ejecuto en modo de depuracion para ver el fallo cuando el método que le paso como condición vale 5 el bloque de sentencias se ejecuta perfectamente y el programa funciona como debe funcionar. A continuación os dejo la clase principal del proyecto para que veais so todo esta bien escrito. si necesitais algún archivo más de proyecto, decidmelo y subo un zip. Muchas gracias de antemano y feliz año 2013 a todos.
Código:
package exitae.unidad2;
import java.util.Scanner;
public class Main{
private static Scanner scan = new Scanner(System.in);
static Escuela uni;
public static void main(String[] args) {
uni = new Escuela();
Alumno tmpA = new Alumno();
Profesor tmpP = new Profesor();
uni.add(tmpP);
uni.add(tmpA);
int resul = pintamenu();
while(resul!=0){
switch (resul){
case 1:
assign();
resul = pintamenu();
break;
case 2:
tmpA = new Alumno();
uni.add(tmpA);
resul = pintamenu();
break;
case 3:
tmpP = new Profesor();
uni.add(tmpP);
resul = pintamenu();
break;
case 4:
Aula tmpAula = new Aula();
uni.add(tmpAula);
resul = pintamenu();
break;
case 5: // Aquí da el fallo
System.out.print("- "); // esto no se ejecuta si no en debug
muestra(); //esto tampoco
resul = pintamenu();// esto ya si
break;
default:
if(pintamenu()==0){
System.exit(0);
}else {
System.out.println("Error: Numero introducido no valido");
resul = pintamenu();
break;
}
}
}
}
public static void muestra() {
System.out.println("Informe de estado");
System.out.println(".................");
System.out.println("");
for (int i=0;i<uni.getProfesores();i++){
String nm=uni.prof.get(i).getName(),ap=uni.prof.get(i).getApe();
System.out.println("El profesor: " + nm + " " + ap + " de la escuela " + uni.getName() + " está a cargo de los Alumnos: ");
System.out.println("...................................");
System.out.println();
for(int j=0;j<uni.prof.get(i).alumnosasucargo.size();j++){
String nam=uni.prof.get(i).alumnosasucargo.get(j).getName();
String ape=uni.prof.get(i).alumnosasucargo.get(j).getApe();
int age=uni.prof.get(i).alumnosasucargo.get(j).getEdad();
String cur=uni.prof.get(i).alumnosasucargo.get(j).getCurso();
int not=uni.prof.get(i).alumnosasucargo.get(j).getNota();
System.out.println("--> " + nam + " " + ape + " de " + age + " años, cursando " + cur + " con un nota media actual de: " + not);
System.out.println();
}
}
System.out.println();
System.out.println("La escuela: " + uni.getName() + " tiene " + uni.getAulas()+" Aulas");
System.out.println();
for (int x=0;x<uni.getAulas();x++){
int sizetmp = uni.aulas.get(x).getSize();
System.out.println("Aula: " +(x+1)+ " tamaño: " + sizetmp);
}
System.out.println();
}
public static void assign() {
System.out.println("¿Qué alumno asignar a un profesor?");
System.out.println(".................................");
System.out.println();
for (int i=0;i<Alumno.alumnos.size();i++){
System.out.println(i + " . " + Alumno.alumnos.get(i).getName() + " " + Alumno.alumnos.get(i).getApe());
}
System.out.println();
System.out.print("Introduzca un numero de alumno: ");
int a = scan.nextInt();
scan.nextLine();
System.out.println();
System.out.println();
Alumno al = Alumno.getalumbyid(a);
System.out.println("¿A qué profesor?");
System.out.println("................");
System.out.println();
for(int j=0;j<uni.prof.size();j++){
System.out.println(j + " . " + uni.prof.get(j).getName() + " " + uni.prof.get(j).getApe());
}
System.out.println();
System.out.print("Elija un profesor: ");
int p = scan.nextInt();
scan.nextLine();
System.out.println();
System.out.println();
Profesor pr = Profesor.getprofbyid(p);
pr.assignAlumno(al);
}
static public int pintamenu(){
System.out.println("1 - Asignar alumno a profesor");
System.out.println("2 - Nuevo Alumno");
System.out.println("3 - Nuevo Profesor");
System.out.println("4 - Nueva Aula");
System.out.println("5 - ver todos los profesores y sus alumnos");
System.out.println("-----------------------------");
System.out.println("0 - Salir.");
System.out.println("");
System.out.print("Elige una opción: ");
int e = scan.nextInt();
scan.nextLine();
System.out.println();
System.out.println();
return e;
}
}