×
Reviews 4.9/5 Order Now

Create a Program to Implement Playlist Handling System in C++ Assignment Solution

July 15, 2024
Harry F. Grimmett
Harry F.
🇨🇦 Canada
C++
Harry F. Grimmett, with a master’s in computer science from the University of Kent, is a C++ homework helper, boasting six years of field experience.
Key Topics
  • Instructions
  • Requirements and Specifications
Tip of the day
Write clean, readable code using meaningful variable names and comments. Leverage Python’s built-in libraries to simplify tasks and avoid reinventing the wheel. Always test your code with different inputs and use debugging tools like print() or pdb to troubleshoot errors efficiently.
News
In March 2025, researchers at MIT's Computer Science and Artificial Intelligence Laboratory introduced Exo 2, a new programming language designed to enable high-performance computing with significantly less code, allowing students and developers to achieve state-of-the-art performance with just a few hundred lines.

Instructions

Objective

Write a program to implement playlist handling system in C++.

Requirements and Specifications

program to implement playlist handling system in C++

Source Code

SONG

#include "song.h" Song::Song() { title = ""; artist = ""; } Song::Song(string title, string artist) { this->title = title; this->artist = artist; } // getters string Song::getTitle() { return title; } string Song::getArtist() { return artist; } // setters void Song::setTitle(string title) { this->title = title; } void Song::setArtist(string artist) { this->artist = artist; }

MAIN

/* Name: NetID: Date: Due Date: Description: */ /* The shuffle algorithm is called 'fisher-yates'. Reference: https://www.techiedelight.com/shuffle-vector-cpp/ The sort algorithm is called 'bubble sort'. Reference: https://www.geeksforgeeks.org/bubble-sort/ The search algorithm is called 'binary search'. Reference: https://www.geeksforgeeks.org/binary-search/ */ #include #include #include #include #include #include #include "song.h" using namespace std; // given to you void processFile(vector &playlist); // you should create void shuffle(vector &playlist); void bubbleSort(vector &playlist); void displayPlaylist(vector &playlist); int binarySearch(vector &playlist, string &title); // add your own sort function int main() { vector playlist; // sets up playlist processFile(playlist); cout << "\nInitial playlist: " << endl; displayPlaylist(playlist); while (true) { cout << endl; // Display a menu cout << "Welcome to the playlist display manager." << endl << endl; cout << "0. Exit" << endl; cout << "1. Sort Playlist" << endl; cout << "2. Shuffle Playlist" << endl; cout << "3. Search Playlist" << endl; cout << "Which option would you like? "; string option; getline(cin, option); cout << endl; // Execute user's option if (option == "0") break; if (option == "1") { // Do sorting bubbleSort(playlist); displayPlaylist(playlist); } else if (option == "2") { // Do shuffling shuffle(playlist); displayPlaylist(playlist); } else if (option == "3") { // So searching, binary search requires the list // to be sorted so we make sure it is sorted first ;bubbleSort(playlist); cout << "Enter a song title: "; string title; getline(cin, title); int i = binarySearch(playlist, title); if (i == -1) cout << "Error: The song title does not exist." << endl; else cout << playlist[i].getTitle() << " - " << playlist[i].getArtist() << endl; } else { cout << "Error: Invalid option." << endl; } } cout << "Good-bye!" << endl; return 0; } // Perform a binary search int binarySearch(vector &playlist, string &title) { int left = 0; int right = (int) playlist.size() - 1; while (left <= right) { int middle = left + (right - left) / 2; if (playlist[middle].getTitle() == title) return middle; if (playlist[middle].getTitle() < title) left = middle + 1; else right = middle - 1; } return -1; } // Sort the play list by title void bubbleSort(vector &playlist) { int n = (int)playlist.size(); for (int i = 0; i < n; i++) { for (int j = 0; j < n - i - 1; j++) { if (playlist[j].getTitle() > playlist[j + 1].getTitle()) { Song temp = playlist[j]; playlist[j] = playlist[j + 1]; playlist[j + 1] = temp; } } } } // Shuffle the play list void shuffle(vector &playlist) { int n = (int) playlist.size(); for (int i = 0; i < n; i++) { int j = i + rand() % (n - i); Song temp = playlist[i]; playlist[i] = playlist[j]; playlist[j] = temp; } } // Print out the play list void displayPlaylist(vector &playlist) { for (unsigned i = 0; i < playlist.size(); i++) cout << playlist[i].getTitle() << " - " << playlist[i].getArtist() << endl; } // Load the contens of songs file void processFile(vector &playlist) { ifstream infile; string line; infile.open("songs.txt"); if (infile.is_open()) { cout << "Successful songs opening." << endl; } else { cout << "Couldn't locate file. Program closing." << endl; exit(EXIT_FAILURE); } while (getline(infile, line)) { // first line --> song // second line --> artist if (line != "") { string song, artist; song = line; getline(infile, artist); Song temp(song, artist); playlist.push_back(temp); } } return; }

Related Samples

Struggling with your C++ assignments? Check out our detailed sample to see how our experts handle complex programming tasks with ease. From basic syntax to advanced algorithms, we provide comprehensive solutions tailored to your needs. Let us help you excel in your programming coursework!