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

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!