815 Program Playlist C You will be building a linked list Ma

8.15 Program: Playlist (C++)

You will be building a linked list. Make sure to keep track of both the head and tail nodes.

(1) Create three files to submit.

Playlist.h - Class declaration

Playlist.cpp - Class definition

main.cpp - main() function

Build the PlaylistNode class per the following specifications. Note: Some functions can initially be function stubs (empty functions), to be completed in later steps.

Default constructor (1 pt)

Parameterized constructor (1 pt)

Public member functions

InsertAfter() (1 pt)

SetNext() - Mutator (1 pt)

GetID() - Accessor

GetSongName() - Accessor

GetArtistName() - Accessor

GetSongLength() - Accessor

GetNext() - Accessor

PrintPlaylistNode()

Private data members

string uniqueID - Initialized to \"none\" in default constructor

string songName - Initialized to \"none\" in default constructor

string artistName - Initialized to \"none\" in default constructor

int songLength - Initialized to 0 in default constructor

PlaylistNode* nextNodePtr - Initialized to 0 in default constructor

Ex. of PrintPlaylistNode output:

(2) In main(), prompt the user for the title of the playlist. (1 pt)

Ex:


(3) Implement the PrintMenu() function. PrintMenu() takes the playlist title as a parameter and outputs a menu of options to manipulate the playlist. Each option is represented by a single character. Build and output the menu within the function.

If an invalid character is entered, continue to prompt for a valid choice. Hint: Implement Quit before implementing other options. Call PrintMenu() in the main() function. Continue to execute the menu until the user enters q to Quit. (3 pts)

Ex:


(4) Implement \"Output full playlist\" menu option. If the list is empty, output: Playlist is empty (3 pts)

Ex:


(5) Implement the \"Add song\" menu item. New additions are added to the end of the list. (2 pts)

Ex:


(6) Implement the \"Remove song\" function. Prompt the user for the unique ID of the song to be removed.(4 pts)

Ex:


(7) Implement the \"Change position of song\" menu option. Prompt the user for the current position of the song and the desired new position. Valid new positions are 1 - n (the number of nodes). If the user enters a new position that is less than 1, move the node to the position 1 (the head). If the user enters a new position greater than n, move the node to position n (the tail). 6 cases will be tested:

Moving the head node (1 pt)

Moving the tail node (1 pt)

Moving a node to the head (1 pt)

Moving a node to the tail (1 pt)

Moving a node up the list (1 pt)

Moving a node down the list (1 pt)

Ex:


(8) Implement the \"Output songs by specific artist\" menu option. Prompt the user for the artist\'s name, and output the node\'s information, starting with the node\'s current position. (2 pt)

Ex:


(9) Implement the \"Output total time of playlist\" menu option. Output the sum of the time of the playlist\'s songs (in seconds). (2 pts)

Ex:

L

Lab Submission

Solution

Playlist.h

#ifndef Node_A

#define Node_A

template <class T>

class Node

{

public:

Node();

~Node();

T getData();

Node* getNext();

void setData(T);

void setNext(Node*);

private:

Node *next;

T data;

};

Playlist.cpp

#include \"Playlist.h\"

template <class T>

Node<T>::Node()

{

next = NULL;

return;

}

template <class T>

Node<T>::~Node()

{

return;

}

main.cpp

#include <iostream>

#include \"Playlist.h\"

using namespace std;

int main()

{

Node<int> a,b;

//No /*...*/

return 0;

}

8.15 Program: Playlist (C++) You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. Play
8.15 Program: Playlist (C++) You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. Play
8.15 Program: Playlist (C++) You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. Play
8.15 Program: Playlist (C++) You will be building a linked list. Make sure to keep track of both the head and tail nodes. (1) Create three files to submit. Play

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site