본문 바로가기

Android (Kotlin)30

[Hotel Reservation] 호텔 예약 프로그램 lv2.0 lv2 1. 메뉴에서 2번을 눌러 호텔 예약자 목록을 보여줘요. (예시. 1. 사용자: ㅇㅇㅇㅇ, 방 번호: ㅇㅇㅇ호, 체크인: 2023-07-21. 체크아웃: 2023-08-01) 메뉴에서 3번을 눌러 호텔 예약자 목록을 정렬 기능을 사용하여 체크인 날짜순으로 오름차순으로 정렬해 봐요 2. 예약 플로우를 수정해 봐요. 해당 체크인 체크아웃 날짜에 선택한 방 번호를 예약 가능한지 불가능한지 판단하게 변경해 봐요. 3. 예약이 불가능하면 체크인, 체크아웃 날짜를 변경해서 다시 검사해 보는 플로우를 만들어봐요. 수정된 부분 메인 메뉴에서 4번을 누르면 코드가 종료되도록 바꾸어주었다 메인 메뉴 선택 부분의 코드를 if 문에서 when 문으로 바꾸어주었다. 가독성이 높아짐. 호텔 예약 부분에서 입력 받은 고객 .. 2023. 12. 2.
[kotlin] joinToString(prefix, suffix, separator) 리스트를 문자열로 바꾸기 1. List를 문자열로 바꾸기 val numbers = listOf(12, 24, 46, 68, 80) val n1 = numbers.joinToString() // n1: "12, 24, 46, 68, 80" val n2 = numbers.joinToString("") // n2: "1224466880" val watermelon = listOf("수", "박", "수", "박") val w1 = numbers.joinToString() // w1: "수, 박, 수, 박" val w2 = numbers.joinToString("") // w2: "수박수박" 2. 접두사랑 접미사 붙이기 val numbers = listOf(11, 22, 3, 41, 52, 6) val string = numbers.j.. 2023. 12. 2.
[Hotel Reservation] 호텔 예약 프로그램 lv.1.1 수정된 부분 클래스의 주생성자를 정리해주었다! 어차피 클래스 내부에 있는 함수의 매개변수에 값이 들어가기 때문에 장황하게 클래스 주생성자에도 변수들을 표시해 줄 필요가 없었다. try catch문을 이용하여 입력된 값이 정수인지 확인해 줄 수 있는 클래스를 만들었고 모든 readLine()!!.toInt()에 적용시켜 주었다. 코드 분석 각 객체에 단일책임원칙에 따라 한가지 기능을 수행하는 함수를 하나씩 넣었다. 개방 폐쇄 원칙에 따라 작성: - 확장에 열려있다: lv1.0에서 lv1.1으로 수정할 때 ReadLineExceptionInt라는 클래스를 추가하고 원래 있었던 부모 추상 클래스 CheckIfValid에 상속시켰다. ->기존 코드 수정없이 기능 확장을 하였다. - 변경에 닫혀있다: 기능에 변경.. 2023. 12. 2.
[Hotel Reservation] 호텔 예약 프로그램 lv.1.0 lv1 과제 1. 사용자가 호텔 예약을 할 수 있는 메뉴를 표시하세요. (번호는 1~6번까지 만들어봐요.) 2. 메뉴에서 4번을 누르면 호텔 예약 프로그램을 종료할 수 있어요 3. 예약 플로우는 성함을 입력받고 방 번호를 입력받고 체크인 날짜를 입력받고 체크아웃 날짜를 입력받아요 4. 1번을 눌러 방 예약을 받을 수 있도록 구현해 봐요 5. 방 번호는 100~999호실까지 존재해요 6. 체크인 날짜는 지금 날짜와 비교해서 이전날짜는 입력받을 수 없고 체크아웃 날짜는 체크인 날짜보다 이전이거나 같을 수는 없어요 7. 입력이 완료되면 임의의 금액을 지급해 주고 랜덤으로 호텔 예약비로 빠져나가도록 구현해 봐요 처음 접근할 때에는 전부다 main function에 넣어서 1단계 로직의 흐름대로 코드를 작성했다... 2023. 12. 1.