mit java open course assignment #4

package come;

public class Library {
    // Add the missing implementation to this class
    String realLocation;
    String[][] bookCollection = new String[2][10];
    int index = 0;

    public Library(String Location) {
        realLocation = Location;
    }

    static void printOpeningHours() {
        System.out.println("Libraries are open daily from 9am to 5pm.");
    }

    void printAddress() {
        System.out.println(realLocation);
    }

    void addBook(Book collection) {
        bookCollection[0][index] = collection.title;
        bookCollection[1][index] = "1";
        index++;
    }

    void borrowBook(String S) {
        int index1 = 0;
        while (!S.equals(bookCollection[0][index1])) {//越界的数字不能放在数组里面
            index1++;
            if(bookCollection[0].length == index1)
                break;
        }
        if (index1 == bookCollection[0].length) {
            System.out.println("Sorry, this book is not in our catalog.");
        } else if (bookCollection[1][index1] == "1") {
            System.out.println("You successfully borrowed The Lord of the Rings");
            bookCollection[1][index1] = "0";
        } else if (bookCollection[1][index1] == "0") {
            System.out.println("Sorry, this book is already borrowed.");
        }
    }

    void printAvailableBooks() {
        int index2 = 0;
        int flag = 0;
        while (true) {
            if (index2 == bookCollection[0].length){
                break;
            }
            if (bookCollection[1][index2] == "1"){
                flag = 1;
                System.out.println(bookCollection[0][index2]);}
            
            index2++;
            
        }
        if(flag == 0){
            System.out.println("no book in catalog");
        }
        
    }

    void returnBook(String bookName) {
        for (int i = 0; i < bookCollection[0].length; i++) {
            if (bookName.equals(bookCollection[0][i])) {
                bookCollection[1][i] = "1";
                break;
            }
        }
        System.out.println("You successfully returned The Lord of the Rings");
    }

    public static void main(String[] args) {
        // Create two libraries
        Library firstLibrary = new Library("10 Main St.");
        Library secondLibrary = new Library("228 Liberty St.");
        // set the array 0
        for (int i = 0; i < firstLibrary.bookCollection[0].length; i++) {
            firstLibrary.bookCollection[1][i] = "0";
            secondLibrary.bookCollection[1][i] = "0";
        }
        // Add four books to the first library
        firstLibrary.addBook(new Book("The Da Vinci Code"));
        firstLibrary.addBook(new Book("Le Petit Prince"));
        firstLibrary.addBook(new Book("A Tale of Two Cities"));
        firstLibrary.addBook(new Book("The Lord of the Rings"));
        // Print opening hours and the addresses
        System.out.println("Library hours:");
        printOpeningHours();
        System.out.println();
        System.out.println("Library addresses:");
        firstLibrary.printAddress();
        secondLibrary.printAddress();
        System.out.println();
        // Try to borrow The Lords of the Rings from both libraries
        System.out.println("Borrowing The Lord of the Rings:");
        firstLibrary.borrowBook("The Lord of the Rings");
        firstLibrary.borrowBook("The Lord of the Rings");
        secondLibrary.borrowBook("The Lord of the Rings");
        System.out.println();
        // Print the titles of all available books from both libraries
        System.out.println("Books available in the first library:");
        firstLibrary.printAvailableBooks();
        System.out.println();
        System.out.println("Books available in the second library:");
        secondLibrary.printAvailableBooks();
        System.out.println();
        // Return The Lords of the Rings to the first library
        System.out.println("Returning The Lord of the Rings:");
        firstLibrary.returnBook("The Lord of the Rings");
        System.out.println();
        // Print the titles of available from the first library
        System.out.println("Books available in the first library:");
        firstLibrary.printAvailableBooks();
    }
}
View Code

可优化的地方:此处用的一个String的二维数组来模拟的,实际上应该写一个类,然后建立一个对象的链表或数组就很好

String ar[2][3]即表示两行,每行有3个串

posted @ 2015-09-14 19:26  Gabyler  阅读(492)  评论(0编辑  收藏  举报