ej_parcial_con_funciones

ej_parcial_con_funciones
mail@pastecode.io avatar
unknown
java
3 years ago
3.0 kB
3
Indexable
Never
// parcial THP YT B Santiago Santamaria

package codigo;

import java.util.Scanner;

public class Parcial {

	private static Scanner input = new Scanner(System.in);
	
	private final static String CAMIONETA = "C";
	private final static String AUTO = "A";
	private final static String MOTO = "M";
	private final static String FIN_INGRESO = "FIN";
	
	private static String vehiculo;
	
	public static int tarifa = 0;
	public static int hora;
	public static String patente;
	
	public static boolean horaPico;
	public static int totalAbonado = 0;
	
	public static double contVehiculos = 0;
	public static double contAutos = 0;
	
	private final static int TARIFA_MOTO = 50;
	private final static int TARIFA_AUTO = 100;
	private final static int TARIFA_CAMIONETA = 150;
	
	private final static int INI_HPICO = 9;
	private final static int FIN_HPICO = 18;
	
	public static void main(String[] args) {
		
		IngresarValidarPatente();
			
		// proceso vehiculo
		while (!patente.equals(FIN_INGRESO)) {
			
			IngresarValidarVehiculo();
			
			asignarTarifa();
			
			contarVehiculo();
			
			ingresarValidarHora();
			evaluarTarifaHora();
			
			reportarPeaje();
			
			IngresarValidarPatente();
		
		} 
	
		reportarResultados();
		
	} // fin MAIN
	
	
	public static void IngresarValidarPatente() {
		do {
			System.out.println("Ingrese la patente del vehiculo o FIN para terminar");
			patente = input.nextLine().toUpperCase();
		} while(patente.isEmpty());
	}
	
	
	public static void IngresarValidarVehiculo() {
		
		do {
			System.out.println("Ingrese el tipo de vehiculo |  M - Moto, A - Automovil, C o FIN para terminar");
			vehiculo = input.nextLine().toUpperCase();
		} while( !vehiculo.equals(MOTO) && !vehiculo.equals(AUTO) && !vehiculo.equals(CAMIONETA));
		
	}
	
	
	public static void asignarTarifa() {
		// case tarifas
		switch(vehiculo) {
			case MOTO: tarifa = TARIFA_MOTO; 
				break;
			case AUTO: tarifa = TARIFA_AUTO; 
				break;
			case CAMIONETA: tarifa = TARIFA_CAMIONETA; 
			break;
		}
	}
	
	
	public static void ingresarValidarHora() {
		do {
			System.out.println("Ingrese la HORA");
			hora = Integer.parseInt( input.nextLine() );
		} while( hora < 0 || hora > 23);
	}
	
	
	public static void contarVehiculo() {
		contVehiculos++;
		
		if (vehiculo.equals(AUTO)) {
			contAutos++;
		}
	}
	
	
	public static void evaluarTarifaHora() {
		horaPico = hora >= INI_HPICO && hora <= FIN_HPICO;
		
		if(horaPico) {
			tarifa = 2*tarifa;
		}
		
		totalAbonado += tarifa;
	}
	
	
	public static void reportarResultados() {
		if( contVehiculos > 0) {
			System.out.println("El total recaudado por la casilla fue: " + totalAbonado);
			System.out.println("El porcentaje de vehiculos de tipo Automovil fue : " + contAutos*100/contVehiculos);
		} else {
			System.out.println("No se ingreso ningun vehiculo");
		}
	}	
	
	
	public static void reportarPeaje() {
		System.out.println("El peaje del vehiculo de patente " + patente + " es : " + tarifa);
	}
	
} // end CLASS