Java - Ayuda con Ejercicio al problema de boletos de avión

 
Vista:
sin imagen de perfil
Val: 28
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Arturo (16 intervenciones) el 31/10/2018 07:13:57
Lo que busco es encontrar el metodo por parametro o estatico al problema de boletos de avión

La aerolínea México Airlines tiene distintas rutas para sus vuelos siendo estas las siguientes:

521cf76c57318f95eee0ce8653a66c5c-icono-de-mensaje-de-sobre-de-correo-by-vexels

Mostrar al usuario las opciones de ruta de la tabla anterior, el usuario deberá ingresar que ruta desea comprar, cuantos boletos y la edad de los pasajeros. Con base en la edad se deberá realizar un descuento: 60% tercera edad (60 años en adelante), 35% estudiantes (18-29), 35% menores de edad (0-17) y 0% clientes regulares (30-59).
Mostrar cuanto deberá pagar el usuario en total en Peso Mexicano considerando que 1 dólar = 17.80 MXN, 1 euro = 22.24 MXN, al subtotal agregarle el impuesto del IVA correspondiente al 16%. Como restricciones el programa deberá manejar métodos y estructuras selectivas.

Estoy aprendiendo a programar, pero aun se me dificulta, espero que me ayuden para ver mejor el problema, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Kabuto (1379 intervenciones) el 31/10/2018 12:30:52
Hola Arturo.

Estos ejercicios parecen difíciles porque piden muchas cosas, pero en realidad es más sencillo de lo que parece.
La clave para afrontar estos programas es ir haciendolo poco a poco. Es decir, en lugar de pensar como conseguir resolver TODO lo que piden, piensa en como conseguir solo una pequeña parte de lo que se pide.
Logrado ese objetivo, vas ampliando el programa poco a poco hasta obtener ese TODO.

Además, aunque parezca innecesario o redundante, organizar los valores que nos da el enunciado también ayuda a clarificar ideas.
En este ejercicio nos dan el valor base de cada boleto según la ruta, pues bien, esto podemos declararlos como valores constantes en el código.
Como digo, no es estrictamente necesario en un programa tan sencillo, pero suele ayudar a organizar nuestras ideas.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public final class Boletos {
 
	//Costes fijos de boletos segun ruta
	static final double RUTA1 = 100;
	static final double RUTA2 = 800;
	static final double RUTA3 = 650;
	static final double RUTA4 = 970;
	static final double RUTA5 = 12500;
 
	public static void main(String[] args) {
 
		/*
		 * Aqui irá el codigo del programa
		 */
 
	}
 
}

EL usuario tiene que elegir una RUTA, indicar NUMERO de BOLETOS que quiere, y su EDAD.

Segun la EDAD, y según la RUTA, habrá que calcular % de descuento, convertir monedas... Y finalmente agregar IVA al monto total.

Pues bien, márcate un objetivo más sencillo.

No hagas todos esos cálculos, simplemente:
- Muestra menú en pantalla con las 5 rutas
- pídele al usuario los TRES datos (RUTA, BOLETOS y EDAD)
- Muestra en pantalla el resultado de multiplicar los BOLETOS por el coste de la RUTA que haya elegido el usuario.
Para esto te será muy cómodo usar un switch(), a
1
2
3
4
5
6
7
switch(ruta) {
case 1:
          System.out.println( "Coste : " + boletos * RUTA1);
case 2:
          System.out.println( "Coste : " + boletos * RUTA2);
...
}

Haz solo esto.

Una vez lo tengas funcionando, piensa en cómo hacer:

1) Conversion de moneda:
Según la RUTA elegida, hay que convertir a dólares US o a euros.
Excepto la ruta 5 que no requiere conversión.
Puedes hacer dos metodos, uno que convierta a dolar US y otro a euros

2) aplicar descuento según la edad
De esto también se puede encargar un método, al que le pases como argumentos el costo calculado y la edad del usuario. Este metodo ha de evaluar la edad y según en que rango está, (menor de 17, mayor de 60, etc...) aplicar el descuento y devolver el resultado.

3)
Por último, teniendo ya el coste convertido a la moneda adecuada, y con el descuento aplicado, le sumamos un 16% IVA


Y ya está.
Ves, en realidad no piden tantas cosas, pero si nos ponemos a pensar en resolver el TODO se nos hace más complicado.
Es mejor, dividir el TODO en pequeños objetivos e ir poco a poco.

Incluso escribir los pasos a seguir, tal y como he hecho yo aquí, también ayuda.

Ves haciendo y cuando te atasques, muestra aquí tu código y te ayudamos.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
sin imagen de perfil
Val: 28
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Arturo (16 intervenciones) el 31/10/2018 16:00:13
Muchas gracias Kabuto, te lo agradesco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Juan (4 intervenciones) el 14/05/2021 14:55:28
Me podían ayudar con este programa ... nose programar bien necesito su ayuda

Lee detenidamente las indicaciones y realiza el código fuente en Java con ventanas de opciones JOptionPane



Realiza la simulación de la compra de boletos de avión.

Incluye 3 lugares de origen y 3 de destino.
Considerar que las formas de pago son: efectivo y tarjeta.
Cuando el usuario seleccione efectivo, imprimir un código de 21 números enteros aleatorios que fungirá como la línea de captura.
Cuando el usuario seleccione pago con tarjeta: tendrá la opción de realizar el pago en una sola exhibición o a meses sin interese.
Cuando elija meses sin intereses mostrar el desglose de acuerdo a los meses seleccionados (3,6 y 9). Donde se indique el día y la cantidad a pagar, el total del vuelo y el adeudo.
Validar que digite los 16 números de la tarjeta, el mes y año de vigencia y el número de seguridad (3 dígitos).
El cliente decide si realiza alguna otra compra.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Kabuto (1379 intervenciones) el 14/05/2021 18:05:05
Hola.
Doy el mismo consejo que di en el mensaje anterior.. hace ya casi 3 años.
Ir paso a paso, construyendo el programa cumpliendo objetivos pequeños.

El enunciado que has puesto pide muchas cosas...no importa, comencemos consiguiendo solo UNA de esas cosas.
Vamos a hacer que el usuario pueda seleccionar la ciudad origen.

Podemos hacer un método que se encargue solo y únicamente de preguntar el origen y retorne la ciudad escogida por el usuario.
Se nos pide que usemos JOptionPane. Este elemento tiene varias formas de ser configurado, hay una que permite pasarle un array con objetos de cualquier clase y que a partir de ellos automáticamente construya unos botones para que el usuario pueda seleccionarlos.

Así que podemos crear un array de tipo String con tres nombres de ciudades para que el usuario escoja.
Cuando el usuario elije una de estas opciones, el JOptionPane retorna un valor int que identifica el botón/opción pulsado.
Si retorna 0 es que se ha pulsado el primer botón, si es 1 corresponde al segundo botón, 2 para el tercero, etc....

Así que recogeremos este int y lo usaremos para saber a que elemento del array de ciudades corresponde la selección del usuario.
Y así el método podrá retornar el String adecuado.

Este podría ser el método. En el constructor del JOptionPane, fíjate que le pasamos como argumento (tiene muchos argumentos la verdad) el array de ciudades. Lo marco en negrita.

1
2
3
4
5
6
7
8
9
10
private static String preguntarOrigen() {
 
		//Array con las ciudades origen
		String[] origenes = new String[] {"Bogotá", "Lima", "Buenos Aires"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
				0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
		return origenes[seleccion];
	}

En el programa principal, llamaremos a este método y recogeremos el String que retorne. Para comprobar que funciona, podemos mostrar por consola el valor que hemos recogido.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Compraboleto {
 
	public static void main(String[] args) {
 
		String origen = preguntarOrigen();
 
		//Testeamos por consola los datos recogidos
		System.out.println("Origen: " + origen);
 
	}
 
	private static String preguntarOrigen() {
 
		//Array con las ciudades origen
		String[] origenes = new String[] {"Bogotá", "Lima", "Buenos Aires"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
				0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
		return origenes[seleccion];
	}
 
}

Si ejecutamos el programa, veremos en el centro de la pantalla un JOptionPane con botones asociados a las ciudades que hayamos puesto en el array:

imagen_2021-05-14_172729

Si seleccionamos una, en la consola de texto podemos ver el resultado obtenido:
1
Origen: Lima

Y bien, ya tenemos una cosa hecha. El usuario ya puede elegir entre tres ciudades Origen. Lo siguiente será que también pueda elegir entre tres ciudades Destino.
Pues va a ser repetir lo que ya hemos hecho. Otro método que se encargue solo y únicamente de preguntar un Destino, recoger la selección en el programa principal y comprobar en consola el resultado:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Compraboleto {
 
	public static void main(String[] args) {
 
		String origen = preguntarOrigen();
		String destino = preguntarDestino();
 
		//Testeamos por consola los datos recogidos
		System.out.println("Origen: " + origen);
		System.out.println("Destino: " + destino);
 
	}
 
	private static String preguntarOrigen() {
 
		//Array con las ciudades origen
		String[] origenes = new String[] {"Bogotá", "Lima", "Buenos Aires"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
				0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
		return origenes[seleccion];
	}
 
	private static String preguntarDestino() {
 
		//Array con las ciudades destino
		String[] destinos = new String[] {"Barcelona", "Chicago", "Tokio"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Destino", "Destino",
				0, JOptionPane.QUESTION_MESSAGE, null, destinos, 0);
 
		return destinos[seleccion];
	}
 
}


Ok, el usuario ya puede seleccionar Origen y Destino. Lo siguiente es que elija medio de pago: efectivo o tarjeta
Pues va a ser muy parecido, método que construya un JOptionPane con esas dos posibles opciones.
En esta ocasión, no va a ser necesario que el método nos retorne un String con las palabras "efectivo" o "tarjeta".
Será suficiente con que retorne el número de opción que los identifica, 0 y 1.
Si retorna 0 ya sabremos que es efectivo, si no, pues será tarjeta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public class Compraboleto {
 
	public static void main(String[] args) {
 
		String origen = preguntarOrigen();
		String destino = preguntarDestino();
 
		//Testeamos por consola los datos recogidos
		System.out.println("Origen: " + origen);
		System.out.println("Destino: " + destino);
 
		int medioPago = preguntarMedioPago();
		if (medioPago == 0) {
			System.out.println("Medio de pago: Efectivo");
		}
		else {
			System.out.println("Medio de pago: Tarjeta");
		}
 
	}
 
	private static String preguntarOrigen() {
 
		//Array con las ciudades origen
		String[] origenes = new String[] {"Bogotá", "Lima", "Buenos Aires"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
				0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
		return origenes[seleccion];
	}
 
	private static String preguntarDestino() {
 
		//Array con las ciudades destino
		String[] destinos = new String[] {"Barcelona", "Chicago", "Tokio"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Destino", "Destino",
				0, JOptionPane.QUESTION_MESSAGE, null, destinos, 0);
 
		return destinos[seleccion];
	}
 
	private static int preguntarMedioPago() {
		String[] medios = new String[] {"Efectivo", "Tarjeta"};
 
		//Directamente retornamos la seleccion del usuario en el JOptionPane
		return JOptionPane.showOptionDialog(null, "Seleccione Medio de Pago", "Medios de Pago",
				0, JOptionPane.QUESTION_MESSAGE, null, medios, 0);
	}
 
}


Ok.
Si has entendido la lógica que hemos ido siguiendo hasta ahora, intenta completar tú los siguiente puntos del enunciado.
Usa un método específico para cada punto. Algunos van a requerir pedir opciones con JOptionPane, otros no.
Intenta lo que puedas, no importa si no lo consigues, lo que sí importa es que lo intentes. Aprenderás mucho más que si te vamos dando las soluciones directamente.

Una cosa que no deja clara el enunciado es cuál será el coste de los viajes. Tampoco es importante, pero tenemos que decidir un coste.
Puedes elegir un coste cualquier y que siempre sea el mismo, ya que insisto en que es lo menos importante. Otra posibilidad es crear un método que al comenzar el programa devuelva un coste al azar, así será diferente cada vez.

Pongo a continuación el código con un método para establecer un coste al azar y unas líneas de comentario indicando cuáles son los pasos que faltan por completar.
Insisto de nuevo en que hagas un intento, luego compartes por aquí lo que consigas y ya te ayudamos a corregir y completar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class Compraboleto {
 
	public static void main(String[] args) {
 
 
		int coste = costeVuelo();
		String origen = preguntarOrigen();
		String destino = preguntarDestino();
 
		//Testeamos por consola los datos recogidos
		System.out.println("Origen: " + origen);
		System.out.println("Destino: " + destino);
		System.out.println("Coste del vuelo: " + coste);
 
		int medioPago = preguntarMedioPago();
		if (medioPago == 0) {
			System.out.println("Medio de pago: Efectivo");
			//Imprimir código de 21 números al azar
		}
		else {
			System.out.println("Medio de pago: Tarjeta");
			//Preguntar si paga todo de una vez o fraccionado en 3, 6 ó 9 meses
			//Si elige meses, mostrar desglose de los importes a pagar cada mes
			//Validar datos de tarjeta
		}
 
	}
 
	private static int costeVuelo() {
		Random azar = new Random();
		//Retorna un importe entre 500 y 1000
		return azar.nextInt(501) + 500;
	}
 
	private static String preguntarOrigen() {
 
		//Array con las ciudades origen
		String[] origenes = new String[] {"Bogotá", "Lima", "Buenos Aires"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
				0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
		return origenes[seleccion];
	}
 
	private static String preguntarDestino() {
 
		//Array con las ciudades destino
		String[] destinos = new String[] {"Barcelona", "Chicago", "Tokio"};
 
		int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Destino", "Destino",
				0, JOptionPane.QUESTION_MESSAGE, null, destinos, 0);
 
		return destinos[seleccion];
	}
 
	private static int preguntarMedioPago() {
		String[] medios = new String[] {"Efectivo", "Tarjeta"};
 
		//Directamente retornamos la seleccion del usuario en el JOptionPane
		return JOptionPane.showOptionDialog(null, "Seleccione Medio de Pago", "Medios de Pago",
				0, JOptionPane.QUESTION_MESSAGE, null, medios, 0);
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Juan (4 intervenciones) el 15/05/2021 05:02:43
Muchas gracias en verdad que me ayudaste mucho
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Juan (4 intervenciones) el 18/05/2021 15:36:36
Hola me ayudarían con este programa :(
Realiza el código fuente en Java NetBeans del siguiente ejercicio, utilizando ventanas de opciones JOptionPane:



Realizar la simulación del servicio de UBER

El usuario selecciona el origen y destino de la ruta (utiliza 3 opciones para cada tipo
El usuario digita la hora en que necesita el servicio.
Calcular el costo del servicio de acuerdo a la ruta que se esté cotizando.
Imprimir el nombre del cliente, la ruta a realizar, la hora de salida, la hora aproximada de llegada al destino, el kilometraje a recorrer y el costo.
El pago del servicio se podrá realizar en efectivo, sólo cuando el costo del recorrido sea menor o igual a $100, en caso contrario solicitar se digite el número de tarjeta.
El cliente realiza la operación cuantas veces necesite.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Kabuto (1379 intervenciones) el 18/05/2021 20:11:07
Es muy similar al ejercicio anterior.
Tómalo como ejemplo para comenzar el código y cuándo te atasques en algo CONCRETO, nos preguntas y te ayudamos a resolverlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 15
Ha aumentado su posición en 6 puestos en Java (en relación al último mes)
Gráfica de Java

Ayuda con Ejercicio al problema de boletos de avión

Publicado por Juan (4 intervenciones) el 21/05/2021 01:45:59
Hola amm no soy nada bueno apenas em peces en esto
Y que ría ver si me ayudaba llevo esto es del ejercicio de arriba del uberv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public static void main(String[] args) {
    int coste = costeUber();
 
    String origen = preguntarOrigen();
    String destino = preguntarDestino();
            String hora = preguntarHora();
             String nombre = preguntarNombre();
 
            System.out.println("Origen: " + origen);
    System.out.println("Destino de ruta: " + destino);
    System.out.println("Coste del Uber: " + coste);
            System.out.println("hora del servicio: " + hora);
            System.out.println("nombre del cliente " + nombre);
 
 
            int medioPago = preguntarMedioPago();
    if (medioPago == 0) {
        System.out.println("Medio de pago: Efectivo");
 
 
                    }
    else {
        System.out.println("Medio de pago: Tarjeta");
 
            }
 
}
 
private static int costeUber() {
    Random azar = new Random();
    return azar.nextInt(501) + 500;
}
private static String preguntarOrigen() {
 
 
    String[] origenes = new String[] {"Sampedro", "San mateo", "Jajalpa"};
 
    int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Origen", "Origen",
            0, JOptionPane.QUESTION_MESSAGE, null, origenes, 0);
 
    return origenes[seleccion];
}
 
private static String preguntarDestino() {
 
 
    String[] destinos = new String[] {"Metepec", "Santiago", "Tenango"};
 
    int seleccion = JOptionPane.showOptionDialog(null, "Seleccione Destino", "Destino",
            0, JOptionPane.QUESTION_MESSAGE, null, destinos, 0);
 
    return destinos[seleccion];
}
 
private static int preguntarMedioPago() {
    String[] medios = new String[] {"Efectivo", "Tarjeta"};
 
 
    return JOptionPane.showOptionDialog(null, "Seleccione Medio de Pago", "Medios de Pago",
            0, JOptionPane.QUESTION_MESSAGE, null, medios, 0);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar