Advertisement
KaiserRego

G5E11ExpendedorDePasajes

Sep 25th, 2014
259
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.79 KB | None | 0 0
  1. public class G5E11ExpendedorDePasajes {
  2.    
  3.     private double precioPorKm;
  4.     private int cantidadDePasajesVendidos;
  5.     private double distanciaMaximaGuardada;
  6.     private double distanciaTotalGuardada;
  7.    
  8.     /* CONSTRUCTOR post: inicializa el atributo precioPorKm con el valor recibido por el parámetro
  9.      * del mismo nombre si el valor es mayor a 0. Sino, se inicializa el atributo precioPorKm en 0.0. */
  10.     public G5E11ExpendedorDePasajes(double precioPorKm){
  11.         if (precioPorKm > 0.0){
  12.             this.precioPorKm = precioPorKm;
  13.         }
  14.         else{
  15.             precioPorKm = 0.0;
  16.         }
  17.     }
  18.    
  19.     /* pre: se pasa como parámetro una distanciaEnKm mayor a 0.
  20.      * post: si se cumplen las pre, se suma +1 a la cantidadDePasajesVendidos, se consulta si la distanciaEnKm
  21.      * es superior a la distanciaMaximaGuardada, se agrega la distanciaEnKm a la distanciaTotalGuardada, y se devuelve
  22.      * el precio del pasaje (el producto entre el atributo precioPorKm y el parámetro pasado distanciaEnKm).
  23.      * Sino se cumplen las pre, se devuelve 0.
  24.      */
  25.     public double venderPasaje (double distanciaEnKm){
  26.         if (distanciaEnKm > 0){
  27.             cantidadDePasajesVendidos++;
  28.             if (distanciaEnKm > distanciaMaximaGuardada){
  29.                 distanciaMaximaGuardada = distanciaEnKm;
  30.             }
  31.             distanciaTotalGuardada = distanciaTotalGuardada + distanciaEnKm;
  32.             return (precioPorKm * distanciaEnKm);
  33.         }
  34.         else {
  35.             return (0);
  36.         }
  37.     }
  38.     /* pre: se pasa como parámetro una distanciaEnKm y una cantidad mayores a 0.
  39.      * post: si se cumplen las pre, se suma la cantidad a la cantidadDePasajesVendidos y se devuelve
  40.      * el precio total de los pasajes (el producto entre la cantidad e invocar el método venderPasaje
  41.      * con el parámetro distanciaEnKm).
  42.      * Sino se cumplen las pre, se devuelve 0.
  43.      */
  44.     public double venderPasajes (int cantidad, double distanciaEnKm){
  45.         if (cantidad > 0 && distanciaEnKm > 0){
  46.             /* Se suma el parámetro pasado cantidad a la cantidadDePasajesVendidos. Se resta -1 para anular
  47.              * la suma de +1 que se hará al invocar el método venderPasaje. */
  48.             cantidadDePasajesVendidos = cantidadDePasajesVendidos + cantidad -1;
  49.             return (cantidad * venderPasaje (distanciaEnKm));
  50.         }
  51.         else {
  52.             return (0);
  53.         }
  54.     }
  55.    
  56.     /* post: devuelve la cantidadDePasajesVendidos. */
  57.     public int pasajesVendidos(){
  58.         return (cantidadDePasajesVendidos);
  59.     }
  60.    
  61.     /* post: devuelve la distanciaMaximaGuardada en un pasaje. */
  62.     public double distanciaMaxima(){
  63.         return (distanciaMaximaGuardada);
  64.     }
  65.    
  66.     /* post: devuelve la distanciaPromedio de los pasajes. */
  67.     public double distanciaPromedio(){
  68.         return (distanciaTotalGuardada / cantidadDePasajesVendidos);
  69.     }
  70.    
  71.     /* post: devuelve la el total de dinero realizado, multiplicando el precioPorKm por la distanciaTotalGuardada. */
  72.     public double ventaTotal(){
  73.         return (precioPorKm * distanciaTotalGuardada);
  74.     }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement