Programming

Examen Primer Trimestre

Enunciado

La Delegación del Gobierno en Canarias nos ha solicitado el desarrollo de una aplicación para la gestión de las ayudas destinadas a paliar daños materiales en viviendas, provocados por el volcán de La Palma.

Para estos daños, el gobierno del estado ha establecido 3 tipos de ayudas:

  1. Por destrucción total de la vivienda habitual
  2. Por daños que afecten a la estructura de la vivienda habitual
  3. Por daños que no afecten a la estructura de la vivienda habitual

Por lo tanto, lo primero que debe hacer la aplicación es mostrar un menú en el que se pregunte al usuario el tipo de ayuda que está solicitando o 0 si lo que quiere es que finalice el programa. Copia y pega los textos del OUTPUT, para que no existan fallos tipográficos en el menú.

Este menú se mostrará a través de la función mostrarMenu().

Si el usuario elige alguno de los 3 tipos de ayuda, la aplicación debe preguntar al usuario la "Cantidad solicitada: ". La cantidad que el usuario solicite no podrá ser superior a las cuantías máximas de las ayudas establecidas en el Real Decreto-ley 20/2021 y que son las que se muestran a continuación para cada uno de los tipos de ayuda:

  1. Por destrucción total de la vivienda habitual: 30240
  2. Por daños que afecten a la estructura de la vivienda habitual: 20640
  3. Por daños que no afecten a la estructura de la vivienda habitual: 10320

Por ello, la aplicación deberá invocar a la función cuantiaOtorgada(), a la que se le envía el tipo de ayuda y la cantidad solicitadas. La función cuantiaOtorgada()devolverá:

  • la cantidad solicitada, en caso de que ésta no sea superior a la cuantía máxima para ese tipo de ayuda.
    ó
  • la cuantía máxima establecida para el tipo de ayuda, en el caso de que la cantidad solicitada sea superior a la máxima para ese tipo de ayuda.

Finalmente, cuando el usuario decida salir de la aplicación (eligiendo la opción 0 del menú) la aplicación debe informar de la cuantía total de las ayudas otorgadas.

Solución


											
package ayudaspalma; import java.util.Scanner; public class AyudasPalma { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { int tipoAyuda; long cuantiaTotal = 0, cuantiaSolicitada; do { mostrarMenu(); tipoAyuda = sc.nextInt(); if(tipoAyuda >= 1 && tipoAyuda <= 3) { System.out.println("Cantidad solicitada: "); cuantiaSolicitada = sc.nextLong(); cuantiaTotal += cuantiaOtorgada(tipoAyuda, cuantiaSolicitada); } } while (tipoAyuda != 0); System.out.println("Se han concedido ayudas por un total de: " + cuantiaTotal); } static void mostrarMenu() { System.out.println("MENU AYUDAS"); System.out.println("1.- Por destruccion total de la vivienda habitual"); System.out.println("2.- Por danos que afecten a la estructura de la vivienda habitual"); System.out.println("3.- Por danos que no afecten a la estructura de la vivienda habitual"); System.out.println("0.- Salir"); System.out.println("Elija un tipo de ayuda (0-3)"); } static long cuantiaOtorgada(int tipoAyuda, long cuantiaSolicitada) { long cuantiaMaxima = 0; switch(tipoAyuda){ case 1: cuantiaMaxima = 30240; break; case 2: cuantiaMaxima = 20640; break; case 3: cuantiaMaxima = 10320; break; } if(cuantiaSolicitada > cuantiaMaxima) { cuantiaSolicitada = cuantiaMaxima; } return cuantiaSolicitada; } }

Input

1 30239 1 31000 2 20639 2 21000 3 10319 3 11000 0
3 11000 3 10319 2 21000 2 20639 1 31000 1 30239 0

Output

MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Se han concedido ayudas por un total de: 122397
MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Cantidad solicitada: MENU AYUDAS 1.- Por destruccion total de la vivienda habitual 2.- Por danos que afecten a la estructura de la vivienda habitual 3.- Por danos que no afecten a la estructura de la vivienda habitual 0.- Salir Elija un tipo de ayuda (0-3) Se han concedido ayudas por un total de: 122397