sábado, 18 de junio de 2011

Deitel_Java_6.8 (Cobro Por Hora en Estacionamiento, Programa en Java)

6.8 Un estacionamiento cobra una cuota mínima de $2.00 por estacionarse hasta tres horas. El estacionamiento cobra $0.50 adicionales por cada hora o fracción que pase de tres horas. El cargo máximo para cualquier periodo dado de 24 horas es de $10.00. Suponga que ningún automóvil se estaciona más de 24 horas a la vez. Escriba una aplicación que calcule y muestre los cargos por estacionamiento para cada cliente. El programa debe mostrar el cargo para el cliente actual y debe calcular y mostrar el total corriente de los recibos de ayer. El programa debe utilizar el método Cargo para determinar el cargo para cada cliente.
____________________________________________________________________________________________________
Con este problema empiezo a subir los ejercicios del capítulo 5 de Deitel y Deitel Java Cómo Programar, séptima edición. Como con los otros capítulos, algunos ejercicios, correspondientes a sentencias simples del tipo "¿qué imprime esta linea?", por ser demasiado sencillos no se tendrán en cuenta.

Este problema no presenta mayor complicación. A continuación se presenta el código.

Este archivo debe guardarse con el nombre de UsaDeitel_6_8.java
 public class UsaDeitel_6_8

 {          // Abre clase UsaDeitel_6_8

 public static void main(String args[])
 {       // Abre main
 
 Deitel_6_8 miObjeto = new Deitel_6_8();

 // Llama al metodo Recibe()
 miObjeto.Recibe();

 }       // Cierra main
 }          // Cierra clase UsaDeitel_6_8

Este código debe guardarse con el nombre Deitel_6_8.java

 import java.util.Scanner;


 public class Deitel_6_8

 {         // Abre clase Deitel_6_8


  /////////////////////////////////////////////////
  //METODO RECIBE
  /////////////////////////////////////////////////

  public void Recibe()

  {    // Abre el metodo Recibe
  Scanner entrada = new Scanner(System.in);
  double horas = 0;
  double cargos = 0;
  double total = 0;
  int contador = 1;

  System.out.println("\nBienvenido al sistema de cobro del estacionamiento!.");

  System.out.printf("Por favor introduzca el numero de horas del coche: %d:\n", contador++);
  System.out.print("\n(-1 para terminar)\n");
  horas =  entrada.nextDouble();

  while ( -1 != horas )
  {       // Abre ciclo do

  System.out.printf("\nEl cargo para este usuario es de: %.2f\n", Cargo(horas));
  total += Cargo(horas);

  System.out.printf("Por favor introduzca el numero de horas del coche: %d:\n", contador++);
  System.out.print("\n(-1 para terminar)\n");
  horas =  entrada.nextDouble();

  } // Cierra while 

  System.out.printf("\nEl cargo total del dia es: %.2f\n", total);
          
  }    // Cierra el metodo Recibe


  ///////////////////////////////////////////
  //METODO CARGO
  //////////////////////////////////////////

  public double Cargo( double x)
  {     // Abre el metodo Cargo

  if ( 3 >= x )
  return 2.0;

  else
  return (2 + 0.5*Math.ceil(x - 3)) <= 10? 2 + 0.5*Math.ceil(x -3) : 10; 

  }     // Cierra el metodo Cargo

 }         // Cierra clase Deitel_6_8

6 comentarios:

  1. en donde usaste la variable de instancia cargos?

    ResponderEliminar
    Respuestas
    1. Hola. Yo creo que es claro el uso de "cargos". Saludos.

      Eliminar
  2. Esta mal planteado el ejercicio, en el orden normal de eventos debes almacenar la hora de entrada, al regresar el cliente debes registrar la hora de salida y luego hacer el calculo

    ResponderEliminar
  3. disculpa si la empresa de estacionamiento tiene varias sucursales y desea realizar alguna promociones en futuro , como lo podría hacer, me podrías ayudar?

    ResponderEliminar

Related Posts Plugin for WordPress, Blogger...