Return to the Section 101 Homepage.


Lab 3 (06-27)

Here is my solution to lab 3:

Library.java
import java.util.*;

public class Library {
      private ArrayList shelf;
      private ArrayList checkedOut;
      
      public Library()
      {
         shelf = new ArrayList();
         checkedOut = new ArrayList();
      }

      // Part 1
      public void listBooksOnShelf()
      {
         for (int currentBookIndex = 0;
              currentBookIndex < shelf.size();
              currentBookIndex ++)
         {
            System.out.println(shelf.get(currentBookIndex));
         }
      }

      // Part 1
      public void listBooksCheckedOut()
      {
         for (int currentBookIndex = 0;
              currentBookIndex < checkedOut.size();
              currentBookIndex ++)
         {
            System.out.println(checkedOut.get(currentBookIndex));
         }
      }
      
      // Part 2
      public void printAllBooks()
      {
         System.out.println("On Shelf:");
         listBooksOnShelf();
         System.out.println("Checked Out:");
         listBooksCheckedOut();
         System.out.println();
      }

      // Part 3
      public static void main(String args[])
      {
         Library library = new Library();

         library.addBook(new Book("Book1"));
         library.addBook(new Book("Book2"));
         library.addBook(new Book("Book3"));
         library.addBook(new Book("Book4"));
         library.addBook(new Book("Book5"));
         System.out.println("===== START =====");
         library.printAllBooks();
         System.out.println();

         Book book2 = library.checkOut("Book2");
         library.checkOut("Book4");
         System.out.println("===== BOOKS 2 AND 4 CHECKED OUT =====");
         library.printAllBooks();
         System.out.println();

         library.checkIn(book2);
         System.out.println("===== BOOK 2 CHECKED IN =====");
         library.printAllBooks();
         System.out.println();
      }      

      // Part 4
      public void addBooks(Book newBook, int copyCount)
      {
         for (int currentCopyNumber = 0;
              currentCopyNumber < copyCount;
              currentCopyNumber ++)
         {
            // Be careful here - Want to add different copies of the book.
            shelf.add(new Book(newBook.toString()));
         }
      }





      // All of the following code was given
      public void addBook(Book newBook) {
         shelf.add(newBook);
      }
      
      public void checkIn(Book book) {
         if (isCheckedOut(book.toString())) {
            int idx = checkedOut.indexOf(book);
            checkedOut.remove(idx);
            shelf.add(book);
         }
      }
      
      public Book checkOut(String title) {
         if (isOnShelf(title)) {
            int idx = shelf.indexOf(new Book(title));
            shelf.remove(idx);
            Book bk = new Book(title);
            checkedOut.add(bk);
            return bk;
         } else {
            return null;
         }
      }
      
      public boolean isCheckedOut(String title) {
         return checkedOut.contains(new Book(title));
      }
      
      public boolean isOnShelf(String title) {
         return shelf.contains(new Book(title));
      }
      
      public int totalNumBooks() {
         return shelf.size() + checkedOut.size();
      }
}



Return to the Section 101 Homepage.