문제
호텔 운영을 관리하는 프로그램 작성.(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 <-- 입력
**************************
호텔 문을 닫았습니다.
정답
package kr.or.ddit.basic.HomeWork;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class HomeWork3 {
private Scanner scan;
private Map<Integer, HotelVo> hotelMap;
public HomeWork3() {
scan = new Scanner(System.in);
hotelMap = new HashMap<Integer, HotelVo>();
}
public static void main(String[] args) {
new HomeWork3().startHotel();
}
public void startHotel() {
System.out.println("**************************\r\n" +
"호텔 문을 열었습니다.\r\n" +
"**************************");
while(true) {
hotelMenu();
System.out.print("메뉴 선택 => ");
int menu = scan.nextInt();
switch (menu) {
case 1: insert();
break;
case 2: delete();
break;
case 3: displayAll();
break;
case 4: end();
return;
default:
break;
}
}
}
private void displayAll() {
/*
* *******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 3 <-- 입력
방번호 : 102, 투숙객 : 성춘향
방번호 : 101, 투숙객 : 홍길동
*/
Set<Integer> keySet = hotelMap.keySet();
if(keySet.size() == 0) {
System.out.println("투숙한 사람이 없습니다.");
return;
}
Iterator<Integer> it = keySet.iterator();
while (it.hasNext()) {
int doorNum = it.next();
HotelVo h = hotelMap.get(doorNum);
System.out.println("방번호 : " + h.getNum() + ",\t투숙객 : " + h.getName());
}
System.out.println();
}
private void delete() {
/*
* 어느방을 체크아웃 하시겠습니까?
방번호 입력 => 101 <-- 입력
101방에는 체크인한 사람이 없습니다.
*/
System.out.println("\n어느방을 체크아웃 하시겠습니까?");
System.out.print("방번호 입력 => ");
int doorNum = scan.nextInt();
System.out.println();
if(hotelMap.get(doorNum) == null) {
System.out.println(doorNum + "방에는 체크인한 사람이 없습니다.");
return;
}
System.out.println("체크아웃 되었습니다.");
hotelMap.remove(doorNum);
}
private void insert() {
/*
* *******************************************
어떤 업무를 하시겠습니까?
1.체크인 2.체크아웃 3.객실상태 4.업무종료
*******************************************
메뉴선택 => 1 <-- 입력
어느방에 체크인 하시겠습니까?
방번호 입력 => 101 <-- 입력
누구를 체크인 하시겠습니까?
이름 입력 => 홍길동 <-- 입력
체크인 되었습니다.
*/
System.out.println();
System.out.println("어느방에 체크인 하시겠습니까?");
System.out.print("방번호 입력 => ");
int doornum = scan.nextInt();
System.out.println();
if(hotelMap.get(doornum) != null) {
System.out.println("체크인한 사람이 존재합니다.\n");
return;
}
System.out.print("누구를 체크인 하시겠습니까?");
String name = scan.next();
hotelMap.put(doornum, new HotelVo(doornum, name));
System.out.println("\n체크인 되었습니다.");
}
private void end() {
System.out.println();
System.out.println("**************************\r\n" +
"호텔 문을 닫았습니다.\r\n" +
"**************************");
}
private void hotelMenu() {
System.out.println("*******************************************\r\n" +
"어떤 업무를 하시겠습니까?\r\n" +
"1.체크인 2.체크아웃 3.객실상태 4.업무종료\r\n" +
"*******************************************");
}
}
class HotelVo {
private int num;
private String name;
public HotelVo(int num, String name) {
super();
this.num = num;
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
'자바' 카테고리의 다른 글
[Java 고급] 5장 가변형 인수, Generics 클래스&메소드 (1) | 2024.01.27 |
---|---|
[Java 고급] 4장 Properties (0) | 2024.01.27 |
[Java 고급] 3.5.1장 Test1 (1) | 2024.01.27 |
[Java 고급] 3장 Hash 함수(Map) (1) | 2024.01.27 |
[Java 고급] 2장 Hash Set, Tree Set (1) | 2024.01.27 |