簡體   English   中英

使用Struct為mp3播放器模擬C ++(不需要播放mp3的唯一顯示列表)

[英]Using Struct for a mp3 player simulation C++ (does not need to play mp3's only display lists)

我需要創建一個假的MP3播放器,其菜單屏幕有六個選項((1)添加歌曲。(2)按標題排序。(3)按藝術家排序。(4)按長度排序。(5)打印你的播放列表。(6)退出)在我開始按藝術家,長度等方式對歌曲進行排序之前,我需要能夠使用結構輸入歌曲。 我從來沒有使用struct而且不確定它們如何使用向量,但到目前為止,我的代碼如下。 我有一個具有歌曲標題,藝術家和長度的結構,我相信我正在使用向量正確輸入信息,但在嘗試cout結構時,我在'<<'標記之前得到錯誤預期的primary-expression 我不知道我的結構是否正常工作,因為我無法看到它所以任何幫助顯示結構中的歌曲或修復我的代碼,如果它不正確將非常感激。

#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
using namespace std;
struct SONG{
string title;
string artist;
double length;
};
void addsong(char ans, string x){
vector<SONG>playlist;
cout<<"You have chosen to add a song"<<endl;
int i=0;
do{
playlist.push_back(SONG());
cout<<"Please enter song title: ";
cin>>playlist[i].title;
cout<<"Please enter song artist: ";
cin>>playlist[i].artist;
cout<<"Please enter song length: ";
cin>>playlist[i].length;
cout<<"Enter another? (y/n)"<<endl;
cin>>ans;
i++;
}while(ans!='n');
}
void displayPlaylist(vector<SONG>playlist){

cout<<SONG<<endl;
}

void sort(){
}
int main(){
int i, num;
char ans;
string x;
vector<SONG>playlist;
struct SONG;
for(int i=0;i<playlist.size();i++){

}
cout<<"Hello, Welcome to VSPod.\nWould you like to:"<<endl;
cout<<"(1) Add a song.\n(2) Sort By Title.\n(3) Sort by artist.\n(4) Sort by length.\n(5) Print your playlist.\n(6) Exit."<<endl;
cin>>num;
if(num==1){
    addsong(ans, x);
    displayPlaylist(playlist);
}
else if(num==2){
    sort();
}
else if(num==3){

}
else if(num==4){

}
else if(num==5){

}
else if(num==6){
    return 0;
}
}

SONG是用戶定義的類型。 你不能寫像cout << SONG << endl這樣的東西

相反,你可以試試cout << playlist[i].title << playlist[i].artist << playlist[i].length << endl;

謝謝大家的幫助。 這是我的最終代碼。 各方面都有效。

#include <iostream>
#include <string>
#include <iomanip>
#include <vector>
#include <algorithm>
using namespace std;
struct song{
string title;
string artist;
double length;
};


void addsong(vector<song>&playlist, char ans, string x){
cout<<"You have chosen to add a song"<<endl;
int i=0;

do{
cin.ignore();
playlist.push_back(song());
cout<<"Please enter song title: ";
getline(cin,playlist[i].title);
cout<<"Please enter song artist: ";
getline(cin,playlist[i].artist);
cout<<"Please enter song length (in minutes): ";
cin>>playlist[i].length;
cout<<"Enter another? (y/n)"<<endl;
cin>>ans;
i++;
}while(ans!='n');
}
void displayPlaylist(vector<song>playlist){
for(int i=0;i<playlist.size();i++){
cout<<"Title: "<<playlist[i].title<<" | Artist: "<<playlist[i].artist<<" | Length: "<<playlist[i].length<<" minute(s)"<<endl;
}
}
bool titlesort(const song &a, const song &b){
    return a.title < b.title;
}
bool artistsort(const song &a, const song &b){
    return a.artist < b.artist;
}
bool lengthsort(const song &a, const song &b){
    return a.length < b.length;
}

int main(){
int i, num;
char ans, ans2;
string x;
vector<song>playlist;
struct song;
double temp;
do{cout<<"Hello, Welcome to Music Player.\nWould you like to:"<<endl;
cout<<"(1) Add a song.\n(2) Sort By Title.\n(3) Sort by artist.\n(4) Sort by length.\n(5) Print your playlist.\n(6) Exit."<<endl;
cin>>num;
if(num==1){
    addsong(playlist, ans, x);
}
else if(num==2){
    sort(playlist.begin(), playlist.end(), titlesort);
}
else if(num==3){
    sort(playlist.begin(), playlist.end(), artistsort);
}
else if(num==4){
    sort(playlist.begin(), playlist.end(), lengthsort);
}
else if(num==5){
    displayPlaylist(playlist);
    cout<<"Do you want to go to the main menu?";
    cin>>ans2;
}
else if(num==6){
return 0;
}
}while(ans2!='n');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM