Backend
home
📚

책 관리 시스템 예제 코드

Book.java
package com.practice; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter public class Book { // 속성: // title: String // isbn: String // author: String // year: int // category: String private String title; private String isbn; private String author; private int year; private String category; public Book() { } public Book(String title, String isbn, String author, int year, String category) { this.title = title; this.isbn = isbn; this.author = author; this.year = year; this.category = category; } @Override public String toString() { return "Book[" + "title='" + title + '\'' + ", isbn='" + isbn + '\'' + ", author='" + author + '\'' + ", year=" + year + ", category='" + category + '\'' + ']'; } }
Java
복사
BookManagementSystem.java
package com.practice; import java.util.*; public class BookManagementSystem { private List<Book> books = new ArrayList<>(); private Set<String> bookIsbns = new HashSet<>(); private Map<String, Book> bookMap = new HashMap<>(); public void addBook(String title, String isbn, String author, int year, String category) { if (bookIsbns.contains(isbn)) { System.out.println("같은 ISBN이 존재합니다."); return; } Book b = new Book(title, isbn, author, year, category); books.add(b); bookIsbns.add(isbn); bookMap.put(isbn, b); } public void removeBook(String isbn) { Book b = bookMap.get(isbn); if (b != null) { books.remove(b); bookIsbns.remove(isbn); bookMap.remove(isbn); } else { System.out.println("없는 책입니다."); } } public void updateBook(String isbn, String newTitle, String newAuthor, int newYear, String newCategory) { Book b = bookMap.get(isbn); if (b != null) { b.setTitle(newTitle); b.setAuthor(newAuthor); b.setYear(newYear); b.setCategory(newCategory); } else { System.out.println("없는 책입니다."); } } public void listBooks() { for (Book b : books) { System.out.println(b); } } public void searchBook(String isbnOrTitle) { Book b = bookMap.get(isbnOrTitle); if (b != null) { System.out.println("\n ISBN으로 검색한 결과입니다."); System.out.println(b); return; } for (Book book : books) { if (book.getTitle().contains(isbnOrTitle)) { System.out.println("\n 제목으로 검색한 결과입니다."); System.out.println(book); } } System.out.println("찾는 도서가 없습니다."); } }
Java
복사
BookExample.java
package com.practice; import java.util.Scanner; public class BookExample { public static void main(String[] args) { BookManagementSystem system = new BookManagementSystem(); Scanner sc = new Scanner(System.in); boolean run = true; while (run) { System.out.print("1. 도서 추가 | 2. 도서 삭제 | 3. 도서 업데이트 | 4. 도서 목록조회 | 5. 도서 검색 | 6. 종료"); int input = sc.nextInt(); String isbn, title, author, category; int year; switch (input) { case 1: isbn = getTextInput("ISBN"); title = getTextInput("제목"); author = getTextInput("지은이"); year = Integer.parseInt(getTextInput("발행연도")); category = getTextInput("카테고리"); system.addBook(title, isbn, author, year, category); break; case 2: isbn = getTextInput("ISBN"); system.removeBook(isbn); break; case 3: isbn = getTextInput("ISBN"); title = getTextInput("제목"); author = getTextInput("지은이"); year = Integer.parseInt(getTextInput("발행연도")); category = getTextInput("카테고리"); system.updateBook(isbn, title, author, year, category); break; case 4: system.listBooks(); break; case 5: String isbnOrTitle = getTextInput("ISBN 또는 제목"); system.searchBook(isbnOrTitle); break; case 6: run = false; break; } } } public static String getTextInput(String key) { Scanner sc = new Scanner(System.in); System.out.print(key + " 을/를 입력하세요"); return sc.nextLine(); } }
Java
복사