{
list<dancer>Mdancer;?//定義dancer類鏈表,保存男舞者信息
list<dancer>Fdancer;?//定義dancer類鏈表,保存女舞者信息
while(m)//輸入舞者信息
{
dancer?person;?//定義臨時dancer變量,保存輸入信息
person.input();?
if(person.sex!="男"&&person.sex!="女")?//判斷輸入性別是否符合要求
{
cout<<"輸入的舞者性別不正確,請重新輸入";
continue;
}
else?if(person.hour<0||person.hour>23||person.minute<0||person.minute>59||person.second<0||person.second>59)
{
cout<<"輸入的舞者到場時間不正確,請重新輸入";
continue;
}
else
{
if(person.sex=="男")
Mdancer.push_back(person);?//將男舞者信息存入男性鏈表
else
Fdancer.push_back(person);?//將女舞者信息存入女性鏈表
}
cout<<"\n是否繼續錄入舞者信息:1為繼續錄入,0為不再錄入!\n";
cin>>m;
}
cout<<"首先為男性舞者排隊!\n";
pai_dui(Mdancer);?//對男舞者進行排隊
cout<<"然後為女性舞者排隊!\n";
pai_dui(Fdancer);?//對女舞者進行排隊
/*cout<<"\n排隊後:"<<endl;?//輸出排隊後所有男舞者信息
for(p=Mdancer.begin();p!=Mdancer.end();p++)
cout<<(*p).name<<"?"<<(*p).sex<<"?"<<(*p).height<<"?"<<(*p).hour
<<":"<<(*p).minute<<":"<<(*p).second<<endl;*/
cout<<"請輸入跳舞的最大輪數:";
int?k?=?0;?//跳舞輪數
cin>>k;
for(int?i=0;?i<k;?i++)/*舞伴配對*/
{
int?num1?=?Mdancer.size();?//男舞者個數
int?num2?=?Fdancer.size();?//女舞者個數
int?min?=?num1<num2num1:num2;
cout<<"第"<<i+1<<"輪舞伴配對情況:\n";
if(min<=N)?//舞者對數小於等於舞場容納量,則全部舞者可進入
{
for(int?i=0;?i<min;?i++)?//輸出第k輪的舞伴
{
cout<<Mdancer.front().name<<"<-->"<<Fdancer.front().name<<endl;
Mdancer.push_back(Mdancer.front());?//將配對的舞者重新排在隊尾
Fdancer.push_back(Fdancer.front());
Mdancer.pop_front();?//將配對的舞者從隊首刪除
Fdancer.pop_front();
}
}
else?//舞者對數大於舞場容納量
{
for(int?i=0;?i<N;?i++)?//輸出第k輪的舞伴
{
cout<<Mdancer.front().name<<"<-->"<<Fdancer.front().name<<endl;
Mdancer.push_back(Mdancer.front());?//將配對的舞者重新排在隊尾
Fdancer.push_back(Fdancer.front());
Mdancer.pop_front();?//將配對的舞者從隊首刪除
Fdancer.pop_front();
}
}
/*每跳完壹輪詢問是否有舞者要離開*/
cout<<"\n是否有舞者要離開,有舞者離開請輸入1,否則輸入0!\n";
int?lev?=?0;?//有舞者離開的標誌,1為有舞者要離開
cin>>lev;
/*跳完舞的人默認排到了隊伍中,若選擇離開(還沒跳舞的人也可以選擇離開)*/
if(lev==1)
{
cout<<"請輸入要離開的舞者姓名:";
cin>>leaver.name;
cout<<"請輸入要離開的舞者性別:";
cin>>leaver.sex;
if(leaver.sex=="男")
Mdancer.remove_if(leave);?//根據姓名從隊列中刪除舞者
else?if(leaver.sex=="女")
Fdancer.remove_if(leave);
cout<<leaver.name<<"已離開舞場!\n\n";
}
}
return?0;
}
完整文件在附件,妳看下是否符合要求,有問題再問!