3
« en: 20 de Julio 2021, 19:40 »
Estimado, primero que nada gracias por la ayuda me sirvió mucho. Ahora estoy tratando de hacer lo siguiente:
Datos de un cliente X (si existe, muestra donde está alojado y todos los datos asociados)
Ojalá me puedan ayudar con eso, le dejo el código de lo que estoy haciendo.
Creé mi interfaz llamada App donde ingreso los datos para ingresar un cliente con su alojamiento.
Pero no sé cómo traer todos los otros datos ingresados??? Solo traigo el rut y el nombre.
package interfaz;
import controladora.Turismo;
import jerarquia.*;
import java.util.ArrayList;
public class App {
public static void main(String[] args) {
String rutCliente;
int opcion;
Turismo empresaTurismo = new Turismo(new ArrayList<>());
do { opcion=menu();
switch (opcion){
case 1:
rutCliente = pideRut();
if (empresaTurismo.buscarMedioAlojamiento(rutCliente)==-1){
System.out.println("Nombre Cliente"); String cliente = Leer.dato();
System.out.println("Cantidad de Noches"); int cantNoches = Leer.datoInt();
System.out.println("Valor Base Noche"); int baseNoche = Leer.datoInt();
String temporada;
do{
System.out.println("¿Temporada alta, media o baja?");
temporada= Leer.dato();
}while(temporada.compareToIgnoreCase("alta")!=0
&& temporada.compareToIgnoreCase("media")!=0
&& temporada.compareToIgnoreCase("baja")!=0);
int ingreso;
do {
System.out.println("Favor indique Hospederia...");
System.out.println("1) Carpa");
System.out.println("2) Hotel");
System.out.println("3) Cabaña");
ingreso= Leer.datoInt();
}while(ingreso<1 || ingreso>3);
System.out.println("Cantidad de Personas"); int persona = Leer.datoInt();
if (ingreso ==1){
DatosCliente d = new DatosCliente(cliente, rutCliente);
Carpa c = new Carpa(d,baseNoche,temporada,cantNoches,persona);
empresaTurismo.ingresarCarpa(c);
System.out.println("Se agenda hospedaje en Carpa");
}else {
System.out.println("¿Capacidad?"); int capa = Leer.datoInt();
System.out.println("¿es Fumador?"); boolean fumador = Leer.datoBoolean();
System.out.println("¿con desayuno?"); boolean desayuno = Leer.datoBoolean();
if (ingreso ==2){
DatosCliente d = new DatosCliente(cliente,rutCliente);
Hotel h = new Hotel(d,baseNoche,temporada,cantNoches,capa,fumador,desayuno);
empresaTurismo.ingresarHotel(h);
System.out.println("Se agenda hospedaje en Hotel");
}else {
System.out.println("¿con Chimenea?"); boolean chimenea = Leer.datoBoolean();
DatosCliente d = new DatosCliente(cliente,rutCliente);
Cabagna ca = new Cabagna(d,baseNoche,temporada,cantNoches,capa,fumador,chimenea);
empresaTurismo.ingresarCabagna(ca);
System.out.println("Se agenda hospedaje en Cabaña");
}
}
}
break;
case 2:
System.out.println(empresaTurismo.muestraTodo());
break;
case 3:
rutCliente = pideRut();
System.out.println(empresaTurismo.datosUnCliente(rutCliente));
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
}
}while (opcion!=9);
}
public static String pideRut(){
System.out.println("Favor ingrese Rut de Cliente...");
return Leer.dato();
}
public static int menu(){
System.out.println("Empresa Turismo");
System.out.println("-----------------------");
System.out.println("1) Ingresar Medio de Alojamiento");
System.out.println("2) Mostrar medios de alojamiento");
System.out.println("3) Datos de un cliente");
System.out.println("4) Total adicional");
System.out.println("5) Total bono descuento");
System.out.println("6) Cantidad medios de alojamiento X");
System.out.println("7) Valor a cancelar por un cliente X");
System.out.println("8) Aplicar incremento del valor base");
System.out.println("9) Salir");
System.out.println("-----------------------");
System.out.println("Favor ingrese una opción....");
return Leer.datoInt();
}
}
Agrego la clase Turismo que es la clase controladora donde tengo los métodos que ocupo.
package controladora;
import jerarquia.Cabagna;
import jerarquia.Carpa;
import jerarquia.Hotel;
import jerarquia.MedioDeAlojamiento;
import java.util.ArrayList;
public class Turismo {
private ArrayList<MedioDeAlojamiento> empresaTurismo;
public Turismo(ArrayList<MedioDeAlojamiento> empresaTurismo) {
this.empresaTurismo = empresaTurismo;
}
public ArrayList<MedioDeAlojamiento> getEmpresaTurismo() {
return empresaTurismo;
}
public void setEmpresaTurismo(ArrayList<MedioDeAlojamiento> empresaTurismo) {
this.empresaTurismo = empresaTurismo;
}
public int buscarMedioAlojamiento(String codRut){
for(int i=0;i< empresaTurismo.size();i++){
if(empresaTurismo.get(i).getDatosCliente().getRut().compareToIgnoreCase(codRut)==0){
System.out.println("Rut Cliente ya existe");
return i;
}
}
return -1;
}
//método para agregar un registro de carpa
public void ingresarCarpa(Carpa carpa){
if(this.buscarMedioAlojamiento(carpa.getDatosCliente().getRut())==-1){
empresaTurismo.add(carpa);
}
}
//método para agregar un registro de hotel
public void ingresarHotel(Hotel hotel){
if(this.buscarMedioAlojamiento(hotel.getDatosCliente().getRut())==-1){
empresaTurismo.add(hotel);
}
}
//método para agregar un registro de cabagna
public void ingresarCabagna(Cabagna cabagna){
if(this.buscarMedioAlojamiento(cabagna.getDatosCliente().getRut())==-1){
empresaTurismo.add(cabagna);
}
}
//2. Mostrar medios de alojamiento (muestra datos de todos los objetos almacenados)
public String muestraTodo(){
String mensaje="";
Carpa carpa;
Hotel hotel;
Cabagna cabagna;
for(int i=0;i < empresaTurismo.size();i++){
if(empresaTurismo.get(i) instanceof Carpa){
carpa = (Carpa) empresaTurismo.get(i);
mensaje = mensaje + "Datos Cliente Carpa: Rut:"+carpa.getDatosCliente().getRut() + ", Nombre:"+carpa.getDatosCliente().getNombre()
+ ", Cantidad de noches:"+ carpa.getCantidadDeNoches()
+ ", Tipo Temporada:"+ carpa.getTipoTemporada()
+ " y Cantidad Personas:"+carpa.getCantidadPersonas()+"\n";
}if (empresaTurismo.get(i) instanceof Hotel){
hotel = (Hotel) empresaTurismo.get(i);
mensaje = mensaje + "Datos Cliente hotel: Rut:"+hotel.getDatosCliente().getRut() + ", Nombre:"+hotel.getDatosCliente().getNombre()
+ ", Cantidad de noches:"+ hotel.getCantidadDeNoches() + ", Es Fumador:"+ hotel.getEsFumador()
+ ", Tipo Temporada:"+ hotel.getTipoTemporada() + ", Capacidad:"+ hotel.getCapacidad()
+ " y Incluye desayuno:"+hotel.getConDesayuno()+"\n";
}if (empresaTurismo.get(i) instanceof Cabagna){
cabagna = (Cabagna) empresaTurismo.get(i);
mensaje = mensaje + "Datos Cliente cabaña: Rut:"+cabagna.getDatosCliente().getRut() + ", Nombre:"+cabagna.getDatosCliente().getNombre()
+ ", Cantidad de noches:"+ cabagna.getCantidadDeNoches() + ", Capacidad:"+ cabagna.getCapacidad()
+ ", Tipo temporada:"+ cabagna.getTipoTemporada() + ", Es fumador:"+ cabagna.getEsFumador()
+ " y Incluye Chimenea:"+cabagna.getChimenea()+"\n";
}
}
if(mensaje.equals("")){
mensaje = "no hay Datos de Hospedaje";
return mensaje;
}else{
return mensaje;
}
}
public String datosUnCliente(String codigoRut){
for(int i=0;i< empresaTurismo.size();i++){
if(empresaTurismo.get(i).getDatosCliente().getRut().compareToIgnoreCase(codigoRut)==0){
System.out.println("Rut Cliente ya existe: " + empresaTurismo.get(i).getDatosCliente().getNombre()
+ ", " +empresaTurismo.get(i).getDatosCliente().getRut());
}else {
System.out.println("Rut Cliente no existe");
}
}
return "";
}
}
saludos.