Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Use Java please 1. Create a data set of 30 movies 2. Assign names to each of the

ID: 3889386 • Letter: U

Question

Use Java please

1. Create a data set of 30 movies 2. Assign names to each of the 30 movies (you can use actual movie names, or Moviel, Movie2,.. Movie30) 3. Assign a random year to each of the movies (the range of the year would be 1920 to 2017), such that there is no more than one movie in a year 4. Assign a random running time to each of the movies (the range would be 60 to 200 minutes) 5. Assign a genre to each movie choosing from one of the following: Comedy, Drama, Sci-Fi, Action, Documentary; make sure there are no more than 10 movies in any category 6. Assign a random rating to each movie (range 0.1 to 10.0)

Explanation / Answer

Given below is the code for the question. Hope it helps. If it did, please do rate the answer. Thank you

Movie.java

public class Movie {

   private String title;

   private double rating;

   private int runningTime;

   private String genre;

   private int year;

  

   public Movie()

   {

       title = "none";

       rating = 0;

       runningTime = 0;

       genre = "none";

       year = 0;

   }

   public String getTitle() {

       return title;

   }

   public void setTitle(String title) {

       this.title = title;

   }

   public double getRating() {

       return rating;

   }

   public void setRating(double rating) {

       this.rating = rating;

   }

   public int getRunningTime() {

       return runningTime;

   }

   public void setRunningTime(int runningTime) {

       this.runningTime = runningTime;

   }

   public String getGenre() {

       return genre;

   }

   public void setGenre(String genre) {

       this.genre = genre;

   }

   public int getYear() {

       return year;

   }

   public void setYear(int year) {

       this.year = year;

   }

  

   public void display()

   {

       System.out.println("Title: " + title);

       System.out.println("Year: " + year);

       System.out.println("Running time: " + runningTime);

       System.out.println("Genre: " + genre);

       System.out.printf("Rating: %.2f " , rating) ; //show rating with 2 decimal places

      

   }

}

MovieSet.java

import java.util.Random;

import java.util.Scanner;

public class MovieSet {

   private Movie[] movies;

   private int count;

   private Random random = new Random();

   private static final String[] genre = {"Comedy", "Drama", "Sci-Fi", "Action", "Documentary"};

   private static int MIN_YEAR = 1920;

   private static int MAX_YEAR = 2017;

   private static int MIN_TIME = 60;

   private static int MAX_TIME = 200;

   public static Scanner keybd = new Scanner(System.in);

  

   public MovieSet()

   {

       initialize();

   }

  

   private void initialize()

   {

       movies = new Movie[35]; //30 generated and max 5 allowed for user

       for(count = 0; count < 30; count++)

           movies[count] = generateMovie(count + 1);

   }

  

   private Movie generateMovie(int n)

   {

       Movie m = new Movie();

      

       m.setTitle("Movie" + n);

      

       int idx = random.nextInt(genre.length);

       m.setGenre(genre[idx]);

      

       m.setRating(0.1 + random.nextDouble() * 10);

      

       int diff = MAX_TIME - MIN_TIME;

       int time = MIN_TIME + random.nextInt(diff);

       m.setRunningTime(time);

      

       diff = MAX_YEAR - MIN_YEAR;

       int year = MIN_YEAR + random.nextInt(diff);

       m.setYear(year);

      

       return m;

      

   }

   public int getCount()

   {

       return count;

   }

   public void addMovie()

   {

      

       if(count >= movies.length)

       {

           System.out.println("Already full. Can not add any more");

           return;

       }

       Movie m = new Movie();

       String title = "";

       System.out.println("Enter movie details-");

       System.out.print("Title: ");

      

       while(title.equals(""))

           title = keybd.nextLine().trim();

       m.setTitle(title);

      

       System.out.print("Year: ");

       int year = keybd.nextInt();

       m.setYear(year);

      

       System.out.print("Running Time: ");

       int time = keybd.nextInt();

       m.setRunningTime(time);

      

       System.out.println();

       for(int i =0; i < genre.length; i++)

           System.out.println((i+1) + ". " + genre[i]);

       System.out.println();

       System.out.print("Genre: ");

       int choice = keybd.nextInt();

       m.setGenre(genre[choice-1]);

      

       System.out.print("Rating: ");

       double rating = keybd.nextDouble();

       m.setRating(rating);

      

       movies[count++] = m;

   }

  

   public void displayAllWithGenre(String gen)

   {

       for(int i = 0; i < count; i++)

       {

           if(movies[i].getGenre().equalsIgnoreCase(gen))

               movies[i].display();

       }

   }

  

   public void displayMovie(String name)

   {

       for(int i = 0; i < count; i++)

       {

           if(movies[i].getTitle().equalsIgnoreCase(name))

           {

               movies[i].display();

               return;

           }

       }

      

       System.out.println("Movie not found ");

   }

  

   public static void main(String[] args) {

       MovieSet set = new MovieSet();

       int choice = 0;

       String input;

       while(choice != 4)

       {

           System.out.println("1. Display movies matching a genre");

           System.out.println("2. Search for movie name");

           System.out.println("3. Add movie");

           System.out.println("4. Exit");

           System.out.print("Enter your choice: ");

           choice = keybd.nextInt();

           keybd.nextLine();//remove newline

           switch(choice)

           {

               case 1:

                   System.out.print("Enter genre: ");

                   input = keybd.next();

                   set.displayAllWithGenre(input);

                   break;

               case 2:

                   System.out.print("Enter movie name: ");

                   input = keybd.nextLine().trim();

                   set.displayMovie(input);

                   break;

               case 3:

                   set.addMovie();

                   break;

               case 4:

                   break;

               default:

                   System.out.println("Invalid menu choice!");

           }

       }

   }

}

output

1. Display movies matching a genre
2. Search for movie name
3. Add movie
4. Exit
Enter your choice: 1
Enter genre: Comedy
Title: Movie2
Year: 1960
Running time: 174
Genre: Comedy
Rating: 0.23

Title: Movie7
Year: 1993
Running time: 119
Genre: Comedy
Rating: 7.72

Title: Movie13
Year: 1925
Running time: 185
Genre: Comedy
Rating: 4.38

Title: Movie20
Year: 1947
Running time: 90
Genre: Comedy
Rating: 8.50

Title: Movie22
Year: 1934
Running time: 66
Genre: Comedy
Rating: 8.41

1. Display movies matching a genre
2. Search for movie name
3. Add movie
4. Exit
Enter your choice: 2
Enter movie name: Movie10
Title: Movie10
Year: 1976
Running time: 92
Genre: Sci-Fi
Rating: 0.70

1. Display movies matching a genre
2. Search for movie name
3. Add movie
4. Exit
Enter your choice: 3
Enter movie details-
Title: Movie 33333
Year: 2000
Running Time: 45

1. Comedy
2. Drama
3. Sci-Fi
4. Action
5. Documentary

Genre: 3
Rating: 9
1. Display movies matching a genre
2. Search for movie name
3. Add movie
4. Exit
Enter your choice: 1
Enter genre: Sci-Fi
Title: Movie8
Year: 1966
Running time: 115
Genre: Sci-Fi
Rating: 6.71

Title: Movie10
Year: 1976
Running time: 92
Genre: Sci-Fi
Rating: 0.70

Title: Movie19
Year: 2005
Running time: 184
Genre: Sci-Fi
Rating: 1.63

Title: Movie 33333
Year: 2000
Running time: 45
Genre: Sci-Fi
Rating: 9.00

1. Display movies matching a genre
2. Search for movie name
3. Add movie
4. Exit
Enter your choice: 4

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote