[JAVA] Solemne 1 - Forma B

Este es el ejercicio de nuestra primera solemne. Por lo menos esto fue lo que yo hice, pero no aseguro que esté 100% correcto.

Para los que tienen la Forma A, no son muchos los cambios. Si se fijan, cambian algunos valores al validar al pasajero, rebajar el pasaje, los impuestos (ustedes no tenían el impuesto al lujo), en vez de RUT ustedes tenian Nombre y por último que en vez de disminuir en X porcentaje el valor del pasaje, ustedes tenían que aumentarlo. Pero la base de las pruebas era la misma.

Saludos, ojalá les haya ido bien.

Clase plano


class Crucero{

private String rut;
private int camarote, valor, literas;

boolean pasajeroValido(){

if(camarote >= 1 && camarote <= 300 && literas >= 1 && literas <=6){

return true;

} else {

return false;

}

}

void rebajaValorPasaje(){

if(literas == 1 || literas == 2){

valor=valor;

} else if(literas == 3 || literas == 4){

valor=(int)(valor-(valor*0.066));

} else if(literas == 5 || literas == 6) {

valor=(int)(valor-(valor*0.139));

}

}

int impuestos(){

double impuestos;

impuestos=valor*0.1345; // Impuesto al viaje
impuestos=impuestos+(valor*0.032); // Impuesto al lujo
impuestos=impuestos+(valor*0.19); // IVA

return (int)(impuestos);

}

int valorAPagar(){

return (valor+impuestos())*literas;


}

}


App

class AppCrucero{

public static void main(String[]arg){

String rut;
int camarote, valor, literas, op, rebaja;

System.out.println("RUT: ");
rut=Leer.dato();
System.out.println("Camarote: ");
camarote=Leer.datoInt();
System.out.println("Valor: ");
valor=Leer.datoInt();
System.out.println("Literas: ");
literas=Leer.datoInt();

Crucero uno = new Crucero(rut, camarote, valor, literas);

System.out.println("");
System.out.println("[1] Validar Pasajero");
System.out.println("[2] Valor a Pagar");
System.out.println("[3] Impuestos cancelados");
System.out.println("[4] Disminuir Pasaje");
op=Leer.datoInt();
System.out.println("");

switch(op){

case 1:

if(uno.pasajeroValido()){

System.out.println("Pasajero valido.");

} else {

System.out.println("Pasajero NO valido.");

}

break;

case 2:

uno.rebajaValorPasaje(); // Se aplica la rebaja
System.out.println("El total a pagar es: $"+uno.valorAPagar());

break;

case 3:
uno.rebajaValorPasaje(); // Se aplica la rebaja
System.out.println("Impuestos cancelados: $"+uno.impuestos());

break;

case 4:

System.out.println("Rebajar pasaje en (Valor actual: $ "+uno.getValor()+"): ");
rebaja=Leer.datoInt();
uno.setValor(uno.getValor()-(uno.getValor()*rebaja/100));
System.out.println("");
System.out.println("Pasaje rebajado: $"+uno.getValor());

break;

default: System.out.println("Opcion no valida.");

}

}

}

Etiquetas Etiquetas: , |

3 comentarios:

  1. Anónimo Says:

    Hola
    muy bueno el blog, ojala a todos les sirva ;)

    ahora un comentario xD
    en el metodo rebajaValorPasaje
    demas podrias haber puesto un switch, habria quedado mejor ;)

    void rebajaValorPasaje(){
    switch(literas)
    {
    case 1:
    case 2:
    break;

    case 3:
    case 4:
    valor=(int)(valor-(valor*0.066));
    break;

    case 5:
    case 6:
    valor=(int)(valor-(valor*0.139));
    break;
    }
    }


    tambien, este metodo rebajaValorPasaje lo podrias haber puesto en la clase plano, asi te evitas hacerlo en la app
    está muy bien de todos modos, pero solo digo como tambien se puede haber hecho...
    salu2

  2. Anónimo Says:

    Hola!

    Sí, tambien se puede hacer el método rebajaValorPasaje() como tú dijiste. Es otra opción. Eso para que se den cuenta de que no siempre hay una forma de hace las cosas, si no miles.

    Me alegro que esten empezando a aportar al blog, ya que la idea es que nos ayudemos todos en conjunto. Comentarios como estos son de mucha ayuda para los demás.

    Saludos y gracias por el aporte.

  3. Anónimo Says:

    Hola =)
    mas que nada, sirve para demostrar que se puede usar el switch tanto en clase plano como en App
    y tambien que se pueden llamar metodos desde ambas

    salu2