파이썬

[파이썬] 숙소 예약 프로그램 만들기 2일차

Nohsw 2023. 12. 28. 00:39

어제와 비슷하게 숙소 예약 프로그램을 만들어보고 있다.

이전에는 너무 복잡하고 chatGPT의 도움을 받아 작성은 하였지만 지저분한 느낌도 들고 수정할 때 어디서부터 손 대야할지 몰라서 깔끔하게 작성을 다시 해보고자 조금 다르게 작성하게 되었다.

일단 지금 생각으로는 파일을 여러개 만들어서 예약이면 예약, 입실이면 입실, 퇴실이면 퇴실을 할 수 있게 따로 파일을 만들어 관리하면 유지보수에도 도움이 되지 않을까 하여 도전해보았다.

#키오스크 만들어보기
import time
from Kiosk_File.kiosk_reservation import *

reser = Kiosk_reservation_Package()

class Kiosk:    
    def __init__(self):
        pass

    def process_user_input(self, user_input):
        if user_input == "1": #예약
            print("\n[안내] 예약 화면으로 이동합니다.\n")
            time.sleep(1)
            reser.clear_screen() #cmd 화면 지우기
            reser.reservation() #안내멘트
            reser.reservation_room(user_input) #사용자 입력화면
            reser.clear_screen()

        elif user_input == "2": #테스트
            print("\n[안내] 프로그램을 테스트합니다.\n")
            reser.clear_screen()

        elif user_input == "3": #종료
            print("\n[안내] 프로그램을 종료합니다.\n")
        
        else:
            print("잘못된 입력입니다. 다시 입력해주세요.")

while True:
    print("\n키오스크 테스트\n")
    print("[1. 예약]\n[2. 테스트]\n[3. 종료]")
    
    kiosk = Kiosk()
    print()
    user_input = input("입력:")
    kiosk.process_user_input(str(user_input))

#3번 입력 시 프로그램 종료
    if user_input == "3":
        break

 

반복문을 이용하여 작동되도록 하였고, 1번은 예약, 2번은 입실(현재는 테스트), 3번은 퇴실(현재는 종료)을 만들어보려고 한다. 

1번을 입력했을 때 Kisok_File 폴더 내 kiosk_reservation 파일로 이동하도록 하였고, 예약 관련으로 작동되도록 할 예정이다.

import os
import time

class Kiosk_reservation_Package:
    def clear_screen(self): #cmd 창 지우기
        if os.name == 'nt': #윈도우
            os.system('cls')
        else: #윈도우 외 os
            os.system('clear')

    def reservation(self):
        print("\n[안내] 키오스크 예약 화면입니다.\n")

    def reservation_room(self, r_user_input):
        print("[1. 방 예약]\n[2. 테스트]")
        r_user_input = input("입력:")

        if r_user_input == "1":
            print("\n[안내] 방을 예약하겠습니다.\n")
            time.sleep(2)
        elif r_user_input == "2":
            print("\n테스트\n")
        else:
            print("else")

이 코드가 kiosk_reservation 파일의 코드이다.

cmd 화면이 지저분해지지 않도록 화면 초기화를 작성하였고, time의 sleep기능으로 바로 이동하는 것이 아닌 2초정도 시간을 두어 작동되도록 하였다.

전에 작성했던 코드에서 필요한 부분만 따로 가져와 작성하면 파일은 많아지겠지만 유지보수하기도 편할 것 같고 한번 도전해볼 만 한 것 같다.

프로그래밍은 하면 할수록 알아가는게 많아지고 배움에 따라 응용하여 만드는 재미가 있는 것 같다. 조금 더 연습해보고 하루를 마무리 해야겠다.

 

메뉴 화면

메뉴화면에서 예약을 선택하면 2초 후 예약화면으로 이동, 예약화면에서 cmd 화면 초기화 진행.

1: 예약 화면

예약화면에서 방 예약을 선택하면 2초 후 메인화면으로 이동, 방 예약 프로그램 구현 할 예정.