The movie collection program found below is currently missing two important pieces of functionality---it doesn't add movies to the collection, nor is it able to print the longest movies in the collection. Provided for you is the Movie class which contains the title and duration for a particular movie, and the MovieCollection class which is responsible for maintaining a collection of movies. Your task is to implement missing functionality by a) completing the interactive loop, and b) defining a print_longest_movies method on the MovieCollection class. a) Completing the interactive loop To complete the interactive loop, you must instantiate a Movie object using the information provided by the user and add it to the MovieCollection object using the provided add_movie method. b) Defining print_longest_movies This method is to take no arguments and print the title and duration of the top three longest movies in descending order (i.e. highest to lowest). Additionally, each movie should be numbered in the output (i.e. the longest movie is 1, the second longest is 2, etc). Here's an example of output which could be produced when print_longest_movies is called: 1. Titanic (194 minutes) 2. Vertigo (128 minutes) 3. Jaws (124 minutes) In order to sort the movies you should call the sort list method (documented here). You will need to make use of the sort method's two named arguments when calling it: key and reverse: The key named argument can be provided with the name of a function (no parentheses). That function will be called for each item, and sorting will be based on the values returned by the function. The reverse named argument can be provided with a boolean which determines whether the sort order should be reversed or not. Hint: A function which returns the duration of a movie has already been defined for you, and can be used as the key named argument for sort.           Requirements To achieve full marks for this task, you must follow the instructions above when writing your solution. Additionally, your solution must adhere to the following requirements: You must use the sort list method with appropriate named arguments to sort movies in descending order of duration. You must make appropriate use of a loop to print the longest movies. You must not use a return, break, or continue statement in print_longest_movies. You must limit the number of movies printed to three. If there are fewer than three movies in the collection, all of them should be printed.           Example Runs Run 1 (more than three movies) Movie title (or blank to finish): Vertigo Movie duration (minutes): 128 Movie title (or blank to finish): Titanic Movie duration (minutes): 194 Movie title (or blank to finish): Rocky Movie duration (minutes): 120 Movie title (or blank to finish): Jaws Movie duration (minutes): 124 Movie title (or blank to finish):  = Longest movies in the collection = 1. Titanic (194 minutes) 2. Vertigo (128 minutes) 3. Jaws (124 minutes) Run 2 (fewer than three movies) Movie title (or blank to finish): Braveheart Movie duration (minutes): 178 Movie title (or blank to finish):  = Longest movies in the collection = 1. Braveheart (178 minutes) Your code should execute as closely as possible to the example runs above. To check for correctness, ensure that your program gives the same outputs as in the examples, as well as trying it with other inputs.           class Movie: def__init__(self, title, duration): self.title = title self.duration = duration def get_movie_duration(movie): return movie.duration class MovieCollection: def__init__(self): self.movies = [] defadd_movie(self, movie): self.movies.append(movie)   # b) Write your method here collection = MovieCollection() while True: title = input('Movie title (or blank to finish): ') if title == '': break duration = int(input('Movie duration (minutes): ')) # a) Add the movie to the collection here

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

For this task, you are to complete a program which manages a movie collection.

 
 
 
 
 

Instructions

The movie collection program found below is currently missing two important pieces of functionality---it doesn't add movies to the collection, nor is it able to print the longest movies in the collection.

Provided for you is the Movie class which contains the title and duration for a particular movie, and the MovieCollection class which is responsible for maintaining a collection of movies. Your task is to implement missing functionality by a) completing the interactive loop, and b) defining a print_longest_movies method on the MovieCollection class.

a) Completing the interactive loop

To complete the interactive loop, you must instantiate a Movie object using the information provided by the user and add it to the MovieCollection object using the provided add_movie method.

b) Defining print_longest_movies

This method is to take no arguments and print the title and duration of the top three longest movies in descending order (i.e. highest to lowest). Additionally, each movie should be numbered in the output (i.e. the longest movie is 1, the second longest is 2, etc). Here's an example of output which could be produced when print_longest_movies is called:

1. Titanic (194 minutes)
2. Vertigo (128 minutes)
3. Jaws (124 minutes)

In order to sort the movies you should call the sort list method (documented here). You will need to make use of the sort method's two named arguments when calling it: key and reverse:

  • The key named argument can be provided with the name of a function (no parentheses). That function will be called for each item, and sorting will be based on the values returned by the function.

  • The reverse named argument can be provided with a boolean which determines whether the sort order should be reversed or not.

Hint: A function which returns the duration of a movie has already been defined for you, and can be used as the key named argument for sort.

 
 
 
 
 

Requirements

To achieve full marks for this task, you must follow the instructions above when writing your solution. Additionally, your solution must adhere to the following requirements:

  • You must use the sort list method with appropriate named arguments to sort movies in descending order of duration.
  • You must make appropriate use of a loop to print the longest movies.
  • You must not use a return, break, or continue statement in print_longest_movies.
  • You must limit the number of movies printed to three. If there are fewer than three movies in the collection, all of them should be printed.
 
 
 
 
 

Example Runs

Run 1 (more than three movies)
Movie title (or blank to finish): Vertigo
Movie duration (minutes): 128
Movie title (or blank to finish): Titanic
Movie duration (minutes): 194
Movie title (or blank to finish): Rocky
Movie duration (minutes): 120
Movie title (or blank to finish): Jaws
Movie duration (minutes): 124
Movie title (or blank to finish): 

= Longest movies in the collection =
1. Titanic (194 minutes)
2. Vertigo (128 minutes)
3. Jaws (124 minutes)
Run 2 (fewer than three movies)
Movie title (or blank to finish): Braveheart
Movie duration (minutes): 178
Movie title (or blank to finish): 

= Longest movies in the collection =
1. Braveheart (178 minutes)

Your code should execute as closely as possible to the example runs above. To check for correctness, ensure that your program gives the same outputs as in the examples, as well as trying it with other inputs.

 

 

 

 

 

class Movie:
def__init__(self, title, duration):
self.title = title
self.duration = duration


def get_movie_duration(movie):
return movie.duration


class MovieCollection:
def__init__(self):
self.movies = []

defadd_movie(self, movie):
self.movies.append(movie)
 
# b) Write your method here


collection = MovieCollection()

while True:
title = input('Movie title (or blank to finish): ')
if title == '':
break
duration = int(input('Movie duration (minutes): '))

# a) Add the movie to the collection here

print('\n= Longest movies in the collection =')
collection.print_longest_movies()
Expert Solution
steps

Step by step

Solved in 2 steps with 3 images

Blurred answer
Knowledge Booster
JQuery and Javascript
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-engineering and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY