PROGRAMA PARA UN EUROMILLON EN JAVA
Publicado por ka (1 intervención) el 15/11/2018 17:26:59
HOLA, queria ayuda porque no tengo ni idea de como hacer este programa, a continuacion os lo dejo a ver como lo hariais vosotros y yo hacerme una idea
GRACIAS
Objetivos:
• Lectura de datos con distintos formatos (Scanner)
• Impresión de datos con y sin formato (println y printf)
• Uso de moldes
• Uso de estructuras de control (if-else, switch)
• Uso de operadores lógicos y matemáticos
• Manejo de línea de comandos
El alumno debe demostrar el conocimiento y manejo de estos elementos, aunque tampoco es
imprescindible el uso de todos ellos para resolver la práctica. Se valorará positivamente el
correcto uso de otros elementos como métodos o bucles que se irán viendo en clase de teoría
hasta la fecha de entrega de la práctica, aunque no es obligatorio su uso para esta entrega.
Enunciado
Se desea implementar un sistema que implemente una casa de apuestas que actualmente sólo
puede emitir boletos para el Euromillón. El juego del Euromillón consiste en la selección de 5
números comprendidos en el rango [1-50] y otros dos números denominados estrellas en el
rango [0, 9].
Todo programa consta de 3 fases: lectura de datos, procesamiento de datos y salida de datos.
En este caso en cada fase se hará lo siguiente:
1. Lectura de datos
Si un usuario acierta una estrella se paga un precio P1 y si acierta un número se paga otro
precio P2 distinto por cada acierto. Así, si un usuario ha acertado 2 números y 1 estrella ganará
2*P2+1*P1 euros.
El valor al que se paga cada número (P2) y cada estrella (P1) se introduce como argumento por
línea de comandos. El precio será un número decimal, por ejemplo, 2.45345 euros por estrella
acertada y 3.54 euros por número acertado. Una vez leídos dichos números el programa
comenzará mostrando los siguientes mensajes:
Bienvenido a su Euromillón online.
Hoy el número acertado se paga a P2 euros.
Y la estrella acertada se paga a P1 euros.
Donde P1 y P2 serán los valores introducidos por línea de comandos. Los valores de P1 y P2
serán mostrados con una precisión de 2 decimales aunque para hacer el cálculo del premio
final se tendrán en cuenta todos los decimales que puedan tener los valores P1 y P2.
A continuación se preguntará si el usuario quiere que la combinación de datos se genere de
forma automática o manual. En caso de que el usuario haya seleccionado el modo manual, el
programa solicitará la lectura de 5 números y 2 estrellas. Si el usuario no ha introducido ni la
palabra “manual” ni “automatica”, entonces el programa finalizará con la frase:
El usuario introdujo mal el dato. Abortando programa.
2. Procesamiento
Si el usuario decide que quiere modo automático, entonces el programa generará una
combinación de 5 números y 2 estrellas que representará el boleto que juega el usuario.
En caso de que el usuario hubiera elegido modo manual hace falta comprobar si los datos
introducidos son erróneos o no, es decir, los estrellas están en el rango [0,9] y los números en
el rango [1, 50]. Si alguna estrella no está en dicho rango, el programa mostrará por pantalla el
siguiente error y finalizará dado que se ha detectado un error:
Se ha introducido estrellas fuera de rango
En caso de que fuera un número el que esté fuera de rango el programa finalizará dado que se
ha detectado un error y el mensaje a mostrar sería:
Se ha introducido números fuera de rango
Si todos los datos están bien el mensaje será:
Todos los datos introducidos están dentro del rango correspondiente
Tanto en el caso manual como automático habrá que comprobar si se han introducido o no
números repetidos, es decir, no se puede jugar la combinación:
Números: 3, 45, 34, 45 y 27
Estrellas: 2 y 7,
porque el 45 es número que ha sido seleccionado dos veces.
En caso de que existe al menos un número o estrella repetido el programa mostrará el
siguiente mensaje por pantalla:
Lo sentimos, algunos de los datos introducidos están repetidos
y el programa no continuará haciendo ningún cálculo más.
A continuación el programa preguntará al usuario si quiere visualizar la combinación generada.
Si introduce que sí quiere ver la combinación generada ésta se visualizará, mientras que si
introduce cualquier otro texto no se visualizará.
Una vez se tiene la combinación del usuario es necesario que el programa genere de forma
aleatoria la combinación ganadora del sorteo. Como la combinación se hace de forma
aleatorio podría darse el caso de que aparecieran números repetidos, en este caso, la
combinación ganadora pasaría a ser fija: 14, 16, 22, 34, 45 como números y como estrellas 2 y
9. Dicha combinación ganadora se mostrará por pantalla para que el usuario la conozca.
Después de obtener la combinación ganadora el siguiente paso será la comprobación la
cantidad de números y estrellas acertados. En caso de tener algún acierto el programa
calculará como se comentó anteriormente el premio que le corresponde al usuario.
3. Salida
El programa mostrará que números y/o estrellas ha acertado el usuario, para ello usará un
mensaje para cada acierto. Los mensajes serán de la forma:
Ha acertado el número 45
Ha acertado la estrella 2
Si el usuario ha ganado algún premio el programa imprimirá por pantalla con una precisión de
2 decimales un mensaje como éste:
El usuario ha ganado 3.45 euros. Enhorabuena.
Si no ha acertado ninguna estrella ni número se mostrará el siguiente mensaje:
Lo sentimos. Boleto no premiado.
El programa siempre, independientemente de si hubo algún error o se calcularon
perfectamente las combinaciones y los premios ganados, finalizará mostrando el mensaje:
Gracias por usar nuestro programa. Hasta la próxima.
Nota1: Para la lectura de números aleatorios se utilizará el método random() de la clase Math
(Math.random()), el cual devuelve un número con formato double comprendido en el intervalo
[0,1).
Nota2: Es recomendable evitar el uso de acentos tanto en las cadenas que se introducirán por
teclado (manual, automática, si, no……) como en los mensajes que se mostrarán por pantalla.
GRACIAS
Objetivos:
• Lectura de datos con distintos formatos (Scanner)
• Impresión de datos con y sin formato (println y printf)
• Uso de moldes
• Uso de estructuras de control (if-else, switch)
• Uso de operadores lógicos y matemáticos
• Manejo de línea de comandos
El alumno debe demostrar el conocimiento y manejo de estos elementos, aunque tampoco es
imprescindible el uso de todos ellos para resolver la práctica. Se valorará positivamente el
correcto uso de otros elementos como métodos o bucles que se irán viendo en clase de teoría
hasta la fecha de entrega de la práctica, aunque no es obligatorio su uso para esta entrega.
Enunciado
Se desea implementar un sistema que implemente una casa de apuestas que actualmente sólo
puede emitir boletos para el Euromillón. El juego del Euromillón consiste en la selección de 5
números comprendidos en el rango [1-50] y otros dos números denominados estrellas en el
rango [0, 9].
Todo programa consta de 3 fases: lectura de datos, procesamiento de datos y salida de datos.
En este caso en cada fase se hará lo siguiente:
1. Lectura de datos
Si un usuario acierta una estrella se paga un precio P1 y si acierta un número se paga otro
precio P2 distinto por cada acierto. Así, si un usuario ha acertado 2 números y 1 estrella ganará
2*P2+1*P1 euros.
El valor al que se paga cada número (P2) y cada estrella (P1) se introduce como argumento por
línea de comandos. El precio será un número decimal, por ejemplo, 2.45345 euros por estrella
acertada y 3.54 euros por número acertado. Una vez leídos dichos números el programa
comenzará mostrando los siguientes mensajes:
Bienvenido a su Euromillón online.
Hoy el número acertado se paga a P2 euros.
Y la estrella acertada se paga a P1 euros.
Donde P1 y P2 serán los valores introducidos por línea de comandos. Los valores de P1 y P2
serán mostrados con una precisión de 2 decimales aunque para hacer el cálculo del premio
final se tendrán en cuenta todos los decimales que puedan tener los valores P1 y P2.
A continuación se preguntará si el usuario quiere que la combinación de datos se genere de
forma automática o manual. En caso de que el usuario haya seleccionado el modo manual, el
programa solicitará la lectura de 5 números y 2 estrellas. Si el usuario no ha introducido ni la
palabra “manual” ni “automatica”, entonces el programa finalizará con la frase:
El usuario introdujo mal el dato. Abortando programa.
2. Procesamiento
Si el usuario decide que quiere modo automático, entonces el programa generará una
combinación de 5 números y 2 estrellas que representará el boleto que juega el usuario.
En caso de que el usuario hubiera elegido modo manual hace falta comprobar si los datos
introducidos son erróneos o no, es decir, los estrellas están en el rango [0,9] y los números en
el rango [1, 50]. Si alguna estrella no está en dicho rango, el programa mostrará por pantalla el
siguiente error y finalizará dado que se ha detectado un error:
Se ha introducido estrellas fuera de rango
En caso de que fuera un número el que esté fuera de rango el programa finalizará dado que se
ha detectado un error y el mensaje a mostrar sería:
Se ha introducido números fuera de rango
Si todos los datos están bien el mensaje será:
Todos los datos introducidos están dentro del rango correspondiente
Tanto en el caso manual como automático habrá que comprobar si se han introducido o no
números repetidos, es decir, no se puede jugar la combinación:
Números: 3, 45, 34, 45 y 27
Estrellas: 2 y 7,
porque el 45 es número que ha sido seleccionado dos veces.
En caso de que existe al menos un número o estrella repetido el programa mostrará el
siguiente mensaje por pantalla:
Lo sentimos, algunos de los datos introducidos están repetidos
y el programa no continuará haciendo ningún cálculo más.
A continuación el programa preguntará al usuario si quiere visualizar la combinación generada.
Si introduce que sí quiere ver la combinación generada ésta se visualizará, mientras que si
introduce cualquier otro texto no se visualizará.
Una vez se tiene la combinación del usuario es necesario que el programa genere de forma
aleatoria la combinación ganadora del sorteo. Como la combinación se hace de forma
aleatorio podría darse el caso de que aparecieran números repetidos, en este caso, la
combinación ganadora pasaría a ser fija: 14, 16, 22, 34, 45 como números y como estrellas 2 y
9. Dicha combinación ganadora se mostrará por pantalla para que el usuario la conozca.
Después de obtener la combinación ganadora el siguiente paso será la comprobación la
cantidad de números y estrellas acertados. En caso de tener algún acierto el programa
calculará como se comentó anteriormente el premio que le corresponde al usuario.
3. Salida
El programa mostrará que números y/o estrellas ha acertado el usuario, para ello usará un
mensaje para cada acierto. Los mensajes serán de la forma:
Ha acertado el número 45
Ha acertado la estrella 2
Si el usuario ha ganado algún premio el programa imprimirá por pantalla con una precisión de
2 decimales un mensaje como éste:
El usuario ha ganado 3.45 euros. Enhorabuena.
Si no ha acertado ninguna estrella ni número se mostrará el siguiente mensaje:
Lo sentimos. Boleto no premiado.
El programa siempre, independientemente de si hubo algún error o se calcularon
perfectamente las combinaciones y los premios ganados, finalizará mostrando el mensaje:
Gracias por usar nuestro programa. Hasta la próxima.
Nota1: Para la lectura de números aleatorios se utilizará el método random() de la clase Math
(Math.random()), el cual devuelve un número con formato double comprendido en el intervalo
[0,1).
Nota2: Es recomendable evitar el uso de acentos tanto en las cadenas que se introducirán por
teclado (manual, automática, si, no……) como en los mensajes que se mostrarán por pantalla.
Valora esta pregunta
0