오늘 학습한 내용
- Java : 팀 과제
- 프로그래머스 문풀
팀 과제 (호텔 예약)
우선 전체 코드는 다음 링크를 확인하자.
https://github.com/hakjunjoo/Hotel_05
GitHub - hakjunjoo/Hotel_05: 호텔예약 팀과제
호텔예약 팀과제. Contribute to hakjunjoo/Hotel_05 development by creating an account on GitHub.
github.com
내가 담당한 내용은 호텔 예약 취소 기능이었다.
구현한 내용은 다음과 같다.
private static void cancelReservation() {
Scanner sc = new Scanner(System.in);
boolean exist = true;
while(exist) {
// 1. 예약 취소 화면 출력
System.out.println("====================================");
System.out.println("예약 취소를 선택하셨습니다.");
System.out.println("예약 번호를 조회합니다. 예약 번호를 입력해주세요");
System.out.print("여기에 예약번호를 입력해주세요 => ");
UUID cancelID = UUID.fromString(sc.next());
System.out.print("여기에 예약하신 전화번호 뒷 자리를 입력해주세요 => ");
String phoneNum = sc.next();
// 2. 예약 번호 조회
for (int i = 0; i < hotel.getreservationlist().size(); i++) { // 예약 번호와 전화 번호가 맞는 경우
String phone = hotel.getreservationlist().get(i).getCutomer().getPhoneNumber().substring(9);
if(cancelID.equals(hotel.getreservationlist().get(i).getUuid()) && phoneNum.equals(phone)) {
exist = false;
System.out.println("====================================");
System.out.println("고객 이름 : " + hotel.getreservationlist().get(i).getCutomer().getName());
System.out.println("고객 번호 : " + hotel.getreservationlist().get(i).getCutomer().getPhoneNumber());
System.out.println("객실 : " + hotel.getreservationlist().get(i).getHotelRoom().getroomsize());
System.out.println("예약 날짜 : " + hotel.getreservationlist().get(i).getDate());
System.out.println("====================================");
System.out.println("위의 예약을 취소하시겠습니까?"); // 3. 예약 취소 확인
System.out.println("\n1. 예. 2. 아니오.");
System.out.print("여기에 번호를 입력해주세요 => ");
int a = sc.nextInt();
switch (a) {
case 1 -> { // 4. 예약 취소
hotel.getreservationlist().remove(i);
System.out.println("====================================");
System.out.println("해당 예약을 취소했습니다.");
System.out.println("초기 화면으로 돌아갑니다.");
}
case 2 -> {
System.out.println("====================================");
System.out.println("이전 화면으로 돌아갑니다.");
}
}
}
}
if(exist) {
System.out.println("====================================");
System.out.println("입력하신 예약번호 또는 전화번호 뒷 자리가 다릅니다.");
System.out.println("이전 화면으로 돌아갑니다.");
}
}
}
주요 기능은
- uuid를 활용하여 예약 번호를 부여 받고, 조회나 삭제 기능에 활용할 수 있도록 하였다.
- 예약 번호와 전화번호 뒷자리가 모두 맞아야만 해당 예약 내용이 출력될 수 있도록 반복문 속 조건문을 구성했다.
아쉬운 내용
하나의 메소드가 너무 긴 문장을 가지고 있으면 가독성이 떨어지는 느낌을 받아서 코드를 최대한 간결하게 구현하고 싶었는데 아직 스캐너로 입력받는 부분이 능숙하지 않아서 결국 하나의 메소드 안에 모든 기능을 구현했다. 이 부분이 가장 아쉬운 부분인 것 같다.
더 많이 공부하고 더 많이 코드를 구현해보면 많이 좋아질 것이다 !!
'TIL&WIL' 카테고리의 다른 글
| 2023-06-10 TIL (프로그래머스 문풀) (0) | 2023.06.10 |
|---|---|
| 2023-06-09 TIL (Java 문법 복습, 프로그래머스 문풀) (1) | 2023.06.09 |
| 2023-06-07 TIL (Java 프로그래머스 문풀, 팀 과제) (0) | 2023.06.07 |
| 2023-06-05 TIL (Java 메모장 만들기(팀 과제 전 몸풀기)) (0) | 2023.06.05 |
| 2023-06-02 TIL (Java 키오스크 만들기, 프로그래머스 문풀) (0) | 2023.06.02 |