Christmas Pikachu 도서관리 시스템
개발일지/실습Code

도서관리 시스템

ZI_CO 2022. 9. 5.
package Test2;

public class Book2 {
	
	private int bookNum;
	private String title;
	private String author;
	
	public Book2() {}
	
	public Book2(int bookNum, String tilte, String author) {
		this.bookNum = bookNum;
		this.title = tilte;
		this.author = author;
		
	}

	public int getBookNum() {
		return bookNum;
	}

	public void setBookNum(int bookNum) {
		this.bookNum = bookNum;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String toString() {
		return "책 번호. " + bookNum + " 책 제목 : " + title + "  저자 이름 :  " + author + "]";
	}
	

	
	
	

}
package Test2;

import java.util.Scanner;

public class BookController2 {

	Scanner scanner = new Scanner(System.in);
	boolean flag = true;
	int selectNum;
	Book2[] books = new Book2[10];
	int count ;

	public BookController2() {
		main();

	}

	public void main() {
		while (flag) {
			System.out.println("1.도서 등록  ||  2.도서 목록  ||   3.도서 수정  ||  4. 도서 삭제  ||  5. 종료");
			selectNum = getSelectNum("번호를 입력해주세요");

			if (selectNum == 1) {
				addBook();
			} else if (selectNum == 2) {
				allSearch();
			} else if (selectNum == 3) {
				update();
			} else if (selectNum == 4) {
				deleteBook();
			} else {
				shutDown();
			}
		} // while end
	}

	// 도서 등록
	public void addBook() {
		System.out.println("1. 도서 등록");
		String title = getData("책 제목 입력");
		String author = getData("저자 이름 입력");

		for (int i = 0; i < books.length; i++) {
			if (books[i] == null) {
				count = i + 1;
				books[i] = new Book2(count, title, author);
				System.out.println("등록완료");
				return;
			}
		}
	}

	// 도서 수정
	public void update() {
		System.out.println("3. 도서 수정");
		selectNum = getSelectNum("도서 번호를 입력 ");
		Book2 b = findBook(selectNum);

		if (b == null) {
			System.out.println("데이터가 없습니다.");
			return;
		}

		boolean isupdate = false;

		while (isupdate) {
			System.out.println("1. 제목 수정 2. 저자 수정 3. 수정 종료");
			if (selectNum == 1) {
				String title = getData("수정할 책 제목 입력");
				b.setTitle(title);
				break;
			} else if (selectNum == 2) {
				String author = getData("수정할 저자 이름 입력");
				b.setAuthor(author);
			} else {
				System.out.println("수정 종료");
				break;
			}
		}
	}
	
	// 도서 삭제
	public void deleteBook() {
		System.out.println("도서 삭제 ");
		selectNum = getSelectNum("삭제할 책 번호를 입력해주세요 ");
		Book2 b = findBook(selectNum);
			if(books == null) {
				System.out.println("저장된 책이 없습니다.");
				return;
		}
			for(int i =0; i < books.length; i++) {
				if(books[i] != null && books[i].getBookNum() == selectNum) {
					books[i] = null;
					System.out.println("삭제완료");
					return;
				}
			}
	}

	// 도서 목록 전체조회
	public void allSearch() {
		for (Book2 b : books) {
			if (b != null) {
				findInfo(b);
			}
		}
	}
	
	// 프로그램 종료
	public void shutDown() {
		System.out.println("프로그램 종료");
		flag = false;
	}

	// 정수 입력값 받기
	public int getSelectNum(String message) {
		System.out.println(message);
		return scanner.nextInt();
	}

	// 문자열 입력 받기
	public String getData(String message) {
		System.out.println(message);
		return scanner.next();
	}

	public void findInfo(Book2 book2) {
		System.out.println(book2.toString());
	}

	// 번호로 도서 찾기
	public Book2 findBook(int num) {
		for (int i = 0; i < books.length; i++) {
			if (books[i] != null && books[i].getBookNum() == num) {
				return books[i];
			}
		}
		return null;
	}
	
	
}
package Test2;

public class Main {
	
	public static void main(String[] args) {
		BookController2 bookController2 = new BookController2();
	}
	


}

'개발일지 > 실습Code' 카테고리의 다른 글

스왑, for문을 이용한 연산  (0) 2022.08.29
if, do while문을 이용한 야구게임  (0) 2022.08.29

댓글