Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% encontró este documento útil (0 votos)
53 vistas20 páginas

Examen Final POO

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 20

 Universidad dominicana O & M 

Carrera
Ing. En sistemas y computación 

Asignatura
Programación orientada a objetos

Sección
0422

Facilitador
JOSE RAFAEL ROJAS BERIGUETE

Tema
Hotel punta paraíso

Sustentantes
RAIBER VIZCAÍNO LARA 21-MIST-1-039
Stiwart Fernando Buret Cuevas 21-SIST-1-005
Ashley Orfelia Peña Frías 21-sist-1-052
Milly Jeromill Romero Matos 21 SIST 1 046

Fecha de entrega
12/12/2022

December 12, 2022 1


LA CLASE MAIN

package hotelpunta.paraiso.com;

public class Main {


public static void main(String[] args) {
new Menu().showMenu();
}
}

LA CLASE MENU [realizada por Stiwart y Raiber]

package hotelpunta.paraiso.com;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;

public class Habitaciones {


HashMap<String, HashMap> habitacionesReservada = new HashMap<>();
HashMap<String, HashMap> personasLlegada = new HashMap<>();
HashMap<String, ArrayList<Double>> montoConsumoCliente = new
HashMap<>();
HashMap<String, ArrayList<String>> listaConsumoCliente = new
HashMap<>();
List<String> idPersona = new ArrayList<>();
public static String idContext = "";
public static boolean entradaReserva = true;

//Funtion que se ejecutara cuando la persona reserve una


Habitacion
//y devolvera un booleano.
public Boolean reservar(String tipo, int semana){
if (habitacionesReservada.size() < 100) {
HashMap<String, String> datos = new HashMap<>();
HashMap<String, String> fechaIO = getFechaInOut(semana);
String id = generarID();
if (idPersona.toString().indexOf(id) == -1) {
idPersona.add(id);
} else {
do {
id = generarID();
if (idPersona.toString().indexOf(id) == -1) {
idPersona.add(id);
} else break;
} while (true);
}

montoConsumoCliente.put(id, new ArrayList());


listaConsumoCliente.put(id, new ArrayList<String>());

datos.put("tipo", tipo);

December 12, 2022 2


datos.put("fechaEntrada", fechaIO.get("fechaEntrada"));
datos.put("fechaSalida", fechaIO.get("fechaSalida"));
datos.put("isReserva", "true");
String pulsera = (semana == 1) ? "Amarillo" : (semana ==
2) ? "Rojo" : (semana >= 3) ? "Dorada" : "No valida";
datos.put("pulsera", pulsera);
datos.put("habitacion",
Integer.toString(habitacionesReservada.size()+1));
datos.put("semana", Integer.toString(semana));
habitacionesReservada.put(id, datos);
idContext = id;
}else{
System.out.println("No hay habitaciones disponibles por el
momento, por favor intentarlo mas tarde");
return false;
}
return true;
}

//Metodo que sera ejecutado para las personas que no reserven una
habitacion
public void entradaSinReserva(){
HashMap<String, String> datos = new HashMap<>();
HashMap<String, String> fechaIO = getFechaInOut(0);

String id = generarID();
if (idPersona.toString().indexOf(id) == -1) {
idPersona.add(id);
} else {
do {
id = generarID();
if (idPersona.toString().indexOf(id) == -1) {
idPersona.add(id);
} else break;
} while (true);
}

montoConsumoCliente.put(id, new ArrayList());


listaConsumoCliente.put(id, new ArrayList<String>());

datos.put("tipo", "null");
datos.put("fechaEntrada", fechaIO.get("fechaEntrada"));
datos.put("fechaSalida", fechaIO.get("fechaSalida"));
datos.put("isReserva", "false");
datos.put("habitacion", "-1");
datos.put("pulsera", "-1");
datos.put("semana", "0");

personasLlegada.put(id, datos);
idContext = id;
entradaReserva = false;
}

//Funcion utililizada para generar una identificacion para cada


cliente
//asi poder identificarlo luego.
public String generarID(){
int max = 9999999;
int min = 1000000;
return (String) Integer.toString((int)
Math.floor(Math.random() * min + (max - min)));

December 12, 2022 3


}

//Funcion que devuelve un HashMap con la fecha de salida y de


entrada
public HashMap getFechaInOut(int semana){
HashMap<String, String> fecha_tiempo = new HashMap<>();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("a",
Locale.ENGLISH);
LocalDateTime fechaEntrada = LocalDateTime.now();
fechaEntrada.format(formatter);
fecha_tiempo.put("fechaEntrada", getFechaStr(fechaEntrada));

LocalDateTime fechaSalida = fechaEntrada.plusDays(semana * 7);


fecha_tiempo.put("fechaSalida", getFechaStr(fechaSalida));

return fecha_tiempo;
}

//Para obtener la fecha en un String.


public String getFechaStr(LocalDateTime ldt){
return ldt.getYear()+"-"+ldt.getMonthValue()+"-
"+ldt.getDayOfMonth()+" "+ldt.getHour()+":"+ldt.getMinute();
}

//Para obtener todos los restaurantes disponibles.


public String[] restaurantes(){
String[] restDisponible = new
String[]{"Bufet","Mariscos","Carne","Pastas","Especializado en comida
Japonesa", "Especializado en mexicana"};
return restDisponible;
}
}

Funcionamiento del programa

Menú al iniciar el programa

December 12, 2022 4


Opción #1
Operación #1

Opción #1
Operación #2

¿Cuánta semana durara?: 3


Operación #3

Opción #1 – Menú de bienvenida al cliente


Operación #4

Opción #1
Operación #5

December 12, 2022 5


Opción #3
Operación #6

Luego vuelve a salir el mismo Menú para permitirle seleccionar de nuevo

Opción #0
Operación #7

Menú anterior

Opción #2
Operación #8

December 12, 2022 6


Opción #5
Operación #9

Opción #6
Operación #10

Opción #2
Operación #11

December 12, 2022 7


Opción #3
Operación #12

Opción #5
Operación #13

Opción #2
Operación #14

December 12, 2022 8


Opción #4
Operación #15

Inicio de nuevo

Opción #3
Operación #17

Opción #1
Operación #18

December 12, 2022 9


Opción #2
Operación #19

Opción #4
Operación #20

Opción #5
Operación #21

December 12, 2022 10


Opción #0
Operación #22

Opción #2
Operación #23

Opción #5
Operación #24

Opción #1
Operación #25

December 12, 2022 11


Opción #2
Operación #26

Opción #3
Operación #27

Opción #4
Operación #28

Opción #0
Operación #29

Opción #5
Operación #30

December 12, 2022 12


Opción #1
Operación #31

Opción #6
Operación #32

Opción #1
Operación #33

December 12, 2022 13


Opción #0
Operación #34

Opción #3
Operación #35

Opción #1
Operación #36

Opción #2
Operación #37

Opción #3
Operación #38

December 12, 2022 14


Opción #4
Operación #39

Opción #5
Operación #40

Opción #0
Operación #41

Opción #5
Operación #42

December 12, 2022 15


Opción #4
Operación #43

Opción #2
Operación #44

Opción #4
Operación #45

Opción #1
Operación #46

December 12, 2022 16


Opción #2
Operación #47

Aquí ahora se encuentra dentro del Hotel, pero sin reservar una habitación

Opción #1
Operación #48

Opción #1
Operación #54

Opción #2
Operación #49

Opción #3
Operación #50

December 12, 2022 17


Opción #4
Operación #51

Opción #5
Operación #52

Opción #6
Operación #53

Opción #0
Operación #55

Opción #0
Operación #56

Opción #5
Operación #57

December 12, 2022 18


Opción #2
Operación #58

Opción #7
Operación #59

Opción #0
Operación #60

December 12, 2022 19


Opción #1
Operación #60

Mensaje que saldrá cuando cierre el programa si el cliente había reservado una
habitación

Mensaje que saldrá cuando cierre el programa si el cliente no había reservado


una habitación

December 12, 2022 20

También podría gustarte