Write Album's PrintSongsShorterThan() to print all the songs from the album shorter than the value of the parameter songDuration. Use Song's PrintSong() to print the songs.
#include #include #include using namespace std; class Song { public: void SetNameAndDuration(string songName, int songDuration) { name = songName; duration = songDuration; } void PrintSong() const { cout << name << " - " << duration << endl; } string GetName() const { return name; } int GetDuration() const { return duration; } private: string name; int duration; }; int main() { vector playlist; Song currentSong; string currentName; int currentDuration; unsigned int i; cin >> currentName; while (currentName != "quit") { /* Your code goes here */ } for (i = 0; i < playlist.size(); ++i) { currentSong = playlist.at(i); currentSong.PrintSong(); } return 0; }

Respuesta :

Answer:

kindly check explainations for code

Explanation:

Check below for program code.

#include <iostream>

#include <string>

#include <vector>

using namespace std;

class Song

{

public:

void SetNameAndDuration(string songName, int songDuration)

{

name = songName;

duration = songDuration;

}

void PrintSong() const

{

cout << name << " - " << duration << endl;

}

string GetName() const { return name; }

int GetDuration() const { return duration; }

private:

string name;

int duration;

};

class Album

{

public:

void SetName(string albumName) { name = albumName; }

void InputSongs();

void PrintName() const { cout << name << endl; }

void PrintSongsShorterThan(int songDuration) const;

private:

string name;

vector<Song> albumSongs;

};

void Album::InputSongs()

{

Song currSong;

string currName;

int currDuration;

cin >> currName;

while (currName != "quit")

{

cin >> currDuration;

currSong.SetNameAndDuration(currName, currDuration);

albumSongs.push_back(currSong);

cin >> currName;

}

}

void Album::PrintSongsShorterThan(int songDuration) const

{

unsigned int i;

Song currSong;

cout << "Songs shorter than " << songDuration << " seconds:" << endl;

/* Your code goes here */

for(int i=0; i<albumSongs.size(); i++){

currSong = albumSongs.at(i);

if(currSong.GetDuration()<songDuration){

currSong.PrintSong();

}

}

}

int main()

{

Album musicAlbum;

string albumName;

getline(cin, albumName);

musicAlbum.SetName(albumName);

musicAlbum.InputSongs();

musicAlbum.PrintName();

musicAlbum.PrintSongsShorterThan(210);

return 0;

}

Followg are the missing code to the program:

Code:

for(int i=0; i<albumSongs.size(); i++)//defining loop to print value

   {

       currSong = albumSongs.at(i);//holding albumSongs by suing at method

       if(currSong.GetDuration()<songDuration)// using if to check songDuration value  

       {

           currSong.PrintSong();//calling PrintSongong method

       }

   }

Complete program:

#include <iostream>//header file

#include <string>//header file

#include <vector>//header file

using namespace std;

class Song//defining a clas Song

{

   private:  

   string name;//defining string variable

   int duration;//defining integer variable

   

public:

   void SetNameAndDuration(string songName, int songDuration)//defining a set method that takes two parameters  

   {

       name = songName;// using name variable to hold value  

       duration = songDuration;// using duration variable to hold value  

   }

   void PrintSong() const//defining a method PrintSong  as constant

   {

       cout << name << " - " << duration << endl;//print value

   }

   string GetName() const //defining a get method to return value

   {  

       return name; //return name value

   }

   int GetDuration() const//defining a get method to return value

   {  

       return duration; //return duration value

   }

};

class Album//defining a class Album

{

   private:

   string name;//defining a string variable

   vector<Song> albumSongs;//defining a class type variable

public:

   void SetName(string albumName) //defining set method takes one parameter

   {

       name = albumName; //using name variable to hold value

   }

   void InputSongs();//declaing a method InputSongs  

   void PrintName()const //defining a method PrintName

   {  

       cout << name << endl; //print name value

   }

   void PrintSongsShorterThan(int songDuration) const;//declaing method PrintSongsShorterThan  

};

void Album::InputSongs()//defining a method InputSongs  

{

   Song currSong;//defining class type variable

   string currName;//defining a string variable

   int currDuration;//defining a integer variable

   cin >> currName;//input value  

   while (currName != "quit")//defining a loop that checks currName value is not equal to 'quit'

   {

       cin >> currDuration;//input value  

       currSong.SetNameAndDuration(currName, currDuration);//calling the set method

       albumSongs.push_back(currSong);//calling the push_back method

       cin >> currName;//input value

   }

}

void Album::PrintSongsShorterThan(int songDuration) const//defining method PrintSongsShorterThan

{

   unsigned int i;//defining integer variable

   Song currSong;//defining class type variable

   cout << "Songs shorter than " << songDuration << " seconds:" << endl;//print message

   /* Your code goes here */

   for(int i=0; i<albumSongs.size(); i++)//defining loop to print value

   {

       currSong = albumSongs.at(i);//holding albumSongs by suing at method

       if(currSong.GetDuration()<songDuration)// using if to check songDuration value  

       {

           currSong.PrintSong();//calling PrintSongong method

       }

   }

}

int main()//main method

{

   Album musicAlbum;//creating Album class object

   string albumName;//defining string variable

   getline(cin, albumName);//calling getline method

   musicAlbum.SetName(albumName);//calling SetName method

   musicAlbum.InputSongs();//calling InputSongs method

   musicAlbum.PrintName();//calling PrintName method

   musicAlbum.PrintSongsShorterThan(210);//calling PrintSongsShorterThan

   return 0;

}

Learn more:

brainly.com/question/17229164