#include <iostream>
#include <vector>
#include <string>
// Class representing a Music Track
class MusicTrack {
public:
MusicTrack(const std::string& title) : title(title) {}
std::string getTitle() const { return title; }
private:
std::string title;
};
// Class representing the Music Player
class MusicPlayer {
public:
void addTrack(const MusicTrack& track) {
playlist.push_back(track);
}
void playTrack(int index) const {
if (index < 0 || index >= playlist.size()) {
std::cout << "Invalid track number.\n";
return;
}
std::cout << "Playing: " << playlist[index].getTitle() << "\n";
}
void listTracks() const {
std::cout << "Playlist:\n";
for (size_t i = 0; i < playlist.size(); ++i) {
std::cout << i << ". " << playlist[i].getTitle() << "\n";
}
}
private:
std::vector<MusicTrack> playlist;
};
int main() {
MusicPlayer player;
// Adding some tracks to the playlist
player.addTrack(MusicTrack("Song 1 - Artist A"));
player.addTrack(MusicTrack("Song 2 - Artist B"));
player.addTrack(MusicTrack("Song 3 - Artist C"));
int choice;
do {
std::cout << "\nMusic Player Menu:\n";
std::cout << "1. List Tracks\n";
std::cout << "2. Play Track\n";
std::cout << "3. Exit\n";
std::cout << "Enter your choice: ";
std::cin >> choice;
switch (choice) {
case 1:
player.listTracks();
break;
case 2: {
int trackNumber;
std::cout << "Enter track number to play: ";
std::cin >> trackNumber;
player.playTrack(trackNumber);
break;
}
case 3:
std::cout << "Exiting the music player.\n";
break;
default:
std::cout << "Invalid choice. Please try again.\n";
break;
}
} while (choice != 3);
return 0;
}