코딩헤딩

python 연습문제3 (도서관리 키오스크 프로그램 만들기2) 본문

python

python 연습문제3 (도서관리 키오스크 프로그램 만들기2)

멈머이 2023. 11. 19. 16:17
728x90

https://coding-heading.tistory.com/37

 

python 연습문제2 (도서관리 키오스크 프로그램 만들기)

도서 입고/대출/반납 관리를 위한 키오스크 프로그램 만들기. *요구사항. - 도서 목록 : 새로운 책이 도서관에 [입고]되었을 때 프로그램 작성. - 도서 대출 : 도서 목록에서 임의 책을 빌리고자 할

coding-heading.tistory.com

*도서 입고/대출/반납 관리를 위한 키오스크 프로그램에 회원 전용 도서관리 프로그램 작성

 

[요구사항]

<최초메뉴> 
  : 회원번호는 문자여 무엇이든 상관없이 등록
  : 서십스 종료 시 프로그램 자체 종료
 [서비스 이용을위한 회원 인증]
  1. 회원번호 등록
  2. 회원인증
  3. 서비스종료

<회원 인증이된경우 메뉴>
  : 도서정보 : 도서번호, 도서제목, 재고권
  : 도서상태 확인 : 특정 도서에 대한 정보 조회(도서번호, 도서제목, 현재권수/전체권수)
 [도서 서비스 메뉴]
  1. 도서입고
  2. 도서대출
  3. 도서반납
  4. 도서상태 확인
  5. 도서전체 목록 확인
  6. 도서 서비스 종료(회원 인증 메뉴로 갑니다.)

class LibraryKiosk :
    def __init__(self) :
        self.books = {}

    def add_book(self, book_id, title, quantity) :
        if book_id in self.books :
            self.books[book_id]["quantity"] += quantity
            self.books[book_id]["all_quantity"] += quantity
        else :
            self.books[book_id] = {"title":title, "quantity":quantity, "all_quantity":quantity}
            
        print(f"도서번호:{book_id} / 제목:{title} / 입고수량:{quantity} 입고 성공!!")

    def borrow_booK(self, book_id):
        if (book_id in self.books) and (self.books[book_id]["quantity"] > 0):
            self.books[book_id]["quantity"] -= 1
            print(f"도서번호:{book_id} / 제목:{self.books[book_id]['title']} / 남은 도서수량:{self.books[book_id]['quantity']}")
        else:
            print("도서가 존재하지 않거나, 대출할 재고가 없습니다.")


    def return_book(self, book_id):
        if book_id in self.books:
            self.books[book_id]["quantity"] += 1
            print(f"도서번호:{book_id} / 제목:{self.books[book_id]['title']} / 남은 도서수량:{self.books[book_id]['quantity']}")
        else:
            print("해당 도서가 존재하지 않습니다.")

    def con_book(self, book_id):
        if book_id in self.books:
            print(f"도서번호:{book_id} / 제목:{self.books[book_id]['title']} / 현재 도서수량:{self.books[book_id]['quantity']} / 전체 도서수량:{self.books[book_id]['all_quantity']}")
        else:
            print("해당 도서가 존재하지 않습니다")

    def lst_book(self):
        for i in self.books:
            print(f"전체 도서 목록 : {self.books[i]['title']} /")
def main() :
    users = []
    kiosk = LibraryKiosk()
    
    while True :
        print("<홈>")
        print("1. 회원번호 등록")
        print("2. 회원인증")
        print("3. 서비스종료")
        home_choice = input("1~3중 원하는 번호를 입력하세요. : ")

        if home_choice == "1":
            user_id = input("사용하실 회원번호를 입력해 주세요. : ")
            if user_id in users:
                print("이미 존재하는 회원번호 입니다. 다시 입력해 주세요.")
            else:
                users.append(user_id)
                print(f"회원번호:{user_id} 등록완료 사용하시려면 2번을 눌러주세요")


        elif home_choice == "2":       
            t_id = input("회원번호를 입력해 주세요. : ")
            if t_id in users:
                while True:
                    print("<도서 키오스크 메뉴>")
                    print("1. 도서 입고")
                    print("2. 도서 대출")
                    print("3. 도서 반납")
                    print("4. 도서상태 확인")
                    print("5. 도서전체 목록 확인")                
                    print("6. 종료")
            
                    choice = input("원하는 번호(1~6)를 선택하세요. : ")
            
                    if choice == "1" :
                        book_id = input("도서 번호를 입력해 주세요. : ")
                        title   = input("도서 제목를 입력해 주세요. : ")
                        quantity= int(input("입고할 권수를 입력해 주세요. : "))
            
                        kiosk.add_book(book_id, title, quantity)
        
                    
                    elif choice == "2" :
                        book_id = input("대출할 도서번호를 입력해 주세요. : ")
            
                        kiosk.borrow_booK(book_id)
                        
                    
                    elif choice == "3" :
                        book_id = input("반납할 도서번호를 입력해 주세요. : ")
            
                        kiosk.return_book(book_id)
                        
                        
                    elif choice == "4" :
                        print("도서 상태보기")
                        book_id = input("확인할 도서번호를 입력해 주세요. : ")
                        kiosk.con_book(book_id)
                    
                    elif choice == "5":
                        print("전체 도서목록 보기")
                        kiosk.lst_book()
                        

                    elif choice == "6" :
                        print("홈으로 돌아갑니다.")
                        break
                    
                    else :
                        print("잘못 선택...다시 선택해 주세요!!") 
            else:
                print("회원번호를 다시 입력해 주세요")
        
        elif home_choice == "3":
            print("종료")
            break

        else:
            print("다시 선택해 주세요")
            
if __name__ == "__main__" :
    main()

728x90