You are on page 1of 3

import java.util.

InputMismatchException;
import java.util.Scanner;
public class Aerolinea {
public static void main(String[] args) {
boolean [] asientos = new boolean[80];
boolean fin = false;
char[] codigoAsiento = {'D','A','B','C'};
int contador;
int vendidos;
int mayorEdad = 0;
int cuentaVentanas = 0;
int cuentaPasillo = 0;
int menorEdad = 0;
int edad;
int numeroAsiento;
int modulo;
int [][] pasajeros = new int[80][2];
char venderMas;
Scanner entrada = new Scanner(System.in);
for(vendidos=0;vendidos < 80;vendidos++)
asientos[vendidos] = false;
vendidos = 0;
while(!fin && (vendidos < 80)){
numeroAsiento = leerPasajero(asientos);
if (numeroAsiento < 80){
asientos[numeroAsiento] = true;
edad = 0;
while(edad < 1){
try{
System.out.println("Ingrese su edad: ");
edad = entrada.nextInt();
if ((edad < 1) || (edad>120)){
System.out.println("Error: Ingreso una edad incorrecta");
edad = 0;
}
}
catch(InputMismatchException imExcepcion){
System.out.println("Error: " + imExcepcion.getMessage());
System.out.println("Ingreso una edad incorrecta");
edad = 0;
}
}
pasajeros[vendidos][0] = numeroAsiento;
pasajeros[vendidos][1] = edad;
modulo = (numeroAsiento +1) % 4;
ImprimePasaje(pasajeros, numeroAsiento, codigoAsiento[modulo]);
vendidos++;
}
System.out.println("\nDesea vender mas boletos? (S/N)?");
venderMas = entrada.next().charAt(0);
fin = (venderMas == 'N');
}
for(contador=0;contador <80;contador++){
if (pasajeros[contador][1] > 0){
if(pasajeros[contador][1] > pasajeros[mayorEdad][1])
mayorEdad = contador;
if(pasajeros[contador][1] < pasajeros[menorEdad][1])
menorEdad = contador;
modulo = (pasajeros[contador][0]+1) % 4;
if (modulo < 2)
cuentaVentanas++;
else
cuentaPasillo++;
}
}
System.out.printf("pasajero de mayor edad: %d, Asiento: %d\n", pasajeros[mayorEdad][1],
pasajeros[mayorEdad][0]+1);
System.out.printf("pasajero de menor edad: %d, Asiento: %d\n", pasajeros[menorEdad][1],
pasajeros[menorEdad][0]+1);
System.out.printf("Pasajeros en ventana: %d\n", cuentaVentanas);
System.out.printf("Pasajeros en pasillo: %d\n", cuentaPasillo);
}
public static void ImprimePasaje(int parPasajeros[][], int parAsiento, char parLetra){
String nombre;
Scanner entrada = new Scanner(System.in);
System.out.print("Ingrese nombre pasajero: ");
nombre = entrada.nextLine();
System.out.print("\n***************\nPase A Bordo\n");
System.out.printf("Pasajero: %s\n", nombre);
System.out.printf("Asiento : %d%c\n***************\n\n", parAsiento+1, parLetra);
}
public static int leerPasajero(boolean [] parAsientos){
int asiento = 99;
int clase;
char cambiaClase;
boolean seleccionado = false;
Scanner entrada = new Scanner(System.in);
while((asiento == 99) && !seleccionado){
try{
System.out.println("Por favor escriba 1 para Primera Clase\nPor favor escriba 2 para
Economica");
clase = entrada.nextInt();
if (clase == 1){
asiento = buscaLibre(parAsientos, 0, 20);
if (asiento < 20){
seleccionado = true;
}
else{
System.out.println("***La seccion economica esta llena\n***Desea viajar en primera
clase (S/N)?");
cambiaClase = entrada.next().charAt(0);
if (cambiaClase == 'S'){
asiento = buscaLibre(parAsientos, 20, 80);
if (asiento < 80)
seleccionado = true;
else
System.out.println("El proximo vuelo sale en 3 horas");
}
else{
System.out.println("El proximo vuelo sale en 3 horas");
asiento = 99;
}
}
}
else{
if (clase == 2){
asiento = buscaLibre(parAsientos, 20, 80);
if (asiento < 80){
seleccionado = true;
}
else{
System.out.println("***La seccion primera clase esta llena\n***Desea viajar en
clase economica (S/N)?");
cambiaClase = entrada.next().charAt(0);
if (cambiaClase == 'S'){
asiento = buscaLibre(parAsientos, 0, 20);
if (asiento < 20)
seleccionado = true;
else{
System.out.println("El proximo vuelo sale en 3 horas");
asiento = 99;
}
}
else
System.out.println("El proximo vuelo sale en 3 horas");
}
}
else{
System.out.println("Ha seleccionado una clase invalida.");
}
}
}
catch(NumberFormatException nfExcepcion){
System.out.println("Error: " + nfExcepcion.getMessage());
System.out.println("Debe ingresar solo los valores 1 o 2");
asiento = 99;
clase = 0;
}
catch(InputMismatchException imExcepcion){
System.out.println("Error: " + imExcepcion.getMessage());
System.out.println("Debe ingresar solo los valores 1 o 2");
asiento = 99;
clase = 0;
}
catch(ArrayIndexOutOfBoundsException indexExcepcion){
System.out.println("Error: " + indexExcepcion.getMessage());
System.out.println("Excedio el tamo del arreglo");
asiento = 99;
clase = 0;
}
entrada.nextLine();
}
return asiento;
}
public static int buscaLibre(boolean [] parAsientos, int parInferior, int parSuperior){
int buscador = parInferior;
while((buscador < parSuperior) && parAsientos[buscador]){
buscador++;
}
return buscador;
}
}

You might also like