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 |