Published on

파이썬 종합 프로젝트

Authors
  • avatar
    Name
    devnmin
    Twitter

파이썬 종합 프로젝트: 간단한 도서 관리 시스템

지금까지 배운 파이썬 기초와 심화 내용을 활용해 도서 관리 시스템을 만들어 보겠습니다. 이 프로젝트는 파일 입출력, 함수, 클래스, 리스트, 딕셔너리 등을 모두 활용하며, 배운 내용을 종합적으로 적용할 기회를 제공합니다.


프로젝트 개요

구현할 기능

  1. 도서 추가
  2. 도서 삭제
  3. 도서 목록 보기
  4. 데이터 저장 및 불러오기
  5. 프로그램 종료

코드 작성

아래의 코드를 따라 단계별로 작성해 보세요.

import json

class BookManager:
    def __init__(self, file_name):
        self.file_name = file_name
        self.books = self.load_books()

    def load_books(self):
        try:
            with open(self.file_name, "r") as file:
                return json.load(file)
        except FileNotFoundError:
            return []

    def save_books(self):
        with open(self.file_name, "w") as file:
            json.dump(self.books, file, indent=4)

    def add_book(self, title, author):
        self.books.append({"title": title, "author": author})
        print(f"도서 '{title}'이(가) 추가되었습니다.")

    def remove_book(self, title):
        for book in self.books:
            if book["title"] == title:
                self.books.remove(book)
                print(f"도서 '{title}'이(가) 삭제되었습니다.")
                return
        print("해당 도서를 찾을 수 없습니다.")

    def display_books(self):
        if not self.books:
            print("현재 등록된 도서가 없습니다.")
        else:
            print("\n=== 도서 목록 ===")
            for idx, book in enumerate(self.books, start=1):
                print(f"{idx}. {book['title']} (저자: {book['author']})")


def main():
    manager = BookManager("books.json")

    while True:
        print("\n=== 도서 관리 시스템 ===")
        print("1. 도서 추가")
        print("2. 도서 삭제")
        print("3. 도서 목록 보기")
        print("4. 종료")

        try:
            choice = int(input("메뉴를 선택하세요: "))
            if choice == 1:
                title = input("도서 제목을 입력하세요: ")
                author = input("저자를 입력하세요: ")
                manager.add_book(title, author)
            elif choice == 2:
                title = input("삭제할 도서 제목을 입력하세요: ")
                manager.remove_book(title)
            elif choice == 3:
                manager.display_books()
            elif choice == 4:
                manager.save_books()
                print("프로그램을 종료합니다.")
                break
            else:
                print("유효하지 않은 선택입니다. 다시 시도하세요.")
        except ValueError:
            print("숫자를 입력하세요.")

if __name__ == "__main__":
    main()

코드 실행 예시

프로그램 실행:

=== 도서 관리 시스템 ===
1. 도서 추가
2. 도서 삭제
3. 도서 목록 보기
4. 종료
메뉴를 선택하세요: 1
도서 제목을 입력하세요: 파이썬 완전 정복
저자를 입력하세요: 홍길동
도서 '파이썬 완전 정복'() 추가되었습니다.

=== 도서 관리 시스템 ===
1. 도서 추가
2. 도서 삭제
3. 도서 목록 보기
4. 종료
메뉴를 선택하세요: 3
=== 도서 목록 ===
1. 파이썬 완전 정복 (저자: 홍길동)

확장 아이디어

  1. 도서 검색 기능 추가:
    • 제목 또는 저자로 도서를 검색할 수 있는 기능.
  2. 도서 정렬 기능 추가:
    • 제목이나 저자 기준으로 도서를 정렬.
  3. GUI 프로그램으로 확장:
    • tkinter 또는 PyQt를 사용해 사용자 인터페이스 추가.

마무리

이 프로젝트를 통해 파이썬의 다양한 기초와 심화 개념을 하나로 통합해 실습해 보았습니다. 이제 자신만의 아이디어를 기반으로 더 많은 프로그램을 만들어 보세요!

배운 내용을 토대로 파이썬을 활용해 세상을 바꿔보세요! 🎉