Language/Java

Book Manager System Program 최종

원2 2021. 4. 7. 14:13
728x90
반응형

Book

package Book005;

public class Book {
	private String BName; // 책이름
	private String Author; // 저자
	private String Publisher; // 출판사

	public Book(String BName, String Author, String Publisher) {
		this.BName = BName;
		this.Author = Author;
		this.Publisher = Publisher;
	}

	@Override
	public String toString() {
		return "이름 : " + BName + "\n저자 : " + Author + "\n출판 : " + Publisher;
	}

	public String getBName() {
		return BName;
	}

	public void setBName(String bName) {
		BName = bName;
	}

	public String getAuthor() {
		return Author;
	}

	public void setAuthor(String author) {
		Author = author;
	}

	public String getPublisher() {
		return Publisher;
	}

	public void setPublisher(String publisher) {
		Publisher = publisher;
	}

}

ArrayList를 활용,컬렉션에 구현된 기능을 사용해라..

package Book005;

import java.util.*;
import java.util.Scanner;

public class BookManager {
	private ArrayList<Book> aBook;

	public BookManager() {

		aBook = new ArrayList<Book>();
		aBook.add(new Book("고양이와 왕", "닉 샤랫", "키다리"));
		aBook.add(new Book("길 떠나는 너에게", "최숙희", "책읽는곰"));
		aBook.add(new Book("2030 축의 전환", "마우로 기옌", "리더스북"));
		aBook.add(new Book("유닉스의 탄생", "브라이언 커넬", "한빛미디어"));
	}

	private void Delete(Book Target) {
		// 인자/ 인수/매개변수 검사 (유효성 검사)
		if (null == Target) {
			return;
		}

		aBook.remove(Target); // 참거짓이 필요없는 삭제
	}

	private Book Search() {
		String BName; // 검색할 책 이름
		Scanner aScanner = new Scanner(System.in);

		while (true) {
			System.out.print("책 이름 : ");
			BName = aScanner.nextLine();
			if (0 == BName.length()) {
				System.out.println("올바른 책 이름을 입력하세요.");
				continue;
			}
			break;
		}
		for (Book Temp : aBook) {
			if (Temp.getBName().equals(BName)) {
				return Temp;
			}
		}

		System.out.printf("[%s]를 검색할 수 없습니다.\n", BName);

		return null; // 검색 실패
	}

	private Book BookInput() {
		String BName; // 책이름
		String Author; // 저자
		String Publisher; // 출판사

		Scanner aScanner = new Scanner(System.in);
		while (true) {
			System.out.print("책 이름 : ");
			BName = aScanner.nextLine();
			if (0 == BName.length()) {
				System.out.println("올바른 책 이름을 입력하세요.");
				continue;
			}
			break;
		}

		System.out.print("책 저자 : ");
		Author = aScanner.nextLine();
		if (0 == Author.length()) {
			Author = "미입력";
		}

		System.out.print("출판사 : ");
		Publisher = aScanner.nextLine();
		if (0 == Publisher.length()) {
			Publisher = "미입력";
		}

		return new Book(BName, Author, Publisher);
		// Book Temp = new Book(BName, Author, Publisher);
		// return Temp;
	}

	private void Insert() {
		Book Temp = BookInput();
		aBook.add(Temp); // 이 코드가 되었다..
	}

	public void Start() {
		Scanner aScanner = new Scanner(System.in);
		while (true) {
			Menu();
			String Command = aScanner.nextLine();
			if (0 == Command.length()) {
				continue;
			}

			switch (Command.charAt(0)) {
			case '1': // 리스트 출력
				Print();
				continue;
			case '2': // 추가
				Insert();
				continue;
			case '3': // 삭제 (검색 + 삭제)
				Delete(Search());
				continue;
			case '4': // 검색
				Book Temp = Search();
				if (null != Temp) {
					System.out.println(Temp);
				}
				continue;
			case 'x': // 종료
				System.out.println("Book Management System을 종료합니다...");
				break;
			default:
				continue;
			}

			break;
		}

		aScanner.close();
	}

	private void Menu() {
		HeadLine();
		System.out.println("** 1. 리스트 출력           **");
		System.out.println("** 2. 추가                **");
		System.out.println("** 3. 삭제                **");
		System.out.println("** 4. 검색                **");
		System.out.println("** x. 종료                **");
		System.out.print("선택>");
	}

	private void HeadLine() {
		System.out.println("**************************");
		System.out.println("* Book Management System *");
		System.out.println("**----------------------**");
	}

	private void Print() {
		HeadLine();
		for (Book Temp : aBook) {
			System.out.println(Temp);
			System.out.println("**----------------------**");
		}
		System.out.println("  Total : " + aBook.size());
		System.out.println("**************************");
	}
}

package Book005;
public class Run {
	public static void main(String[] args) {
		BookManager aBookManager = new BookManager();
		aBookManager.Start();
	}
	
	
	public static void main_equals(String[] args) {
		Book aBook = new Book("123","1","2");
		System.out.println(aBook.equals("123"));
		System.out.println(aBook.equals(new String("123") ));
		System.out.println(aBook.equals("1234"));
	}
}
728x90
반응형