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
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.