๐จ Spring_6๊ธฐ A๋ฐ 1์กฐ ํธํ ์์ฝ ํ๋ก๊ทธ๋จ ๐จ
- ํธํ ์ ์ฌ๋ฌ ๊ฐ์ค, ๋ณด์ ์์ฐ์ ๊ฐ์ง
- ๊ฐ์ค์ ๊ฐ์ค ๋น ํ๋ฃจ์ ํ ์ฌ๋๋ง ์์ฝ ๊ฐ๋ฅ
- ๊ฐ์ค์ ํฌ๊ธฐ, ์๋ฐ๋น๋ฅผ ๊ฐ์ง
- ์์ฝ์ ๊ฐ์ค, ๊ณ ๊ฐ ์ด๋ฆ, ๊ณ ๊ฐ ์ ํ๋ฒํธ, ์์ฝ ๋ ์ง๋ฅผ ๊ฐ์ง๊ณ ์์
- ์ ํ) ์ ํ ๋ฒํธ ์ ๊ท ํํ์ (XXX - XXXX - XXXX)
- ์์ฝ ๋ ์ง - ISO 8601 ํ์์ผ๋ก ์กฐํฉ๋ UTC ๋ ์จ ๋ฐ ์๊ฐ (ex.2016-10-27T17:13:40+00:00)
- ๊ณ ๊ฐ์ ์ด๋ฆ, ์ ํ๋ฒํธ, ์์ง๊ธ์ ๊ฐ์ง
- ๊ณ ๊ฐ์ ์์ง๊ธ๋ณด๋ค ๋น์ผ ๋ฐฉ์ ๊ฒฝ์ฐ ์์ฝ ๋ถ๊ฐ
- ํธํ ์ ๋ชจ๋ ์์ฝ ๋ชฉ๋ก ์กฐํ ๊ฐ๋ฅ
- ๊ณ ๊ฐ์ ์์ ์ ์์ฝ ๋ชฉ๋ก ์กฐํ ๊ฐ๋ฅ
- ์์ฝ ๋ฒํธ๋ก ์์ฝ ๋ด์ญ ์กฐํ
- ๊ณ ๊ฐ์ ์์ ์ ์์ฝ ์ทจ์ ๊ฐ๋ฅ
- ๊ณ ๊ฐ์ด ํธํ
์์ฝ ์, ์์ฝ ๋ฒํธ(id)๋ฅผ ๋ฐํํจ(UUID ํ์ฉํ๊ธฐ)
- ๊ณ ๊ฐ์ด ํธํ ์์ฝ์ ์ฑ๊ณตํ๋ฉด ์์ฝ ๋ฒํธ(id)๋ฅผ ๋ฐ์
- ๊ณ ๊ฐ์ด ์์ฝ ๋ชฉ๋ก ์กฐํ ์, ์์ฝ ๋ฒํธ๋ ํจ๊ป ์กฐํ๋จ
- ๊ณ ๊ฐ์ด ์์ฝ ์ทจ์ ์, ์์ฝ ๋ฒํธ๋ฅผ ํตํด ์์ ์ ํน์ ์์ฝ ์ทจ์
- ๊ณ ํธ๋ฆ: ์์ฝ ์๋ฃ, ํธํ ์ ์์ฝ ๋ชฉ๋ก ์กฐํ
- ๊น์ธ์: ๊ณ ๊ฐ ์ ๋ณด ๋ฆฌํด
- ์ก๋ณ๋ฏผ: ๋ฐฉ ์ ๋ณด ๋ฆฌํด
- ์ฌํ์ฒ : ์์ฝ ๊ฐ๋ฅํ ๋ฐฉ ์กฐํ
- ์ด์์ฐ: ๊ณ ๊ฐ์ ์์ฝ ๋ชฉ๋ก ์กฐํ, ์ญ์
โ ๋ถ์ข๊บผ์กฐ ํธํ
์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค โ
-----๋ฉ์ธ ๋ฉ๋ด-----
1. ๊ณ ๊ฐ
2. ํธํ
3. ์ข
๋ฃ
๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
------ ๊ณ ๊ฐ ํ์ด์ง ------
1. ์์ฝํ๊ธฐ
2. ์์ฝ ๋ด์ญ ํ์ธํ๊ธฐ & ์ญ์ ํ๊ธฐ
3. ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๊ธฐ
๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
------ ๊ฐ์ค ๋ชฉ๋ก ------
์ค๋์ 2023-06-05T17:13:40+00:00 ์
๋๋ค.
yyyy-MM-dd ํํ๋ก ์ํ์๋ ๋ ์ง๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. ์: 2023-06-05
2023-06-07
๋ฐฉ ์ด๋ฆ | ๊ฐ๊ฒฉ (๋ง ์)
STANDARD_TWIN | 9.0
STANDARD_DOUBLE | 9.0
------ ๊ฐ์ค ์ ๋ณด ์
๋ ฅ ------
์์ฝํ์ค ๊ฐ์ค์ ์
๋ ฅํด์ฃผ์ธ์ ex)FAMILY_SUITE
STANDARD_TWIN
------ ๊ณ ๊ฐ ์ ๋ณด ์
๋ ฅ๋ฐ๊ธฐ ------
์ฑํจ์ ์
๋ ฅํด์ฃผ์ธ์:
์ ํ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ ex)000-0000-0000 :
์์ง๊ธ์ ์
๋ ฅํด์ฃผ์ธ์ โป1์ 1๋ง์์ ์๋ฏธํฉ๋๋ค. :
์์ฝ์ด ๊ฐ๋ฅํฉ๋๋ค.
------ ์์ฝ ์๋ฃ ํ์ด์ง ------
์์ฝ์ด ์๋ฃ๋์์ต๋๋ค.
๊ณ ๊ฐ๋์ ์์ฝ ๋ฒํธ๋ 0000000-0000-0000-0000-00000000 ์
๋๋ค.
------ ์์ฝ ํ์ธ ํ์ด์ง ------
์ฑํจ์ ์
๋ ฅํด์ฃผ์ธ์:
์ ํ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ ex)000-0000-0000:
"000" ๋์ ์์ฝ ๋ด์ญ (์ด 1๊ฑด)์ ์ถ๋ ฅํฉ๋๋ค.
000 | STANDARD_TWIN | 9.0 | 2023-06-07 | 0000000-0000-0000-0000-00000000
์์ฝ ๋ด์ญ์ ์ญ์ ํ์๊ฒ ์ต๋๊น?(์/์๋์ค):
์์ฝ ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 0000000-0000-0000-0000-00000000
์์ฝ์ด ์ญ์ ๋์์ต๋๋ค.
------ ํธํ
ํ์ด์ง ------
๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
1234
1. ํธํ
์์ฝ ๋ฆฌ์คํธ
2. ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์
๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
------ ์์ฝ ๋ด์ญ ๊ด๋ฆฌ์ ํ์ด์ง ------
๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์:
1234
000 | STANDARD_TWIN | 9.0 | 2023-06-07 | 0000000-0000-0000-0000-00000000
3์ด ํ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.
------ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์ ํ์ด์ง ------
๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ์๊ฒ ์ต๋๊น? (์/์๋์ค): ์
๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ํ ๋ฒ ์
๋ ฅํด์ฃผ์ธ์: 1234
์์ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: 12345
๋น๋ฐ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค.
- Customer.java
๊ณ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ๊ณ ๊ฐ์ ์ด๋ฆ, ์ ํ๋ฒํธ, ์์ง๊ธ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค.
- Room.java
๊ฐ์ค ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ๊ฐ์ค์ ํฌ๊ธฐ, ์๋ฐ๋น์, ๊ฐ์ค์ ์์ฝ๋ ๋ ์ง๋ฅผ ์ ์ฅํ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ง๋ค.
- Reservation.java
์์ฝ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ์์ฝํ๋ ๊ฐ์ค, ๊ณ ๊ฐ ์ด๋ฆ, ๊ณ ๊ฐ ์ ํ๋ฒํธ, ์์ฝ์ผ, ์์ฝ๋ฒํธ๋ฅผ ๊ฐ์ง๋ค.
- Hotel.java
ํธํ ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค. ๊ฐ์ค ๋ฆฌ์คํธ, ์์ฝ ๋ฆฌ์คํธ, ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ํธํ ์ ์์ฐ, ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ง๋ค. ๊ฐ์ค ์ด๊ธฐํ, ๋ฉ์ธ ๋ฉ๋ด, ๊ณ ๊ฐ ๋ฉ๋ด, ํธํ ๋ฉ๋ด, ๊ฐ์ค ๋ด์ญ, ๊ฐ์ค ์ ๋ ฅ๋ฐ๊ธฐ, ๊ณ ๊ฐ ์ ๋ณด ์ ๋ ฅ๋ฐ๊ธฐ, ์์ฝํ๊ธฐ, ์์ฝ ๋ด์ญ ์กฐํ ๋ฐ ์ญ์ , ํธํ ์์ ์์ฝ ๋ด์ญ ์กฐํ, ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์ , ์ ํ๋ฒํธ ์ ๊ท์ ํ๋จ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.
- Main.java
main ๋ฉ์๋๋ฅผ ์คํํ๋ค. Hotel ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , showMain() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
Customer.java, Room.java, Reservation.java, Hotel.java, Main.java ์ด 5๊ฐ์ ํด๋์ค๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- Customer.java
public class Customer {
private String name, phone; // ์ด๋ฆ, ์ ํ๋ฒํธ
private Double cash; // ์์ง๊ธ
public String getName() { return name; }
public String getPhone() { return phone; }
public Double getCash() { return cash; }
public void setCash(Double cash) { this.cash = cash; }
public Customer(String name, String phone, Double cash) {
this.name = name;
this.phone = phone;
this.cash = cash;
}
}
๊ณ ๊ฐ์ ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ, ์์ง๊ธ์ ์ ์ฅํ ์ ์๋ ํ๋์ ๊ทธ์ ์ ๊ทผ ๊ฐ๋ฅํ getter ๋ฉ์๋, cash ํ๋๋ฅผ ์ค์ ๊ฐ๋ฅํ setter ๋ฉ์๋, Customer ์์ฑ์๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
- Room.java
public class Room {
private String roomSize; // ๋ฐฉ ์ฌ์ด์ฆ
private Double roomCharge; // ๋ฐฉ ์๊ธ
private List<String> dateList = new ArrayList<>(); // ์์ฝ ๋ ์ง ๋ฆฌ์คํธ
public String getRoomSize() { return roomSize; }
public Double getRoomCharge() { return roomCharge; }
public List<String> getDateList() { return dateList; }
public void setDateList(String date) { this.dateList.add(date); }
Room(String roomSize, Double roomCharge) {
this.roomSize = roomSize;
this.roomCharge = roomCharge;
}
}
๋ฐฉ์ ์ฌ์ด์ฆ์ ๋ฐฉ์ ์๊ธ์ ์ ์ฅํ ์ ์๋ ํ๋์ ์์ฝ ๋ ์ง๋ฅผ ๋ฆฌ์คํธ ํํ๋ก ์ ์ฅํ๋ค. ๊ฐ ํ๋์ ๋ฆฌ์คํธ์ ์ ๊ทผ ๊ฐ๋ฅํ getter ๋ฉ์๋๊ฐ ์๊ณ , dateList์ ์์ฝ ๋ ์ง๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ฉ์๋, Room() ์์ฑ์๊ฐ ์๋ค.
- Reservation.java
public class Reservation {
// ๊ฐ์ค, ๊ณ ๊ฐ ์ด๋ฆ, ๊ณ ๊ฐ ์ ํ๋ฒํธ, ์๋ฐ์ผ, ์์ฝ ๋ฒํธ
private Room room;
private String customerName, phoneNumber, reservationDate, id;
public Room getRoom() { return room; }
public String getCustomerName() { return customerName; }
public String getPhoneNumber() { return phoneNumber; }
public String getReservationDate() { return reservationDate; }
public String getId() { return id; }
public Reservation(Room room, String customerName, String phoneNumber, String reservationDate) {
this.room = room;
this.customerName = customerName;
this.phoneNumber = phoneNumber;
this.reservationDate = reservationDate;
this.id = UUID.randomUUID().toString();
}
}
๊ฐ์ค๊ณผ ๊ณ ๊ฐ ์ด๋ฆ, ๊ณ ๊ฐ ์ ํ๋ฒํธ, ์๋ฐ์ผ, ์์ฝ ๋ฒํธ๋ฅผ ์ ์ฅํ ์ ์๋ ํ๋๋ฅผ ์์ฑํ๊ณ , ๊ฐ ํ๋์ ์ ๊ทผ ๊ฐ๋ฅํ getter ๋ฉ์๋๋ฅผ ๋ง๋ค์๊ณ , Reservation() ์์ฑ์๊ฐ ์กด์ฌํ๋ค.
- Hotel.java Hotel ํด๋์ค ์์ ์ฝ๋๊ฐ ๊ธธ์ด, ๋์ด์ ์ค๋ช ์ ์ ๊ณ ์ ํ๋ค.
public class Hotel {
}
์๋์ ์ฝ๋๋ ํด๋น ํด๋์ค ๋ด์ ์ ํ์๋ค.
- ํ๋ ๋ฐ ๋ฆฌ์คํธ
private List<Room> roomList = new ArrayList<>(); // ๋ฐฉ ๋ฆฌ์คํธ
private List<Reservation> reservationList = new ArrayList<>(); // ์์ฝ ๋ฆฌ์คํธ
private List<Customer> customerList = new ArrayList<>(); // ๊ณ ๊ฐ ๋ฆฌ์คํธ
private String asset; // ํธํ
์์ฐ
private String password = "1234"; // ํธํ
๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ
ํด๋์ค ๋ด์ ์์ฑ๋ ํ๋ ๋ฐ ๋ฆฌ์คํธ์ด๋ค. ๋ฐฉ, ์์ฝ, ๊ณ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฆฌ์คํธ๊ฐ ๊ฐ๊ฐ ์กด์ฌํ๊ณ , ํธํ ์ ์์ฐ๊ณผ ํธํ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ํ๋๊ฐ ์๋ค.
- init() ๋๋ฉ์๋
// ๊ฐ์ค ๋ฆฌ์คํธ - CHARGE ๋จ์ 1.0*10000
public void init() {
roomList = Arrays.asList(
new Room("STANDARD_TWIN", 9.0),
new Room("STANDARD_DOUBLE", 9.0),
new Room("STANDARD_ONDOL", 9.0),
new Room("DELUX_TWIN", 10.0),
new Room("DELUX_KIDSROOM", 11.0),
new Room("DELUX_TRIPLE", 11.5),
new Room("DELUX_FAMILY_TWIN", 13.0),
new Room("JUNIOR_SUITE", 15.0),
new Room("FAMILY_SUITE", 24.0)
);
}
๊ฐ์ค ๋ฆฌ์คํธ๋ฅผ ์ด๊ธฐํํ๋ ๋ฉ์๋์ด๋ค.
- showMain() ๋ฉ์๋
// ์ฒซ ํ๋ฉด์์ ๋ฉ๋ด๋ค์ ์ถ๋ ฅํ๋ ๋ฉ์๋
public void showMain() {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("\n-----๋ฉ์ธ ๋ฉ๋ด-----");
System.out.println("1. ๊ณ ๊ฐ");
System.out.println("2. ํธํ
");
System.out.println("3. ์ข
๋ฃ");
System.out.print("๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
String menu = sc.nextLine();
if (menu.equals("๊ณ ๊ฐ") || menu.equals("1")) {
showCustomerMenu();
} else if (menu.equals("ํธํ
") || menu.equals("2")) {
showHotelMenu();
} else if (menu.equals("์ข
๋ฃ") || menu.equals("3")) {
System.out.println("โ
๋ถ์ข๊บผ์กฐ ํธํ
์์ฝ ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค โ
");
break;
} else {
System.out.println("์๋ชป๋ ๋ฉ๋ด์
๋๋ค.");
}
} // while()
} // showMain()
๋ฉ์ธ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํด์ค๋ค. 1๋ฒ์ ๊ฒฝ์ฐ showCustomerMenu() ๋ฉ์๋ ํธ์ถ, 2๋ฒ์ ๊ฒฝ์ฐ showHotelMenu() ๋ฉ์๋ ํธ์ถ, 3๋ฒ์ ๊ฒฝ์ฐ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค. ์๋ชป ์ ๋ ฅํ์ ๊ฒฝ์ฐ ์๋ชป ์ ๋ ฅํ๋ค๋ ๋ฉ์์ง๋ฅผ ๋์ด ํ ๋ค์ ์ ๋ ฅ๋ฐ๋๋ค.
- showCustomerMenu() ๋ฉ์๋
// ๊ณ ๊ฐ ์ธ๋ถ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋
public void showCustomerMenu() {
Scanner sc = new Scanner(System.in);
System.out.println("\n--------๊ณ ๊ฐ ํ์ด์ง--------");
System.out.println("1. ์์ฝํ๊ธฐ");
System.out.println("2. ์์ฝ ๋ด์ญ ํ์ธํ๊ธฐ & ์ญ์ ํ๊ธฐ");
System.out.println("3. ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๊ธฐ");
System.out.print("๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
String detailMenu = sc.nextLine();
if (detailMenu.equals("1") || detailMenu.equals("์์ฝํ๊ธฐ")) {
// ๊ฐ์ค ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋ ํธ์ถ
String date1 = showRoomList();
Room room1 = inputRoom();
Customer customer1 = inputCustomer(room1);
reservationComplete(room1, customer1, date1);
} else if (detailMenu.equals("2") || "์์ฝ ๋ด์ญ ํ์ธํ๊ธฐ & ์ญ์ ํ๊ธฐ".contains(detailMenu)) {
// ์์ฝ ๋ด์ญ ํ์ธํ๊ธฐ
reservationConfirm();
} else if ((detailMenu.equals("3") || "๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๊ธฐ".contains(detailMenu))) {
} else {
System.out.println("์๋ชป๋ ๋ฉ๋ด์
๋๋ค.");
}
} // showCustomerMenu()
๊ณ ๊ฐ ์ธ๋ถ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ค. 1๋ฒ์ ๊ฒฝ์ฐ showRoomList(), inputRoom(), inputCustomer(), reservationComplete() ๋ฉ์๋๋ฅผ ์ฐจ๋ก๋ก ํธ์ถํ๋ค. 2๋ฒ์ ๊ฒฝ์ฐ reservationConfirm() ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ 3๋ฒ์ ๊ฒฝ์ฐ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค.
- showRoomList() ๋ฉ์๋
// ๊ฐ์ค ๋ฆฌ์คํธ ์ถ๋ ฅํ๋ ๋ฉ์๋ - ์์ฝํ๊ณ ์ถ์ ๋ ์ง๋ฅผ ์
๋ ฅ ๋ฐ๊ธฐ & ์์ฝ ๋ ์ง๋ฅผ ๋ฆฌํด
public String showRoomList() {
System.out.println("\n------ ๊ฐ์ค ๋ชฉ๋ก ------");
String resDate = null;
LocalDate today = LocalDate.now();
System.out.println("์ค๋์ " + LocalDate.now() + " ์
๋๋ค."); // ์ค๋ ๋ ์ง ์ถ๋ ฅ(iso 8601์ ๋ฐ๋ผ ํํ๋ ๋ ์ง)
Scanner scan = new Scanner(System.in); // ๊ณ ๊ฐ์ผ๋ก๋ถํฐ ์ํ๋ ๋ ์ง ์
๋ ฅ๋ฐ๊ธฐ
String pattern = "\\d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])"; // yyyy๋
MM์ dd์ผ ํ์
์ผ๋ก ์
๋ ฅ๋ฐ๊ธฐ
while (true) {
System.out.println("yyyy-MM-dd ํํ๋ก ์ํ์๋ ๋ ์ง๋ฅผ ์
๋ ฅํด์ฃผ์ธ์. ์: 2023-06-05 ");
resDate = scan.nextLine();
if (Pattern.matches(pattern, resDate)) { //๋ ์ง ํ์ ์ฒดํฌ
LocalDate reservationDate = LocalDate.parse(resDate);
int compare = reservationDate.compareTo(today);
if (compare < 0) {
System.out.println("์ค๋ ์ด์ ์ ๋ ์ ์
๋ ฅํ์ค ์ ์์ต๋๋ค.");
continue;
}
System.out.printf("%-13s | %s\n", "๋ฐฉ ์ด๋ฆ", "๊ฐ๊ฒฉ(๋ง์)");
for (Room room : roomList) {
if (!room.getDateList().contains(resDate)) {
System.out.printf("%-15s | %.1f\n", room.getRoomSize(), room.getRoomCharge());
}
}
break;
}
System.out.println("๋ ์ง ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๋ค.");
}
return resDate;
}
์ ๋ ฅ๋ฐ์ ์์ฝ ๊ฐ๋ฅํ ๊ฐ์ค์ ๋ฆฌ์คํธ๋ฅผ ์ถ๋ ฅํด์ค๋ค. ์ค๋ ๋ ์ง๋ฅผ ์ถ๋ ฅํด์ฃผ๊ณ , ๊ณ ๊ฐ์๊ฒ ๋ ์ง๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๋ง์ฝ ๋ ์ง๋ฅผ ์๋ชป ์ ๋ ฅํ ๊ฒฝ์ฐ๋ ์ค๋ ์ด์ ์ ๋ ์ ์ ๋ ฅ๋ฐ์ ๊ฒฝ์ฐ ๋ ์ง๋ฅผ ๋ค์ ์ ๋ ฅ๋ฐ๊ณ , ์ ๋๋ก ๋ ๋ ์ง๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒฝ์ฐ ํด๋น ๋ ์ง์ ๊ฐ๋ฅํ ๊ฐ์ค๋ง ์ถ๋ ฅํด์ค๋ค.
- inputRoom() ๋ฉ์๋
// ๊ฐ์ค ์
๋ ฅ๋ฐ๋ ๋ฉ์๋ - ์
๋ ฅ๋ฐ์์ ๋ค์ ๋ฉ์๋์ธ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์
๋ ฅ ๋ฐ์ ๋ Room ํ์
์ ํ๋๋ฅผ ๋๊ฒจ์ค
public Room inputRoom() {
System.out.println("\n------ ๊ฐ์ค ์ ๋ณด ์
๋ ฅ ------");
Scanner scanner = new Scanner(System.in);
System.out.println("์์ฝํ์ค ๊ฐ์ค์ ์
๋ ฅํด์ฃผ์ธ์ ex)FAMILY_SUITE");
String roomType = scanner.nextLine(); // ๊ณ ๊ฐ์ผ๋ก๋ถํฐ ๊ฐ์ค์ ์
๋ ฅ๋ฐ๋๋ค
boolean a = false;
for (Room room : roomList) {
a = room.getRoomSize().equals(roomType); // ์ฌ๋ฐ๋ฅธ ๊ฐ์ค ์ด๋ฆ์ ์
๋ ฅํ๋ค๋ฉด
if (a) {
return room; // ํด๋น ๊ฐ์ค์ ๋ฆฌํดํ๋ค
}
}
if (a == false) {
System.out.println("์๋ชป ์
๋ ฅํ์
จ์ต๋๋ค"); // ์๋ชป ์
๋ ฅํ ๊ฒฝ์ฐ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ
return inputRoom(); // ๋ฉ์๋๋ฅผ ๋ค์ ํธ์ถํ๋ค
}
return null;
} // inputRoom()
๊ณ ๊ฐ์ผ๋ก๋ถํฐ ์ํ๋ ๊ฐ์ค์ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ์ค์ ํ์ ์ ์ ๋ ฅ๋ฐ์ ์กด์ฌํ๋ฉด ํด๋น Room ํ์ ์ ๊ฐ์ค์ ๋ฆฌํดํ๊ณ , ์๋ชป ์ ๋ ฅํ ๊ฒฝ์ฐ ๋ฉ์๋๋ฅผ ๋ฆฌํดํ๋ค.
- inputCustomer() ๋ฉ์๋
// ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์
๋ ฅ๋ฐ๋ ๋ฉ์๋ - ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ์
๋ ฅ ๋ฐ์์ ์์ผ๋ฉด ๊ทธ๋ฅ ์งํํ๊ณ , ์์ผ๋ฉด ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ์ถ๊ฐํ๊ธฐ. ๊ทธ ๋ค์์ ์์ง๊ธ ํ๋จํ๊ธฐ
public Customer inputCustomer(Room room) {
Scanner sc = new Scanner(System.in);
System.out.println("\n------ ๊ณ ๊ฐ ์ ๋ณด ์
๋ ฅ ------");
System.out.print("์ฑํจ์ ์
๋ ฅํด์ฃผ์ธ์: ");
String name = sc.nextLine();
String phone = InputPhoneCheck(); // ์ ํ๋ฒํธ ์
๋ ฅ๋ฐ๊ธฐ
System.out.print("์์ง๊ธ์ ์
๋ ฅํด์ฃผ์ธ์ โป1์ 1๋ง์์ ์๋ฏธํฉ๋๋ค. : ");
Double cash = sc.nextDouble();
Customer customer = new Customer(name, phone, cash); // ๊ณ ๊ฐ ์์ฑ์๋ฅผ ๋ง๋ ๋ค
boolean found = false; // ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ์
๋ ฅ๋ฐ์ ๊ณ ๊ฐ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ๋จํ๋ boolean ํ์
ํ๋ ์ ์ธ
for (Customer c : customerList) {
if (c.getName().equals(customer.getName()) && c.getPhone().equals(customer.getPhone())) {
found = true;
c.setCash(customer.getCash());
break;
}
}
if (!found) { // ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ๊ณ ๊ฐ์ด ์๋ค๋ฉด
customerList.add(customer); // ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ๊ณ ๊ฐ์ ์ถ๊ฐํ๋ค
}
if (customer.getCash() >= room.getRoomCharge()) { // ๊ณ ๊ฐ์ ์์ง๊ธ์ด ๊ฐ์ค์ ๊ฐ๊ฒฉ๋ณด๋ค ๋ง๋ค๋ฉด
customer.setCash(customer.getCash() - room.getRoomCharge()); // ์์ง๊ธ์์ ๊ฐ์ค ๊ฐ๊ฒฉ์ ์ฐจ๊ฐํ ํ
System.out.println("์์ฝ์ด ๊ฐ๋ฅํฉ๋๋ค."); // ์์ฝ ๊ฐ๋ฅํจ์ ์๋ ค์ค๋ค
} else {
System.out.println("์์ง๊ธ์ด ๋ถ์กฑํฉ๋๋ค. ์์ฝ์ด ๋ถ๊ฐํฉ๋๋ค."); // ์์ง๊ธ์ด ๊ฐ์ค ๊ฐ๊ฒฉ๋ณด๋ค ์ ๋ค๋ฉด ์์ฝ ๋ถ๊ฐ๋ฅผ ์๋ ค์ฃผ๊ณ
customer = null; // ๊ณ ๊ฐ์ null๋ก ๋ฆฌํดํ๋ค
}
return customer;
} // inputCustomer()
๊ณ ๊ฐ์ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ, ์์ง๊ธ์ ์ ๋ ฅ๋ฐ๊ณ Customer ํ์ ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ ๋ค. ๋ง์ฝ ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ํด๋น ๊ณ ๊ฐ์ด ์กด์ฌํ ๊ฒฝ์ฐ, ์์ง๊ธ๋ง ๋ค์ ์ค์ ํด์ฃผ๊ณ ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ๊ณ ๊ฐ์ด ์๋ค๋ฉด ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ์ ๊ณ ๊ฐ์ ์ถ๊ฐํ๋ค. ๊ณ ๊ฐ์ ์์ง๊ธ์ด ์ ํํ ๊ฐ์ค์ ๊ฐ๊ฒฉ๋ณด๋ค ๋ง๋ค๋ฉด ์์ง๊ธ์์ ๊ฐ์ค์ ๊ฐ๊ฒฉ์ ์ฐจ๊ฐํ๊ณ ์์ฝ ๊ฐ๋ฅํจ์ ์๋ ค์ค๋ค. ์์ง๊ธ์ด ๊ฐ์ผ ๊ฐ๊ฒฉ๋ณด๋ค ์ ๋ค๋ฉด ์์ฝ ๋ถ๊ฐ๋ฅผ ์๋ ค์ฃผ๊ณ ๊ณ ๊ฐ์ null๋ก ์ค์ ํ๋ค.
- reservationComplete() - ๋ฉ์๋
// ์์ฝ ์๋ฃ ํ๋ฉด - ์์ฝ ๋ฒํธ๋ฅผ ๋ฐํ (uuid), ์์ฝ ๋ฆฌ์คํธ ์์ Reservation (๊ฐ์ค๊ณผ ๊ณ ๊ฐ์ด๋ฆ๊ณผ ๊ณ ๊ฐ์ ํ๋ฒํธ, ์์ฝ๋ ์ง, ์์ฝ๋ฒํธ) ์ ์ฅํ๊ธฐ
public void reservationComplete(Room room, Customer customer, String date) {
System.out.println();
System.out.println("------ ์์ฝ ์๋ฃ ํ์ด์ง ------");
Reservation reservation = null;
if (customer != null) { // ๊ณ ๊ฐ์ด null์ด ์๋๋ผ๋ฉด (์์ง๊ธ์ด ๊ฐ์ค ๊ฐ๊ฒฉ๋ณด๋ค ๋ง์ ๊ณ ๊ฐ์ ๊ฒฝ์ฐ)
reservation = new Reservation(room, customer.getName(), customer.getPhone(), date); // Reservation ๋ฅผ ๋ง๋ค์ด์ค๋ค
reservationList.add(reservation); // ์์ฝ ๋ฆฌ์คํธ์ ์์ฝ์ ์ถ๊ฐํด์ฃผ๊ณ
room.setDateList(date); // ํด๋น ๊ฐ์ค์ ์์ฝํ ๋ ์ง๋ฅผ ์ถ๊ฐํ๋ค
System.out.println("์์ฝ์ด ์๋ฃ๋์์ต๋๋ค.");
System.out.println("๊ณ ๊ฐ๋์ ์์ฝ ๋ฒํธ๋ " + reservation.getId() + "์
๋๋ค."); // ์์ฝ ๋ฒํธ๋ฅผ ๊ณ ๊ฐ์๊ฒ ์ถ๋ ฅํ๋ค
} else {
System.out.println("์์ฝ์ด ๋ถ๊ฐํฉ๋๋ค. ๋ฉ์ธ ํ๋ฉด์ผ๋ก ๋์๊ฐ๋๋ค.");
}
} // reservationComplete()
์์ฝ ์๋ฃ๋จ์ ์๋ ค์ฃผ๋ฉฐ ๊ณ ๊ฐ์๊ฒ ์์ฝ ๋ฒํธ๋ฅผ ๋ฐํํด์ฃผ๋ ๋ฉ์๋์ด๋ค. ๋ง์ฝ ๊ณ ๊ฐ์ด null์ด ์๋ ๊ฒฝ์ฐ, ์ฆ ๊ณ ๊ฐ์ ์์ง๊ธ์ด ๊ฐ์ค์ ๊ฐ๊ฒฉ๋ณด๋ค ๋ง์ ์์ฝ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ Reservation ์ธ์คํด์ค๋ฅผ ๋ง๋ ๋ค. ์์ฝ ๋ฆฌ์คํธ์ ๋ง๋ ์์ฝ์ ์ถ๊ฐํ๊ณ , ๊ฐ์ค์ ์์ฝ ๋ ์ง(์๋ฐ์ผ)์ ์ถ๊ฐํ ํ, ์์ฝ ๋ฒํธ๋ฅผ ๊ณ ๊ฐ์๊ฒ ์ถ๋ ฅํด์ค๋ค.
- reservationConfirm() ๋ฉ์๋
// ์์ฝ ํ์ธ - ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ๊ณ ๊ณ ๊ฐ ๋ฆฌ์คํธ์์ ํ๋ณํ๊ธฐ, ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ์์ผ๋ฉด ์์ฝ ๋ชฉ๋ก์์ ์ถ๋ ฅ
public void reservationConfirm() {
Scanner sc = new Scanner(System.in);
System.out.print("์ฑํจ์ ์
๋ ฅํด์ฃผ์ธ์: "); // ๊ณ ๊ฐ์ ์ฑํจ๊ณผ ์ ํ๋ฒํธ๋ฅผ ์ฐ์ ์
๋ ฅ๋ฐ๋๋ค.
String name = sc.nextLine();
String phoneNumber = InputPhoneCheck();
boolean custo = false; // ๊ณ ๊ฐ์ด ๋ฆฌ์คํธ์ ์กด์ฌํ ์ง ํ๋จํ๋ boolean ํ์
์ ํ๋ ์ ์ธ
for (Customer customer : customerList) { // ๊ณ ๊ฐ ๋ฆฌ์คํธ์ ํด๋น ๊ณ ๊ฐ์ด ์กด์ฌํ๋์ง ํ๋จ
if (customer.getName().equals(name) && customer.getPhone().equals(phoneNumber)) {
custo = true;
}
}
if (custo) { // ๊ณ ๊ฐ์ด ์กด์ฌํ๋ค๋ฉด
Integer count = 0; // ํด๋น ๊ณ ๊ฐ์ ์์ฝ ๊ฑด์ count
for (Reservation reservation : reservationList) {
if (reservation.getCustomerName().equals(name) && reservation.getPhoneNumber().equals(phoneNumber)) {
count += 1;
} // if๋ฌธ ์ข
๋ฃ
} // for๋ฌธ ์ข
๋ฃ
if (count > 0) { // ์์ฝ ๊ฑด์๊ฐ ํ๋ ์ด์์ด๋ผ๋ฉด
System.out.println("\n" +name + "๋์ ์์ฝ ๋ด์ญ (์ด "+count+"๊ฑด)์ ์ถ๋ ฅํฉ๋๋ค.");
for (Reservation reservation : reservationList) { // ์์ฝ ๋ฆฌ์คํธ์์ ์์ฝ ๋ด์ญ ์ถ๋ ฅํ๊ธฐ
if (reservation.getCustomerName().equals(name) && reservation.getPhoneNumber().equals(phoneNumber)) {
System.out.printf("%-4s | %-10s | %s | %s\n", reservation.getCustomerName(), reservation.getRoom().getRoomSize(), reservation.getReservationDate(), reservation.getId());
} // if๋ฌธ ์ข
๋ฃ
} // for๋ฌธ ์ข
๋ฃ
deleteReservation(); // ์์ฝ ์ญ์ ์ฌ๋ถ๋ฅผ ๋ฌผ์ด๋ณด๋ ๋ฉ์๋ ํธ์ถ
} else { // ์์ฝ ๊ฑด์๊ฐ ์๋ค๋ฉด
System.out.println("\n๊ณ ๊ฐ๋์ ์์ฝ ๋ด์ญ์ด ์กด์ฌํ์ง ์์ต๋๋ค.");
System.out.println("3์ด ํ ๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.");
try {
Thread.sleep(3000);
showCustomerMenu();
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
} else { // ๊ณ ๊ฐ์ด ์กด์ฌํ์ง ์๋๋ค๋ฉด
System.out.println("\n๊ณ ๊ฐ๋์ ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.");
System.out.println("๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค");
showCustomerMenu();
}
}
๊ณ ๊ฐ์ ์์ฝ ๋ด์ญ์ ์กฐํํด์ค๋ค. ๊ณ ๊ฐ์ ์ด๋ฆ๊ณผ ์ ํ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ๊ณ ๊ฐ๋ฆฌ์คํธ์ ์กด์ฌํ๋ฉด ์์ฝ ๊ฑด์๋ฅผ count ํ๋ค. countํ ๊ณ ๊ฐ์ ์์ฝ ๊ฑด์๊ฐ ํ๋ ์ด์์ด๋ผ๋ฉด ์์ฝ ๋ด์ญ์ ์ถ๋ ฅํด์ฃผ๊ณ , ์์ฝ ๊ฑด์๊ฐ ์๋ค๋ฉด ์์ฝ ๋ด์ญ์ด ์กด์ฌํ์ง ์๋๋ค๊ณ ์๋ ค์ค ํ ๊ณ ๊ฐ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ค. ๊ณ ๊ฐ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ๊ณ ๊ฐ ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์๋ค๊ณ ์๋ ค์ค ํ, ๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค.
- deleteReservation() ๋ฉ์๋
// ์์ฝ์ ์ญ์ ํ๋ ๋ฉ์๋
public void deleteReservation() {
Scanner sc = new Scanner(System.in);
System.out.println("\n์์ฝ ๋ด์ญ์ ์ญ์ ํ์๊ฒ ์ต๋๊น?(์/์๋์ค): ");
String yesNo = sc.nextLine();
if (yesNo.equals("์")) {
System.out.print("์์ฝ ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
String reservationNum = sc.nextLine(); // ์์ฝ ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ๋๋ค
Boolean yesOrNo = false; // ์
๋ ฅ๋ฐ์ ์์ฝ ๋ฒํธ์ ํด๋นํ๋ ์์ฝ์ด ์๋์ง ํ๋ณํ๋ boolean ํ์
์ ํ๋ ์ ์ธ
Reservation r = null;
for (Reservation reservation : reservationList) {
if (reservation.getId().equals(reservationNum)) { // ์์ฝ ๋ฒํธ์ ํด๋นํ๋ ์์ฝ์ด ์กด์ฌํ๋ค๋ฉด
r = reservation; // Reservation ํ์
์ ํ๋ ์์ ํด๋น ์์ฝ์ ๋ฃ์ด์ค๋ค
yesOrNo = true; // yesOrNo๋ฅผ true๋ก ๋ณ๊ฒฝํ๋ค
} // if๋ฌธ ์ข
๋ฃ
} // for๋ฌธ ์ข
๋ฃ
if (!yesOrNo) { // ์์ฝ ๋ฒํธ์ ํด๋นํ๋ ์์ฝ์ด ์๋ ๊ฒฝ์ฐ
System.out.println("์๋ชป๋ ์์ฝ ๋ฒํธ์
๋๋ค.");
} else { // ์์ฝ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ
reservationList.remove(r); // ์์ฝ ๋ฆฌ์คํธ์์ ํด๋น ์์ฝ ์ญ์
Room removeroom = r.getRoom(); // ๊ฐ์ค ์ ๋ณด๋ฅผ ๊ฐ์ ธ์์
removeroom.getDateList().remove(r.getReservationDate()); // ๊ฐ์ค์ ํด๋น ๋ ์ง๋ ์ญ์ ํ๊ธฐ
System.out.println("์์ฝ์ด ์ญ์ ๋์์ต๋๋ค.");
}
} else if (yesNo.equals("์๋์ค")) { // ์์ฝ ๋ด์ญ ์ญ์ ๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ
System.out.println("๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค."); // ๋ค์ ๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ
showCustomerMenu();
} else {
System.out.println("์๋ชป ์
๋ ฅํ์
จ์ต๋๋ค. ๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.");
showCustomerMenu();
}
} // deleteReservation()
์์ฝ์ ์ญ์ ํ๋ ๋ฉ์๋์ด๋ค. ์ญ์ ์ฌ๋ถ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ ์ญ์ ๋ฅผ ์ํ๋ ๊ฒฝ์ฐ, ์์ฝ ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์ ๋ ฅ๋ฐ์ ์์ฝ ๋ฒํธ์ ํด๋นํ๋ ์์ฝ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์์ฝ ๋ฆฌ์คํธ์์ ํด๋น ์์ฝ์ ์ญ์ ํ๊ณ , ํด๋น ๊ฐ์ค์ ๋ ์ง ๋ฆฌ์คํธ ์์์ ํด๋น ๋ ์ง๋ ํจ๊ป ์ง์์ค๋ค. ์ญ์ ๋ฅผ ์ํ์ง ์๋ ๊ฒฝ์ฐ ๋ค์ ๊ณ ๊ฐ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค.
- showHotelMenu() ๋ฉ์๋
// ํธํ
์ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๋ ๋ฉ์๋
public void showHotelMenu() {
System.out.println();
System.out.println("------ ํธํ
ํ์ด์ง ------");
System.out.println("๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
Scanner sc = new Scanner(System.in);
String inputPassword = sc.nextLine();
if (inputPassword.equals(password)) {
System.out.println("1. ํธํ
์์ฝ ๋ฆฌ์คํธ");
System.out.println("2. ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์ ");
System.out.print("๋ฉ๋ด๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
String inputMenu = sc.nextLine();
if (inputMenu.equals("1") || "ํธํ
์์ฝ ๋ฆฌ์คํธ".contains(inputMenu)) {
showAllReservation();
} else if (inputMenu.equals("2") || "๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์ ".contains(inputMenu)) {
setPassword();
}
} else {
System.out.println("๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ์ต๋๋ค.");
System.out.println("3์ด ํ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
} // showHotelMenu()
๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ์ผ์นํ๋ ๊ฒฝ์ฐ ํธํ ๋ฉ๋ด๋ฅผ ์ถ๋ ฅํ๊ณ ์ผ์นํ์ง ์์ผ๋ฉด ๋ค์ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค. ํธํ ๋ฉ๋ด์์ 1๋ฒ์ ๋๋ฅด๋ฉด showAllReservation() ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ , 2๋ฒ์ ๋๋ฅด๋ฉด setPassword() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- showAllReservation() ๋ฉ์๋
// ํธํ
์์ ๋ชจ๋ ์์ฝ ๋ชฉ๋ก ์กฐํ ๊ธฐ๋ฅ
public void showAllReservation() {
System.out.println();
System.out.println("------ ์์ฝ ๋ด์ญ ๊ด๋ฆฌ์ ํ์ด์ง ------");
System.out.println("๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
Scanner sc = new Scanner(System.in);
while (true) {
String inputPassword = sc.nextLine(); // ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅ๋ฐ์
if (inputPassword.equals(password)) { // ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ์ ์ผ์นํ๋ ๊ฒฝ์ฐ
if (reservationList.isEmpty()) { // ์์ฝ ๋ด์ญ์ด ๋น์ด์๋ ๊ฒฝ์ฐ
System.out.println("์์ฝ ๋ด์ญ์ด ์กด์ฌํ์ง ์์ต๋๋ค.");
} else { // ์์ฝ ๋ด์ญ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ
for (Reservation r : reservationList) {
System.out.printf("%s | %-4.1f | %-5s | %12s | %10s | %s\n", r.getRoom().getRoomSize(), r.getRoom().getRoomCharge(), r.getCustomerName(), r.getPhoneNumber(), r.getReservationDate(), r.getId());
}
}
break;
} else {
System.out.println("๋ค์ ์
๋ ฅํด์ฃผ์ธ์.");
}
} // while()
System.out.println("\n3์ด ํ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
} // showAllReservation()
ํธํ ์์ ๋ชจ๋ ์์ฝ ๋ชฉ๋ก์ ์กฐํํ๋ค. ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ์ผ์นํ๋ฉด, ์์ฝ ๋ด์ญ์ ์กฐํํ๋๋ฐ ์์ฝ ๋ด์ญ์ด ๋น์ด์์ผ๋ฉด ์กด์ฌํ์ง ์๋๋ค๊ณ ์๋ ค์ฃผ๊ณ , ์์ฝ ๋ด์ญ์ด ์๋ค๋ฉด ์ถ๋ ฅํด์ค๋ค. ๊ทธ ๋ค์ 3์ด ํ์ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค.
- setPassword() ๋ฉ์๋
// ํธํ
์ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๋ ๋ฉ์๋
public void setPassword() {
System.out.println("\n------ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ ์์ ํ์ด์ง ------");
System.out.print("๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ์๊ฒ ์ต๋๊น? (์/์๋์ค): ");
Scanner sc = new Scanner(System.in);
String yesno = sc.nextLine();
if (yesno.equals("์")) {
System.out.print("๋น๋ฐ๋ฒํธ๋ฅผ ๋ค์ ํ ๋ฒ ์
๋ ฅํด์ฃผ์ธ์: ");
String newPW = sc.nextLine();
if (newPW.equals(password)) {
System.out.print("์์ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์: ");
String newsetPW = sc.nextLine();
this.password = newsetPW;
} else {
System.out.println("๋น๋ฐ๋ฒํธ๊ฐ ํ๋ ธ์ต๋๋ค.");
}
System.out.println("๋น๋ฐ๋ฒํธ๊ฐ ๋ณ๊ฒฝ๋์์ต๋๋ค.");
} else {
System.out.println("3์ด ํ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋๋ค.");
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
System.out.println(e.getMessage());
}
}
} // setPassword()
ํธํ ๊ด๋ฆฌ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์์ ํ๋ค. ๋น๋ฐ๋ฒํธ ์์ ์ฌ๋ถ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ์์ ํ๊ฒ ๋ค๊ณ ์ ๋ ฅ๋ฐ์ผ๋ฉด ๋น๋ฐ๋ฒํธ๋ฅผ ํ ๋ฒ ๋ ์ ๋ ฅ๋ฐ๊ณ , ์์ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ์์ ํ ๋น๋ฐ๋ฒํธ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋ณ๊ฒฝํ ํ ๋ฉ์ธ ๋ฉ๋ด๋ก ๋์๊ฐ๋ค.
- InputPhoneCheck() ๋ฉ์๋
// ์ ํ๋ฒํธ ์ ๊ท์ ํ๋ณํ๋ ๋ฉ์๋
private String InputPhoneCheck() { // ์ ํ๋ฒํธ ์ ๊ทํํ์
Scanner scan = new Scanner(System.in);
String pattern = "^01(?:0|1|[6-9])-(?:\\d{3}|\\d{4})-\\d{4}$"; // ์ซ์๋ง ๋ฑ์ฅํ๋์ง
while (true) {
System.out.print("์ ํ๋ฒํธ๋ฅผ ์
๋ ฅํด์ฃผ์ธ์ ex)000-0000-0000 : ");
String inputPhone = scan.nextLine();
if (Pattern.matches(pattern, inputPhone))
return inputPhone;
System.out.println("์ฌ๋ฐ๋ฅธ ์ ํ๋ฒํธ ํ์์ด ์๋๋๋ค. ๋ค์ ์
๋ ฅํด์ฃผ์ธ์");
}
} // InputPhoneCheck()
์ ํ๋ฒํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ๋, ์ ๊ท ํํ์์ ๋ง๋์ง ํ๋จํ๋ค. ์ ํ๋ฒํธ ํ์์ ์ผ์นํ๋ฉด ์ ๋ ฅ๋ฐ์ ์ ํ๋ฒํธ๋ฅผ ๋ฆฌํดํ๊ณ , ์ผ์นํ์ง ์์ผ๋ฉด ๋ค์ ์ ๋ ฅ๋ฐ๋๋ก ํ๋ค.
- Main.java
public class Main {
public static void main(String[] args) {
Hotel hotel = new Hotel();
hotel.init(); // ๊ฐ์ค ๋ฆฌ์คํธ ์์ฑํ๊ธฐ
System.out.println("โ ๋ถ์ข๊บผ์กฐ ํธํ
์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค โ");
hotel.showMain(); // ๋ฉ์ธ ๋ฉ๋ด ์ถ๋ ฅํ๊ธฐ
}
}
Hotel ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ค. init()๋ฉ์๋๋ก ๊ฐ์ค ๋ฆฌ์คํธ๋ฅผ ์ด๊ธฐํ ํ ๋ค ๋ฉ์ธ ๋ฉ๋ด ๋ฉ์๋์ธ showMain()์ ํธ์ถํ์ฌ ์คํํ๋ค.