Question: Programming Assignment: For the first programming assignment, we are going to create a program that helps a new record label (e.g., CS_Record_Label) to keep track
Programming Assignment: For the first programming assignment, we are going to create a program that helps a new record label (e.g., CS_Record_Label) to keep track of their artists and the most popular songs produced by that artist as part of this record label.
Your primary job will be to create an Abstract Data Type (ADT) for a CS_Record_Label program. The data member should be a head pointer to a LLL of all of the artists on this label. Each node will have a pointer to another linear linked list of the songs from that artist, organized by the most popular to the least. When songs change in popularity, your code will need to reorganize the data in the linear linked lists.
The information about an artist should include:
Name the artists name (e.g., Eminem)
Top story about this artist (e.g., September 25 Eminem royalties shares to be sold in an IPO)
Description information about when the artist joined the label and the genre of music
A LLL of songs, where each song has a:
Title (e.g., Lose Yourself)
Length (e.g., 5.23)
The number of views (e.g., 144,309,378)
Number of likes (e.g., 654,000)
This ADT must have public member functions to perform the following:
Constructor - Construct an object and initialize the data members
Destructor - Release all dynamic memory and reset data members to their zero equivalent value
Add a new artist
Add a new song for the artist
Edit the number of views and likes for a song
Display all songs for an artist (in order of popularity)
Display all artists
Remove all songs with fewer than M views, where M is sent in as an argument
Things you should know...as part of your program:
General Syntax Rules
Do not use statically allocated arrays in your classes or structures. All memory must be dynamically allocated and kept to a minimum!
Global variables are not allowed in CS260; global constants are encouraged
Do not use the String class! (use arrays of characters instead); you may use the cstring library with strlen, strcpy, strcmp
Avoid using break or return from within the body of a loop
Avoid using while(1) type of syntax
Strive towards structured programming techniques
Remember that at least one function needs to be written using recursion!
For functions that have non-void return types, make sure to return a value through each path through the function.
NEVER pass class types by value (always by reference); NEVER return class types by value.
Use the iostream library for all I/O; do not use stdio.h for I/O
Use of external data files is required
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
