호텔 객실관리프로그램 - hotel gaegsilgwanlipeulogeulaem

package kr.or.ddit.basic; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Scanner; /*문제) 호텔 객실을 관리하는 프로그램을 작성하시오. 조건1) 호텔 객식을 나타내는 Room클래스는 방번호(int), 방종류, 투숙객이름 필드로 구성되어 있고 방번호와 방종류는 다음과 같다. - 201~209 : 싱글룸 - 301~309 : 더블룸 - 401~409 : 스위트룸 조건2) 전체 객실 관리는 Map을 이용한다. (Map의 key값은 방번호로 하고 value값은 Room의 인스턴스로 한다.) 생성자에서는 방번호와 방종류를 초기화한다. 실행예시) ********************************************* 호텔문을 열었습니다. 어서오십시요. ********************************************* ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 1 <--- 입력 ---------------------------------------------- 체크인 작업 ---------------------------------------------- * 201~209 : 싱글룸 * 301~309 : 더블룸 * 401~409 : 스위트룸 ---------------------------------------------- 번호 입력 >> 101 <--- 입력 101호 객실은 존재하지 않습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 1 <--- 입력 ---------------------------------------------- 체크인 작업 ---------------------------------------------- * 201~209 : 싱글룸 * 301~309 : 더블룸 * 401~409 : 스위트룸 ---------------------------------------------- 번호 입력 >> 201 <--- 입력 누구를 체크인 하시겠습니까? 이름 입력 >> 홍길동 체크인이 완료되었습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 1 <--- 입력 ---------------------------------------------- 체크인 작업 ---------------------------------------------- * 201~209 : 싱글룸 * 301~309 : 더블룸 * 401~409 : 스위트룸 ---------------------------------------------- 번호 입력 >> 201 <--- 입력 201호 객실은 이미 손님이 있습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 3 <--- 입력 ---------------------------------------------- 현재 객실 상태 ---------------------------------------------- 번호 종류 투숙객 이름 ---------------------------------------------- 201 싱글룸 홍길동 202 싱글룸 - 203 싱글룸 - 204 싱글룸 - 205 싱글룸 - 206 싱글룸 - 207 싱글룸 - 208 싱글룸 - 209 싱글룸 - 301 더블룸 - 302 더블룸 - 303 더블룸 - 304 더블룸 - 305 더블룸 - 306 더블룸 - 307 더블룸 - 308 더블룸 - 309 더블룸 - 401 스위트룸 - 402 스위트룸 - 403 스위트룸 - 404 스위트룸 - 405 스위트룸 - 406 스위트룸 - 407 스위트룸 - 408 스위트룸 - 409 스위트룸 - ---------------------------------------------- ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 2 <--- 입력 ---------------------------------------------- 체크아웃 작업 ---------------------------------------------- 체크아웃 번호를 입력하세요. 방번호 입력 >> 101 <--- 입력 101호 객실은 존재하지 않습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 2 <--- 입력 ---------------------------------------------- 체크아웃 작업 ---------------------------------------------- 체크아웃 번호를 입력하세요. 방번호 입력 >> 303 <--- 입력 303호 객실에는 체크인 사람이 없습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 2 <--- 입력 ---------------------------------------------- 체크아웃 작업 ---------------------------------------------- 체크아웃 번호를 입력하세요. 방번호 입력 >> 201 <--- 입력 201호 객실의 홍길동님 체크아웃을 완료하였습니다. ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 3 <--- 입력 ---------------------------------------------- 현재 객실 상태 ---------------------------------------------- 번호 종류 투숙객 이름 ---------------------------------------------- 201 싱글룸 - 202 싱글룸 - 203 싱글룸 - 204 싱글룸 - 205 싱글룸 - 206 싱글룸 - 207 싱글룸 - 208 싱글룸 - 209 싱글룸 - 301 더블룸 - 302 더블룸 - 303 더블룸 - 304 더블룸 - 305 더블룸 - 306 더블룸 - 307 더블룸 - 308 더블룸 - 309 더블룸 - 401 스위트룸 - 402 스위트룸 - 403 스위트룸 - 404 스위트룸 - 405 스위트룸 - 406 스위트룸 - 407 스위트룸 - 408 스위트룸 - 409 스위트룸 - ---------------------------------------------- ----------------------------------------------------------- 어떤 업무를 하시겠습니까? 1. 체크인 2. 체크아웃 3. 객실상태 4. 업무종료 ----------------------------------------------------------- 선택>> 4 <--- 입력 ********************************************* 호텔문을 닫았습니다. ********************************************* */ public class homework { private HashMap<Integer,Room> roomMap; private Scanner scan; public homework(){ roomMap = new HashMap<>(); scan = new Scanner(System.in); for (int i = 200; i < 500; i+=100) { for (int j = 1; j < 10; j++) { switch(i/100){ case 2: roomMap.put(i+j, new Room(i+j, "싱글룸", "-")); break; case 3: roomMap.put(i+j, new Room(i+j, "더블룸", "-")); break; case 4: roomMap.put(i+j, new Room(i+j, "스위트룸", "-")); break; } } } } public static void main(String[] args) { new homework().roomStart(); } //프로그램 시작 메서드 public void roomStart(){ System.out.println(); System.out.println("*********************************************"); System.out.println(" 호텔문을 열었습니다. 어서오십시요."); System.out.println("*********************************************"); System.out.println(); while(true){ int choice = Task(); switch(choice){ case 1 : checkIn(); break; case 2 : checkOut(); break; case 3 : roomCondition(); break; case 4 : System.out.println("*********************************************"); System.out.println(" 호텔문을 닫았습니다."); System.out.println("*********************************************"); return; default : System.out.println("작업 번호를 잘못 입력했습니다."); System.out.println("다시 선택하세요."); } } } private void checkIn(){ System.out.println("----------------------------------------------"); System.out.println(" 체크인 작업"); System.out.println("----------------------------------------------"); System.out.println("* 201~209 : 싱글룸"); System.out.println("* 301~309 : 더블룸"); System.out.println("* 401~409 : 스위트룸"); System.out.println("----------------------------------------------"); System.out.println("방 번호 입력 >>"); int roomnum = scan.nextInt(); //방번호가 없을때 if(!roomMap.containsKey(roomnum)){ System.out.println(roomnum + "호 객실은 존재하지 않습니다."); return; } //방에 사람이 있을때 if(!roomMap.get(roomnum).getGuest().equals("-")){ System.out.println(roomnum + "호 객실은 이미 손님이 있습니다."); return; } System.out.println("누구를 체크인 하시겠습니까?"); System.out.println("이름 입력 >>"); String guest = scan.next(); roomMap.get(roomnum).setGuest(guest); System.out.println("체크인이 완료되었습니다."); } private void checkOut(){ System.out.println("----------------------------------------------"); System.out.println("체크아웃 작업"); System.out.println("----------------------------------------------"); System.out.println("체크아웃 할 방 번호를 입력하세요."); System.out.println("방번호 입력 >>"); int roomnum = scan.nextInt(); //체크인한 사람이 없을때 if(!roomMap.containsKey(roomnum)){ System.out.println(roomnum + "호 객실."); return; } if(roomMap.get(roomnum).getGuest().equals("-")){ System.out.println(roomnum + "호 객실은 체크인한 사람이 없습니다."); return; } System.out.println(roomnum + "호 객실의"+roomMap.get(roomnum).getGuest()+"님을 체크아웃을 완료하였습니다."); roomMap.get(roomnum).setGuest("-"); } private void roomCondition(){ System.out.println("----------------------------------------------"); System.out.println(" 현재 객실 상태"); System.out.println("----------------------------------------------"); System.out.println("방 번호 방 종류 투숙객 이름"); System.out.println("----------------------------------------------"); List<Room>list = new ArrayList<>(); for(Integer key : roomMap.keySet()){ //맵에 있는 키값을 가져와서 set으로 반환해서 키에 넣기 Room value = roomMap.get(key); list.add(value); } Collections.sort(list); for(int i = 0; i < list.size(); i++) { System.out.println(list.get(i).getRoomnum()+"\t"+list.get(i).getRoomtype()+"\t"+list.get(i).getGuest()); } System.out.println("----------------------------------------------"); } //업무 메서드 private int Task(){ System.out.println("-----------------------------------------------------------"); System.out.println("어떤 업무를 하시겠습니까?"); System.out.print("1.체크인 "); System.out.print("2.체크아웃 "); System.out.print("3.객실상태 "); System.out.println("4.업무종료 "); System.out.println("-----------------------------------------------------------"); System.out.println("선택>>"); int num = scan.nextInt(); return num; } } class Room implements Comparable<Room>{ private int roomnum; private String roomtype; private String guest; public Room(int roomnum, String roomtype, String guest) { super(); this.roomnum = roomnum; this.roomtype = roomtype; this.guest = guest; } public int getRoomnum() { return roomnum; } public void setRoomnum(int roomnum) { this.roomnum = roomnum; } public String getRoomtype() { return roomtype; } public void setRoomtype(String roomtype) { this.roomtype = roomtype; } public String getGuest() { return guest; } public void setGuest(String guest) { this.guest = guest; } @Override public String toString() { return roomnum+"\t"+roomtype+"\t"+guest; } @Override public int compareTo(Room o) { return Integer.compare(this.getRoomnum(),o.getRoomnum()); } }

Toplist

최신 우편물

태그