호텔 운영을 관리하는 프로그램 작성.(Map이용)
- 키값은 방번호
실행 예시)
**************************
호텔 문을 열었습니다.
**************************
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 1 <-- 입력
어느방에 체크인 하시겠습니까?
방번호 입력 => 101 <-- 입력
누구를 체크인 하시겠습니까?
이름 입력 => 홍길동 <-- 입력
체크인 되었습니다.
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 1 <-- 입력
어느방에 체크인 하시겠습니까?
방번호 입력 => 102 <-- 입력
누구를 체크인 하시겠습니까?
이름 입력 => 성춘향 <-- 입력
체크인 되었습니다
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 3 <-- 입력
방번호 : 102, 투숙객 : 성춘향
방번호 : 101, 투숙객 : 홍길동
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 2 <-- 입력
어느방을 체크아웃 하시겠습니까?
방번호 입력 => 101 <-- 입력
체크아웃 되었습니다.
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 1 <-- 입력
어느방에 체크인 하시겠습니까?
방번호 입력 => 102 <-- 입력
누구를 체크인 하시겠습니까?
이름 입력 => 허준 <-- 입력
102방에는 이미 사람이 있습니다.
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 2 <-- 입력
어느방을 체크아웃 하시겠습니까?
방번호 입력 => 101 <-- 입력
101방에는 체크인한 사람이 없습니다.
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 3 <-- 입력
방번호 : 102, 투숙객 : 성춘향
*******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 4 <-- 입력
**************************
호텔 문을 닫았습니다.
**************************
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | package kr.or.ddit.basic; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Scanner; import java.util.Set; public class T11_Hotel { private Scanner scan; private Map<Integer, CheckIn> HotelCheck; public T11_Hotel() { scan = new Scanner(System.in); HotelCheck = new HashMap<>(); } // 메뉴를 출력하는 메서드 public void HotelMenu() { System.out.println(); System.out.println("====================="); System.out.println(" 호텔 문을 열었습니다."); System.out.println("====================="); System.out.println(); System.out.println("어떤 업무를 하시겠습니까?"); System.out.println("1.체크인 2.체크아웃 3.객실상태 4.업무종료"); } // 프로그램을 시작하는 메서드 public void HotelMenuStart() { while (true) { HotelMenu(); // 메뉴 출력 int menuNum = scan.nextInt(); // 메뉴 번호 입력 switch (menuNum) { case 1: in(); // 체크인 break; case 2: out(); // 체크아웃 break; case 3: showRoom(); // 객실상태 break; case 4: System.out.println("====================="); System.out.println(" 호텔 문을 닫았습니다."); System.out.println("====================="); return; default: System.out.println("잘못 입력했습니다. 다시입력하세요."); } // switch문 } // while문 } /** * 객실 체크인 메서드 */ private void in() { System.out.println(); System.out.println("어느방에 체크인 하시겠습니까?"); System.out.print("방번호 입력 =>"); int roomNum = scan.nextInt(); // 이미 체크인된 방인지 검사 // get()메서드로 값을 가져올 때 가져올 자료가 없으면 null을 반환한다. if (HotelCheck.get(roomNum) != null) { System.out.println(roomNum + "방은 이미 체크인된 방입니다."); return; // 메서드 종료 } System.out.println("누구를 체크인 하시겠습니까? =>"); String name = scan.next(); HotelCheck.put(roomNum, new CheckIn(name, roomNum)); System.out.println(roomNum + "방 체크인 되었습니다."); } /** * 객실 체크아웃 메서드 */ private void out() { System.out.println(); showRoom(); System.out.println("어느방을 체크아웃 하시겠습니까?"); System.out.print("방번호 입력 =>"); int roomNum = scan.nextInt(); // remove(key) => 삭제 성공하면 삭제된 value값을 반환하고, 실패하면 null을 반환함. if (HotelCheck.remove(roomNum) == null) { System.out.println(roomNum + "방은 체크인된 방이 아닙니다.."); } else { System.out.println(roomNum + "방을 체크아웃 하였습니다."); } } /** * 객실 상태 메서드 */ private void showRoom() { Set<Integer> keySet = HotelCheck.keySet(); if (keySet.size() == 0) { System.out.println("등록된 체크인 정보가 없습니다."); } else { Iterator<Integer> it = keySet.iterator(); while (it.hasNext()) { int roomNum = it.next(); // 키값 CheckIn c = HotelCheck.get(roomNum); System.out.println(" " + "방번호:" + "\t" + c.getRoomNum() + "\t" + "투숙객:" + c.getName()); } } System.out.println("================================================"); System.out.println("출력 완료."); } public static void main(String[] args) { new T11_Hotel().HotelMenuStart(); } } /** * 체크인 정보를 저장하기 위한 VO 클래스 */ class CheckIn { private String name; // 이름 private int roomNum; // 방번호 public CheckIn(String name, int roomNum) { super(); this.name = name; this.roomNum = roomNum; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getRoomNum() { return roomNum; } public void setRoomNum(int roomNum) { this.roomNum = roomNum; } @Override public String toString() { return "CheckIn [name=" + name + ", roomNum=" + roomNum + "]"; } } | cs |
'HighJava' 카테고리의 다른 글
13_Properties (0) | 2020.09.17 |
---|---|
12_전화번호부관리 (0) | 2020.09.17 |
10_Map (0) | 2020.09.17 |
09_Hash (0) | 2020.09.17 |
08_숫자야구 (0) | 2020.09.17 |