Am creating a simple movie database with two classes namely Movie and Library.Library class has a a method addMovie which adds movie objects to an array of Movie objects. Another method borrowMovie retrieves movies from the movie object array and returnMovie returns Movie objects back in the array.It indicates that a movie has been returned, borrowMovie is supposed to work in a way that you cant borrow a movie twice unless it has been returned such that if someone tried to borrow it. it would show that its already borrowed and if its not in the Movie array it should indicate that the movie is not in the catalog. Another method printAvailableMovies should print all the movies in the library.Here is my sample code for movie and Library classes.
Movie.java
public class Movie {
public String title;
boolean borrowed,returned;
// Creates a new Movie
public Movie(String movieTitle) {
title = movieTitle;
}
// Marks the movie as rented
public void borrowed() {
borrowed = true;
}
// Marks the movie as not rented
public void returned() {
returned = true;
}
// Returns true if the movie is rented, false otherwise
public boolean isBorrowed() {
if(borrowed && !returned)
return true;
else
return false;
}
// Returns the title of the movie
public String getTitle() {
return title;
}
public static void main(String[] arguments) {
// Small test of the Movie class
Movie example = new Movie("Christmas in Kampala");
System.out.println("Title (should be Christmas in Kampala): " + example.getTitle());
System.out.println("Borrowed? (should be false): " + example.isBorrowed());
example.borrowed();
System.out.println("Borrowed? (should be true): " + example.isBorrowed());
example.returned();
System.out.println("Borrowed? (should be false): " + example.isBorrowed());
}
}
Library.java
public class Library {
String address;
boolean borrowMovie,returnMovie;
Movie[] libMovies =new Movie[5] ;
public Library(String libraryAddress){
address = libraryAddress;
}
public void addMovie(Movie... movies ){
int i = 0;
for( Movie item: movies){
libMovies[i] = item;}
}
public void borrowMovie(String movieTitle){
for(Movie item: libMovies){
if(movieTitle.equals(item.title))
borrowMovie = true;
else
System.out.println("Sorry, this movie is not in our catalog.");
}
if(borrowMovie&&!returnMovie)
System.out.println("You have successfully borrowed " + movieTitle);
else
System.out.println("Sorry, this movie is already borrowed.");
}*/
public void returnMovie(String movieTitle){
returnMovie = true;
System.out.println("You successfully returned " + movieTitle);
}
public static void printOpeningHours(){
System.out.println ("Libraries are open daily from 9am to 5pm.");
}
public void printAddress(){
System.out.println( address);
}
public void printAvailableMovies(){
for( int i =0;i < libMovies.length;i++){
System.out.println(libMovies[i].getTitle());}
// if(item == null)
//System.out.println("No movie in catalog.");
}
public static void main(String[] args) {
// Create two libraries
Library firstLibrary = new Library("Plot 11, Kafene Road");
Library secondLibrary = new Library("Plot 28, Kayembe Road");
// Add four movies to the first library
firstLibrary.addMovie(new Movie("Yogera"));
firstLibrary.addMovie(new Movie("The Last King of Scotland"));
firstLibrary.addMovie(new Movie("The Hostel"));
firstLibrary.addMovie(new Movie("Christmas in Kampala"));
// 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 Christmas in Kampala from both libraries
System.out.println("Borrowing Christmas in Kampala:");
firstLibrary.borrowMovie("Christmas in Kampala");
firstLibrary.borrowMovie("Christmas in Kampala");
secondLibrary.borrowMovie("Christmas in Kampala");
System.out.println();
Print the titles of all available movies from both libraries
System.out.println("Movies available in the first library:");
firstLibrary.printAvailableMovies();
System.out.println();
System.out.println("Movies available in the second library:");
secondLibrary.printAvailableMovies();
System.out.println();
// Return Christmas in Kampala to the first library
System.out.println("Returning Christmas in Kampala:");
firstLibrary.returnMovie("Christmas in Kampala");
System.out.println();
// Print the titles of available movies from the first library
System.out.println("Movies available in the first library:");
firstLibrary.printAvailableMovies();
}
}
The main method for Library.java should output
Library hours:
Libraries are open daily from 9am to 5pm.
Library addresses:
Plot 11, Kafene Road
Borrowing Christmas in Kampala:
You successfully borrowed Christmas in Kampala
Sorry, this movie is already borrowed.
Sorry, this movie is not in our catalog.
Movies available in the first library:
Yogera
The Last King of Scotland
The Hostel
Movies available in the second library:
No movie in catalog
Returning Christmas in Kampala:
You successfully returned Christmas in Kampala
Movies available in the first library:
Yogera
The Last King of Scotland
The Hostel
Christmas in Kampala.
Now Movie.Java works perfectly and needs no modification but Library.java is a major source of pain because i can only make it work upto printing the library addresses. The methods borrowMovie,addMovie,returnMovie and printAvailableMovies are the culprits because they involve manipulating arrays of Movie Objects. The main method should not change and output should be as above when you test Library.java.Please change the code if you have to for these methods because my ideas dont seem to work. Any help would be appreciated.