Create a movie organizer program to catalog and manage of a list of movies. The program must use the
C++ standard template library’s (STL) “list” API. The program must keep track of a list of attributes
associated with an individual movie in a single global linked list data structure. The program must
implement at least one class, which will hold the following class variables associated with a music file:
• A string variable to hold a record identifier associated with the movie entry. This must be a
randomly generated six character string for each entry that is added to the linked list. For
example: EXWRFK, HJYXQA, JRTGFS, etc. Duplicate entries are not allowed.
• A string variable to hold the name of the movie. Spaces must be allowed in the name.
• A string variable to hold a description of the movie. Spaces must be allowed in the description.
• A string variable to hold the category of the movie. For example: Action, Drama, etc.
• A string variable to hold the length of the movie’s playing time. The time must be in the form
mmm:ss (where mmm is the number of minutes and ss is the number of seconds). If the user enters
an invalid time format, the program must print an error and re-prompt the user to enter the time in
the correct format.
Provide the appropriate accessor methods to set and get the data for each of these class variables. For
example setMoiveName(string movieName) and getMovieName(). The main program must
provide the following functionality:
1. When the program is first started, it must read a data file called movies.dat. The program
should not prompt the user for the name of the data file. If the file exists, the program will
load the data for each movie into the global linked list data structure. If the file does not exist,
the program will start with an empty linked list.
2. Provide a simple text-based user interface that displays the title of your music organizer
program and allows the user to operate on the global linked list of music entries. Each entry
must be placed in this global linked list as an object that will hold all of the information
associated with a given movie. The program interface will allow the user to do the following:
(a) Display all movies – displays all of the movies in the global linked list. The feature
will display all of the fields associated with the each movie. It must also print the
total number of movies and total amount of playing time for all movies in the
organizer. The total playing time must be in valid time the format hh:mm:ss.
(b) Enter a move – allows the user to enter all of the fields associated to a given movie,
except for the record identifier, which will be an automatically randomly generated
six character string. After the data fields are entered, the program will place the
movie entry in the global linked list data structure kept in memory.
(c) Delete a movie – allows the user to delete a movie from the linked list using the
record identifier as the key. Display a message if the movie is not found in the linked
(d) Search for a movie – allows the user to find and print all of the data associated with a
movie. The program will prompt the user to enter the movie name and display a
message if there are no movies found in the linked list for a given movie name.
(e) Modify a movie – allows the user to modify the fields for a given movie (except for
the record identifier) in the linked list. Use the record identifier as the key to find the
movie to modify. For simplicity, the program may re-prompt the user to re-enter all
of the fields associated with a movie, but will reuse the record identifier. Display a
message if the movie is not found in the linked list.
(f) Exit program – before the program exits, it must save all of the data for each movie
that is contained within the linked list into the data file. Use a standard text file with
one field per line. At this point, if the file does not exist, the program will create it.
|$70.00||no category||sarmad_junaid||1 time(s)|