Language/Java
Book Manager System Program 최종
원2
2021. 4. 7. 14:13
728x90
반응형
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;
}
}
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
반응형