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