주제 : 회원전용 도서관리 프로그램 작성하기
<요구 사항>
📍최초 메뉴
: 회원 번호는 문자열 무엇이든 상관없이 등록
: 서비스 종료시 프로그램 자체 종료
[서비스 이용을 위한 회원 인증]
1. 회원번호 등록
2. 회원 인증
3. 서비스 종료
📍회원 인증이 된 경우 메뉴
: 도서 정보 - 도서번호, 도서제목, 재고권수
: 도서 상태 확인 - 특정 도서에 대한 정보 조회(도서번호, 도서제목, 현재권수/전체권수)
[도서 서비스 메뉴]
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 갑니다.)
내가 만든 코드
1. class LibraryKiosk 생성
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]["register_quantity"] += quantity
else :
self.books[book_id] = {"title" : title, "quantity" : quantity, "register_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("대출이 완료되었습니다.")
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 and (self.books[book_id]["register_quantity"] - 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 check_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]['register_quantity']}"))
else:
print("해당 도서가 존재하지 않습니다.")
def list_book(self):
for i in self.books.keys():
print(f"{self.books[i]['title']}")
2. bookKiosk 함수 생성
def bookKiosk(register_num, customer) :
if register_num in customer :
kiosk = LibraryKiosk()
while True :
choice = input("""
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
""")
if choice == "1" :
print("도서 입고")
book_id = input("도서 번호를 입력해 주세요 : ")
title = input("도서 제목를 입력해 주세요 : ")
quantity = int(input("입고할 권수를 입력해 주세요 : "))
kiosk.add_book(book_id, title, quantity)
elif choice == "2" :
print("도서 대출")
book_id = input("대출할 도서번호를 입력해주세요 : ")
kiosk.borrow_book(book_id)
elif choice == "3" :
print("도서 반납")
book_id = input("반납할 도서번호를 입력해주세요 : ")
kiosk.return_book(book_id)
elif choice == "4" :
print("도서 상태 확인")
book_id = input("확인할 도서번호를 입력해주세요 : ")
kiosk.check_book(book_id)
elif choice == "5" :
print("도서 전체 목록 확인")
kiosk.list_book()
elif choice == "6" :
print("도서 서비스 종료(회원 인증 메뉴로 돌아갑니다.)")
break
else :
print("다시 선택해주세요")
else :
print("등록되지 않은 회원입니다.")
3. main 함수 생성
def main() :
customer = []
while True :
choice = input("""
<서비스 이용을 위한 회원 인증>
1. 회원번호 등록
2. 회원 인증
3. 종료
원하는 번호(1~3)를 선택하세요
""")
if choice == "1" :
print("회원번호 등록")
user_num = input("등록할 회원번호를 입력해주세요: ")
customer.append(user_num)
elif choice == "2" :
print("회원 인증")
register_num = input("등록하신 회원번호를 입력해주세요 : ")
bookKiosk(register_num, customer)
elif choice == "3" :
print("종료")
break
else :
print("다시 선택해주세요")
if __name__ == "__main__":
main()
4. 결과
<서비스 이용을 위한 회원 인증>
1. 회원번호 등록
2. 회원 인증
3. 종료
원하는 번호(1~3)를 선택하세요
1
회원번호 등록
등록할 회원번호를 입력해주세요: 001
<서비스 이용을 위한 회원 인증>
1. 회원번호 등록
2. 회원 인증
3. 종료
원하는 번호(1~3)를 선택하세요
2
회원 인증
등록하신 회원번호를 입력해주세요 : 001
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
1
도서 입고
도서 번호를 입력해 주세요 : 001
도서 제목를 입력해 주세요 : 파이썬
입고할 권수를 입력해 주세요 : 5
도서번호 : 001 / 제목 : 파이썬 / 입고수량 : 5 입고성공😍
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
2
도서 대출
대출할 도서번호를 입력해주세요 : 001
대출이 완료되었습니다.
도서번호 : 001 / 제목 : 파이썬 / 남은재고수량 : 4
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
3
도서 반납
반납할 도서번호를 입력해주세요 : 001
도서번호 : 001 / 제목 : 파이썬 / 남은재고수량 : 5
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
4
도서 상태 확인
확인할 도서번호를 입력해주세요 : 001
도서번호 : 001 / 제목 : 파이썬 / 현재수량 : 5 / 전체수량 : 5
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
5
도서 전체 목록 확인
파이썬
<도서 서비스 메뉴>
1. 도서 입고
2. 도서 대출
3. 도서 반납
4. 도서 상태 확인
5. 도서 전체 목록 확인
6. 도서 서비스 종료(회원 인증 메뉴로 돌아갑니다)
원하는 번호(1~6)를 선택하세요.
6
도서 서비스 종료(회원 인증 메뉴로 돌아갑니다.)
<서비스 이용을 위한 회원 인증>
1. 회원번호 등록
2. 회원 인증
3. 종료
원하는 번호(1~3)를 선택하세요
3
종료
'Digital Boot > Python' 카테고리의 다른 글
[Python] 파이썬 알고리즘 프로그램 실습 (0) | 2023.11.17 |
---|---|
[Python] 파이썬 정규표현식(Regular_Expression) (0) | 2023.11.16 |
[Python] 파이썬 제너레이터(Generator) (0) | 2023.11.16 |
[Python] 파이썬 이터레이터(Iterator) (0) | 2023.11.16 |
[Python] 파이썬 데코레이터(Decorator) (2) | 2023.11.14 |