public class Book {
    private int no;
    private String name;
    private int price;

    public Book() {}

    public Book(int no, String name, int price) {
        this.no = no;
        this.name = name;
        this.price = price;
    }

    // Getter, Setter
    public int getNo() {return no;}
    public String getName() {return name;}
    public int getPrice() {return price;}
    public void setNo(int no) {this.no = no;}
    public void setName(String name) {this.name = name;}
    public void setPrice(int price) {this.price = price;}

}​

 

public class BookService {
    private Book[] database = new Book[10];
    private int position = 0;

    // 새로운 책 정보를 전달받아서 등록하는 기능
    public void addBook(Book book) {
        if (position < database.length) {
            database[position] = book;
            position++;
        }
    }

    // 모든 책 정보를 출력하는 기능
    public void printAllBooks() {
        for (Book book : database) {
            if (book != null) {
                System.out.println("도서번호 : " + book.getNo());
                System.out.println("도서제목 : " + book.getName());
                System.out.println("도서가격 : " + book.getPrice());
            }
        }
    }

    // 최저 가격과 최고 가격을 전달받아서 해당하는 책 정보를 출력하는 기능
    public void printBooksByPrice(int min, int max) {
        for (Book book : database) {
            if (book != null) {
                if (book.getPrice() >= min && book.getPrice() <= max) {
                    System.out.println("도서번호 : " + getNo());
                    System.out.println("도서제목 : " + getName());
                    System.out.println("도서가격 : " + getPrice());
                }
            }
        }
    }

    // 책 번호를 전달받아서 해당 책을 출력하는 기능
    public void printBookByNo(int no) {
        for (Book book : database) {
            if (book != null && book.getNo() == no) {
                System.out.println("도서번호 : " + getNo());
                System.out.println("도서제목 : " + getName());
                System.out.println("도서가격 : " + getPrice());
            }
        }
    }

    // 책 정보를 전달받아서 그 책 번호에 해당하는 책 정보를 변경하는 기능
    public void updateBook(Book book) {
        for (Book b : database) {
            if ( b != null && b.getNo() == book.getNo()) {
                b.setName(book.getName());
                b.setPrice(book.getPrice());
                // 또는
                // String name = book.getName();
                // int price = book.getPrice();
                // b.setNAme(name);
                // b.setPrice(price);
            }
        }
    }

    // 책 번호를 전달받아서 해당 책을 삭제하는 기능
    public void deleteBook(int no) {
        // 삭제할 책의 인덱스를 담을 변수
        int index = -1;        // 절대 일어나지 않을 번지

        for (int i=0; i<position; i++) {
            Book book = database[i];
            if (book.getNo() == no) {
                index = i;
                break;
            }
        }
        
        if (index != -1) {
            if (index < (position -1)) {
                database[index] = database[position - 1];
            }
            database[position-1] = null;
            position--;

        }
    }
}
​

 

import java.util.Scanner;

public class BookApp {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        BookService service = new BookService();

        for (;;) {
            System.out.println("1. 등록 2. 전체 출력 3. 가격별 출력 4. 번호별 출력 5. 수정 6. 삭제 0. 종료");

            /*
                1. 책 번호, 이름, 가격을 입력받아서 Book객체에 담고, Book 객체를 BookService 객체의 addBook메소드에 전달해서 저장
                2. BookService객체의 printAllBooks메소드를 실행해서 전체 책 정보 출력
                3. 최저 가격, 최고 가격을 입력받아서 BookService객체의 printBooksByPrice메소드에 전달해서 책 정보 출력하기
                4. 상품 번호를 입력받아서 BookService객체의 printBookByNo메소드에 전달해서 책 정보 출력하기
                5. 정보를 변경할 책 번호와 새 이름, 새 가격을 입력받아서 Book 객체에 담고, Book 객체를 BookService 객체의 updateBook 메소드에 전달해서 정보 변경하기
                6. 삭제할 책 번호를 입력받아서 BookService객체의 deleteBook 메소드에 전달해서 책 정보 삭제하기
            */
        }

    }
}
 

 

package kr.co.jhta.vo;

public class Professor {
    private String name;

    public Professor() {}
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
​

 

package kr.co.jhta.vo;

public class Student {
    private int no;
    private String name;

    public Student() {
    }
    
    public int getNo() {
        return no;
    }
    
    public String getName() {
    return name;
    }
    
    public void setNo(int no) {
        this.no = no;
    }

    public void setName(String name) {
        this.name = name;
    }

}
​

 

package kr.co.jhta.app; // 패키지 선언

//import kr.co.jhta.vo.Professor;
//import kr.co.jhta.vo.Student;  // 다른 패키지에 있는 클래스는 import 구문으로 해당 클래스의 전체 경로(패키지 경로 + 클래스)를 명시해야 한다.

import kr.co.jhta.vo.*;

public class StudentApp {
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setNo(20);
        s1.setName("홍길동");

        System.out.println("번호 : " + s1.getNo());
        System.out.println("이름 : " + s1.getName());
    
        Professor p = new Professor();
        p.setName("김교수");
        System.out.println("교수명 : " + p.getName());
    
    }
}
​

+ Recent posts