💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    문제 도서 대여 관리 시스템 | ✅저자: 이유정(박사)

    🖥️ 프로젝트 개요:

    도서관에서 책을 대여하고 반납하는 단순한 프로그램을 작성합니다.
    도서 객체를 생성하고, 대여 가능 여부를 판단하고 상태를 업데이트합니다.

    ◽ 이 프로젝트를 통해 자연스럽게 적용되는 내용:

    • 클래스 정의와 생성자 사용 (__init__)
    • 인스턴스 변수 초기화
    • 클래스 내부 메서드 정의 및 상태 변경
    • 조건문, 출력 포맷 연습

    📄 기능 요구사항 (Functional Requirements):

    • Book 클래스 정의 (제목, 저자, 대여 가능 여부 포함)
    • rent() 메서드로 책을 대여
    • return_book() 메서드로 책을 반납
    • status() 메서드로 현재 상태 출력

    📄 비기능 요구사항 (Non-Functional Requirements):

    • 대여 가능 여부True 또는 False로 관리
    • 대여 중인 책을 다시 대여하려고 하면 경고 메시지 출력
    • 출력 메시지는 사용자 친화적이어야 함

    🖨️ 출력 포맷 구성:

    '파이썬 입문' 도서 상태: 대여 가능
    '파이썬 입문' 도서가 대여되었습니다.
    '파이썬 입문' 도서는 현재 대여 중입니다.
    '파이썬 입문' 도서가 반납되었습니다.
    '파이썬 입문' 도서 상태: 대여 가능
    

    ✅ 정답코드:

    class Book:
        def __init__(self, title, author):
            self.title = title
            self.author = author
            self.is_available = True
    
        def status(self):
            status_msg = "대여 가능" if self.is_available else "대여 중"
            print(f"📘 '{self.title}' 도서 상태: {status_msg}")
    
        def rent(self):
            if self.is_available:
                self.is_available = False
                print(f"✅ '{self.title}' 도서가 대여되었습니다.")
            else:
                print(f"⚠️ '{self.title}' 도서는 현재 대여 중입니다.")
    
        def return_book(self):
            self.is_available = True
            print(f"🔁 '{self.title}' 도서가 반납되었습니다.")
    
    # 도서 인스턴스 생성 및 테스트
    book1 = Book("파이썬 입문", "홍길동")
    
    book1.status()
    book1.rent()
    book1.rent()
    book1.return_book()
    book1.status()
    

    🔍 코드 해설:

    • Book 클래스는 제목, 저자, 대여 여부를 저장
    • rent()는 책을 빌릴 수 있을 때만 상태 변경
    • return_book()은 무조건 책을 반납 처리
    • 상태 확인은 status()를 통해 확인하며 출력 메시지를 사용자 친화적으로 표시
    TOP
    preload preload