[코담]
웹개발·실전 프로젝트·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()
를 통해 확인하며 출력 메시지를 사용자 친화적으로 표시