Language/Java

Book Manager System Program

원2 2021. 4. 6. 16:20
728x90
반응형

package Book002;

public class Book {
	private String BName;		// 책이름
	private String Author;		// 저자
	private String Publisher; 	// 출판사
	
	
	@Override
	public boolean equals(Object obj) {
		if (obj instanceof String) { 				// obj가 책 이름과 같은 타입인지 체크
			if (BName.equals((String)obj)) {		// 책 이름과 obj(검색 책이름)를 비교
				return true;						// 동일할 경우 참을 리턴 후 종료
			}
		}
		return false; 								// 거짓일 경우 거짓을 리턴 후 종료
	}

	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;
	}
}

package Book002;

import java.util.Scanner;

public class BookManager {
	private Book[] aBook;

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

	private int 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 (int i = 0; i < aBook.length; ++i) {
			if (aBook[i].equals(BName)) {
				return i;
			}
		}
		return -1;
	}

	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();

		Book[] NewBook = new Book[aBook.length + 1];
		for (int i = 0; i < aBook.length; ++i) {
			NewBook[i] = aBook[i];
		}
		NewBook[aBook.length] = Temp;
		aBook = NewBook;

		// System.out.println(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': // 삭제
				continue;
			case '4': // 검색
				int i = Search();
				if(-1 !=i) {
					System.out.println(aBook[i]);
				} else {
					System.out.println("해당하는 책을 검색할 "
							+ "수 없습니다.");
				}
			
				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.length);
		System.out.println("**************************");
	}
}

package Book002;

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
반응형

'Language > Java' 카테고리의 다른 글

for - each 문  (0) 2021.04.12
210407  (0) 2021.04.07
Book Manager System Program 최종  (0) 2021.04.07
채팅의 쓰레드화 04번  (0) 2021.04.06
전이중방식 채팅  (0) 2021.04.06
패키지로 묶어서 소켓 돌리기  (0) 2021.04.05