quilt code

[고급자바] 호텔 과제 본문

daily/고급자바

[고급자바] 호텔 과제

김뱅쇼 2023. 2. 3. 18:33
문제)

호텔 운영을 관리하는 프로그램 작성.(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
163
164
165
166
167
168
169
170
package study;
 
import java.security.DomainCombiner;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
 
 
public class Hotel {
    private Scanner scanner;
    private Map<Integer, GuestInfo> hotel;
    
    public Hotel() {
        scanner = new Scanner(System.in);
        hotel = new HashMap<>();
    }
    
 
    //메뉴출력
    public void hotelMenu() {
        
    
        System.out.println("*******************************");
        System.out.println("어떤 업무를 하시겠습니까?");
        System.out.println("1.체크인 2.체크아웃 3.객실상태 4.업무종료");
        System.out.println("*******************************");    
        System.out.print("메뉴선택 : ");
    }
    
    //프로그램 시작
    public void hotelOpen() {
        
        System.out.println("******************");
        System.out.println("호텔 문을 열었습니다.");
        System.out.println("******************");
 
        while(true) {
            hotelMenu();   //메뉴출력
            
            int menuNum = scanner.nextInt();  //번호입력
            
            switch(menuNum) {
                case 1 : checkIn();
                    break;
                case 2 : checkOut();
                    break;
                case 3 : roomState();
                    break;
                case 4:
                    System.out.println("******************");
                    System.out.println("호텔 문을 닫았습니다.");
                    System.out.println("******************");    
                default :
                    System.out.println("입력 오류");
            }
            
        }
    }
 
 
    //체크인
    private void checkIn() {
        
        System.out.println();
        System.out.println("어느 방에 체크인 하시겠습니까?");
        System.out.print("방번호 입력: ");
        int roomNum = scanner.nextInt();
        
        
        //방 중복 체크
        if(hotel.get(roomNum) != null) {
            System.out.println(roomNum + "방에는 이미 사람이 있습니다.");
            return;
        }
        System.out.println("누구를 체크인 하시겠습니까?");
        System.out.print("이름 입력: ");
        String name = scanner.next();
        
        GuestInfo g = new GuestInfo(roomNum, name);
        hotel.put(roomNum, g);
        System.out.println("체크인 되었습니다.");
        
        
    }
    
    private static void put(int roomNum, GuestInfo guestInfo) {
        
    }
 
 
    //체크아웃
    private void checkOut() {
        
        System.out.println("어느 방을 체크아웃 하시겠습니까?");
        System.out.print("방번호 입력: ");
        int roomNum = scanner.nextInt();
        
        if(hotel.remove(roomNum) == null) {
            System.out.println(roomNum + "방에는 체크인한 사람이 없습니다.");
        } else {
            System.out.println("체크아웃 되었습니다.");
        }
        
        
    }
    
    public static void main(String[] args) {
        new Hotel().hotelOpen();
    }
    
    
    
    //객실상태
    private void roomState() {
        Set<Integer> keySet = hotel.keySet();
        System.out.println();
        
        if(keySet.size() == 0) {
            System.out.println("체크인된 방이 없습니다.");
        } else {
            Iterator<Integer> it = keySet.iterator();
            
            while(it.hasNext()) {
                int roomNum = it.next();
                GuestInfo c = hotel.get(roomNum);
                System.out.println("방번호: " + c.getRoomNum() + "\t" + "투숙객: " + c.getName());
            }
            
        }
        
    }
 
 
}
 
 
class GuestInfo{
    private int roomNum;
    private String name;
    
    public GuestInfo(int roomNum, String name) {
        super();
        this.roomNum = roomNum;
        this.name = name;
    }
 
    public int getRoomNum() {
        return roomNum;
    }
 
    public void setRoomNum(int roomNum) {
        this.roomNum = roomNum;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    @Override
    public String toString() {
        return "guestInfo [roomNum=" + roomNum + ", name=" + name + "]";
    }    
}
 
cs

'daily > 고급자바' 카테고리의 다른 글

[고급자바] Thread (1)  (0) 2023.02.06
[고급자바] Annotation  (0) 2023.02.06
[고급자바] 로또 과제  (0) 2023.02.03
[고급자바] Enum  (0) 2023.02.03
[고급자바] 와일드 카드  (0) 2023.02.03