Foros del Web » Programación para mayores de 30 ;) » Java »

menu switch

Estas en el tema de menu switch en el foro de Java en Foros del Web. Hola! Soy nuevo en java y en programacion orientada a objetos, pero recientemente tenia que hacer un programita que resolvia unas ecuaciones sencillas. El programa ...
  #1 (permalink)  
Antiguo 11/10/2011, 10:23
c0c
 
Fecha de Ingreso: octubre-2004
Mensajes: 38
Antigüedad: 20 años, 2 meses
Puntos: 0
menu switch

Hola!

Soy nuevo en java y en programacion orientada a objetos, pero recientemente tenia que hacer un programita que resolvia unas ecuaciones sencillas.

El programa se componia de un menu, del cual muestro las opciones mediante un println y un switch dirije a cada seccion (que hace una ecuacion distinta), de este modo:

Que quieras hacer?
Resolver ecuacion: 1
resolver ecuacion: 2

El usuario pulsa 1 y se dirije a la ecuacion una, y el programa la resuelve bien, pero qiero añadir que al final de la opcion de volver al menu principal, resolver la misma ecuacion (con otros datos, claro) y por ultimo, salir.

Me imagino que tengo que hacerlo con una if, pero no se como. A ver si alguien me indica como (o me da pistas, tampoco busco que programe por mi :) )

Un saludo y gracias de antemano
Codigo:
Código java:
Ver original
  1. import java.util.Scanner;
  2. public class MrSnell2 {
  3.     public static void main(String[] args) {
  4.                
  5.         int snellius = 0;
  6.        
  7.         System.out.println("Calculadora Snellius\n\n\n");
  8.        do {
  9.         System.out.println("Elije una opcion:\n");
  10.         System.out.println("1: Calcular Angulo de incidencia");
  11.         System.out.println("2: Calcular Angulo de refraccion");
  12.         System.out.println("3: Indice de refraccion del primer medio");
  13.         System.out.println("4: Indice de refraccion del segundo medio");
  14.         System.out.println("5: Angulo limite y reflexion total");
  15.         System.out.println("6: Refraccion en un medio de caras planoparalelas");
  16.         System.out.println("7: Velocidad C segun el indice de refraccion");
  17.         System.out.println("8: Acerca de la Calculadora Snellius");
  18.         System.out.println("9: Ayuda");
  19.         //ANEXOS
  20.         System.out.println("10: La Ley de Snell");
  21.         System.out.println("11: Indice de refraccion");
  22.         System.out.println("0: Salir");
  23.         //leemos el dato introducido por el usuario
  24.         Scanner reader = new Scanner(System.in);
  25.         snellius = reader.nextInt();
  26.                                
  27.         //segun el numero, empieza el switch
  28.         switch (snellius) {
  29.             //1: Calculo de angulo de incidencia
  30.             case 1:  
  31.                 //Creamos las variables
  32.                 double n1a = 0; //Indice refraccion primer medio
  33.                 double n2a = 0; //Indice refraccion segundo medio
  34.                 double angRefractadoA = 0; //Angulo de refraccion
  35.                 //Obtenemos los datos
  36.                 System.out.println("Angulo de incidencia de un haz luminico sobre un medio.");
  37.                 System.out.println("Indice de refracion del primer medio:");
  38.                 n1a = reader.nextDouble();
  39.                 System.out.println("Indice de refraccion del segundo medio:");
  40.                 n2a = reader.nextDouble();
  41.                 System.out.println("Angulo refractado");
  42.                 angRefractadoA = reader.nextDouble();
  43.                 //empezamos a procesar y despejar
  44.                 double senAngRefractadoA = Math.sin(Math.toRadians(angRefractadoA));
  45.                 double segundaparteA = n2a * senAngRefractadoA;
  46.                 double resultadoA = Math.toDegrees(segundaparteA);
  47.                 double rA = resultadoA / n1a;
  48.                 //Resultado
  49.                 System.out.println("El angulo de incidencia es de: " + rA + "º");
  50.             break;
  51.             //2: Calculo de angulo refractado  
  52.             case 2:  
  53.                 //Creamos las variables
  54.                 double n1b = 0; //indice refraccion primer medio
  55.                 double n2b = 0; // indice refraccio segundo medio
  56.                 double angIncidenteB = 0; //angulo de incidencia
  57.                 //Obtenemos los datos
  58.                 System.out.println("Angulo de refraccion de un haz luminico al atravesar un medio.");
  59.                 System.out.println("Indice de refracion del primer medio:");
  60.                 n1b = reader.nextDouble();
  61.                 System.out.println("Indice de refraccion del segundo medio:");
  62.                 n2b = reader.nextDouble();
  63.                 System.out.println("Angulo de incidencia");
  64.                 angIncidenteB = reader.nextDouble();
  65.                 //Empezamos a procesar y despejar
  66.                 double senAngIncidenteB = Math.sin(Math.toRadians(angIncidenteB));
  67.                 double primeraparteB = senAngIncidenteB * n1b;
  68.                 double rB = primeraparteB / n2b;
  69.                 double resultadoB = Math.toDegrees(rB);
  70.                 //resultado
  71.                 System.out.println("El angulo de refraccion es de: " + resultadoB + "º");
  72.            break;
  73.                 //3: Indice de refraccion del primer medio
  74.             case 3:  
  75.                 double angIncidenteC = 0;
  76.                 double n2c = 0;
  77.                 double angRefractadoC = 0;
  78.                 //Obtenemos los datos:
  79.                 System.out.println("Calculo del indice de refraccion del primer medio");
  80.                 System.out.println("Angulo de incidencia del haz luminico:");
  81.                 angIncidenteC = reader.nextDouble();
  82.                 System.out.println("Indice de refraccion del segundo medio:");
  83.                 n2c = reader.nextDouble();
  84.                 System.out.println("Angulo refractado");
  85.                 angRefractadoC = reader.nextDouble();
  86.                 double senAngRefractadoC = Math.sin(Math.toRadians(angRefractadoC));
  87.                //Procesamos y despejamos
  88.                 double segundaparteC = n2c * senAngRefractadoC;
  89.                 double resultadoC = Math.toDegrees(segundaparteC);
  90.                 double rC = resultadoC / angIncidenteC;
  91.                 System.out.print("Indice de refraccion del primer medio: " + rC);
  92.             break;
  93.             //4: Indice de refraccion del segundo medio                          
  94.             case 4:
  95.                 double angIncidenteD = 0;
  96.                 double n1d = 0;
  97.                 double angRefractadoD = 0;
  98.                 //Obtenemos los datos
  99.                 System.out.println("Calculo del indice de refraccion del segundo medio");
  100.                 System.out.println("Indice de refraccion del primer medio:");
  101.                 n1d = reader.nextDouble();
  102.                 System.out.println("Angulo de incidencia del haz luminico");
  103.                 angIncidenteD = reader.nextDouble();
  104.                 System.out.println("Angulo de refraccion del haz luminico");
  105.                 angRefractadoD = reader.nextDouble();
  106.                 //procesamos y despejamos
  107.                 double primeraparteD = n1d * angIncidenteD;
  108.                 double rD = primeraparteD / angRefractadoD;
  109.                 System.out.println("Indice de refraccion del segundo medio: " + rD);
  110.                
  111.             //5: Angulo limite y reflexion total
  112.             break;
  113.             case 5:  
  114.                 System.out.println("Reflexion total y angulo limite");
  115.                 double n1e = 0;
  116.                 double n2e = 0;
  117.                 //angulo limite (90)
  118.                 double angulolimite = Math.sin(Math.toRadians(90));
  119.                 System.out.println("Introduce el indice de refraccion del primer medio:");
  120.                 n1e = reader.nextDouble();
  121.                 System.out.println("Introduce el indice de refraccion del material:");
  122.                 n2e = reader.nextDouble();              
  123.                 //parte derecha de la ecuacion: n1 * sen90
  124.                 double segundaparteE = n2e * angulolimite;
  125.                 // parte izquierda de la ecuacion n1* senIx y despejamos
  126.                 double rE = n1e / segundaparteE;
  127.                 //resultado
  128.                 double resultadoE = Math.toDegrees(rE);
  129.                 System.out.println("El angulo limite es de: " + resultadoE + "º" + "\nA partir de esa inclinacion se produce reflexion total.");
  130.                 break;
  131.            
  132.            
  133.         }
  134.     }while(snellius != 0);
  135.  
  136. }
  137. }

Etiquetas: switch, terminal
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:03.